Anda di halaman 1dari 5

Form1 - 1 'Matriz debe ser un variant para poder recibir la matriz de la funcion leer Dim matriz As Variant Dim

candidatos(999, 10) As String Dim persona(10) As String 'cantidad nos indicar la cantidad de personas que tenemos en 'el archivo que abrimos Dim cantidad As Integer Dim aceptados As Integer Function leer(path As String) As String() 'este procedimiento nos permite leer un archivoy guardarlo en una matriz Dim i As Integer Dim linea As String Dim mat(999, 10) As String 'Es necesario que per sea variant para recibir el contenido del split Dim per As Variant Open path For Input As #1 i = 0 'lstSalida.Clear While Not EOF(1) Line Input #1, linea per = Split(linea, ",") 'lstSalida.AddItem (per(0) & " " & per(10)) 'lstSalida.AddItem (linea) 'a continuacion asignamos el valor del arreglo per a la matriz ' i hace referencia a la fila y j a la columna For j = 0 To 10 Step 1 mat(i, j) = per(j) Next i = i + 1 Wend Close #1 cantidad = i leer = mat End Function Private Sub cmdCortejar_Click() 'nos muestra las personas para emparejar con los datos que ingresaremos 'deben ser de sexos distintos y gustarles minimamente 3 cosas en comn ' tambien genera un archivo llamado ACEPTADOS.TXT donde se guardan los 'datos de las personas que son compatibles Dim cont As Integer cont = 0 matriz = leer("c:\personas.txt") aceptados = 0 Open "c:\aceptados.txt" For Output As #1 persona(0) = InputBox("Ingresa el nombre de la persona") persona(1) = InputBox("Ingresa el apellido de la persona") persona(2) = InputBox("Ingresa el sexo de la persona") persona(3) = InputBox("Ingresa el la edad de la persona") persona(4) = InputBox("Si le gusta el baile ingresa S caso contrario N") persona(5) = InputBox("Si le gusta el futbol ingresa S caso contrario N") persona(6) = InputBox("Si le gusta el basket ingresa S caso contrario N") persona(7) = InputBox("Si le gusta el cine ingresa S caso contrario N") persona(8) = InputBox("Si le gusta el estudio ingresa S caso contrario N") persona(9) = InputBox("Si le gusta el la lectura ingresa S caso contrario N") persona(10) = InputBox("Ingresa el celular de la persona") lstSalida.AddItem (persona(0) & persona(1) & persona(2) & persona(3) & persona(4) & persona(5) & pe rsona(6) & persona(7) & persona(8) & persona(9) & persona(10)) For i = 0 To cantidad Step 1 'si son de sexos distintos If (StrComp(persona(2), matriz(i, 2)) <> 0) Then For j = 4 To 9 Step 1 ' verificamos si tienen los mismos gustos If (StrComp(persona(j), matriz(i, j)) = 0) Then cont = cont + 1 End If Next j If cont >= 3 Then For j = 0 To 10 Step 1 linea = linea & matriz(i, j) & "," Next j lstSalida.AddItem (linea) 'guardamos el dato de la persona compatible en el archivo aceptados.txt Print #1, linea linea = ""

Form1 - 2 ' aceptados es la variable que nos dara la cantidad de personas aceptadas pa salir aceptados = aceptados + 1 End If End If Next i Close #1 End Sub Private Sub cmdEdad_Click() 'muestra a a los candidatos mujeres mayores a la edad de la persona que busca pareja 'muestra a a los candidatos varones menores a la edad de la persona que busca pareja Dim aux As Variant aux = leer("aceptados.txt") Dim linea As String linea = "" lstSalida.Clear For i = 0 To aceptados Step 1 ' verifica la edad si es que las personas aceptadas son varones If (Val(aux(i, 3)) > Val(persona(3))) And (StrComp(aux(i, 2), "M") = 0) Then 'si es viva, muestra los datos en lstSalida For j = 0 To 10 Step 1 linea = linea & matAux(i, j) & " " Next j lstSalida.AddItem (linea) linea = "" End If ' verifica la edad si es que las personas aceptadas son mujeres If (Val(aux(i, 3)) < Val(persona(3))) And (StrComp(aux(i, 2), "F") = 0) Then 'si es viva, muestra los datos en lstSalida For j = 0 To 10 Step 1 linea = linea & matAux(i, j) & " " Next j lstSalida.AddItem (linea) linea = "" End If Next i End Sub Private Sub cmdMostrar_Click() 'Se muestra el contenido del archivo que se guarda en matriz Dim linea As String matriz = leer("c:\personas.txt") linea = "" lstSalida.Clear For i = 0 To cantidad Step 1 For j = 0 To 10 Step 1 linea = linea & matriz(i, j) & " " Next j lstSalida.AddItem (linea) linea = "" Next i End Sub Private Sub cmdOrdenar_Click() 'como en el procedimiento cortejar ya se creo el archivo ACEPTADOS.TXT 'ahora solo nos queda ordenarlo por orden alfabetico por los apellidos Dim matAux As Variant Dim aux As String Open "c:\aceptados.txt" For Output As #1 matAux = leer("c:\aceptados.txt") For i = 0 To aceptados Step 1 For j = i To aceptados Step 1 'preguntamos si el apellido de la fila i es mayor al de la fila j If (StrComp(matAux(i, 1), matAux(j, 1)) = 1) Then 'si sale verdad se intercambian los valores de las filas For h = 0 To 10 Step 1 aux = matAux(i, h) matAux(i, h) = matAux(j, h) matAux(j, h) = aux Next h End If Next j Next i ' ahora tenemos la matriz ordenada en orden alfabetico por apellido 'simplemente la cargamos en el archivo aceptados.dat For i = 0 To aceptados Step 1 For j = 0 To 10 Step 1

Form1 - 3 linea = linea & matAux(i, j) & "," Next j Print #1, linea linea = "" Next i Close #1 End Sub Private Sub cmdViva_Click() ' nos indica que usuarios tiene celulares viva 707 703 de los aceptados Dim aux As Variant aux = leer("aceptados.txt") Dim linea As String linea = "" For i = 0 To aceptados Step 1 ' verifica si el numero comiena con 703 o 707 If (InStr(0, "703", aux(i, 10)) = 0) Or (InStr(0, "707", aux(i, 10)) = 0) Then 'si es viva, muestra los datos en lstSalida For j = 0 To 10 Step 1 linea = linea & matAux(i, j) & " " Next j lstSalida.AddItem (linea) linea = "" End If Next i End Sub

Form1 - 1 VERSION 5.00 Begin VB.Form Form1 Caption = "Form1" ClientHeight = 8340 ClientLeft = 60 ClientTop = 450 ClientWidth = 10695 LinkTopic = "Form1" ScaleHeight = 8340 ScaleWidth = 10695 StartUpPosition = 3 'Windows Default Begin VB.CommandButton cmdOrdenar Caption = "ORDENAR POR APELLIDO" Height = 735 Left = 360 TabIndex = 6 Top = 1800 Width = 1335 End Begin VB.CommandButton cmdMostrar Caption = "MOSTRAR ARCHIVO" Height = 735 Left = 360 TabIndex = 5 Top = 5040 Width = 1695 End Begin VB.CommandButton cmdEdad Caption = "CANDIDATOS EDAD" Height = 615 Left = 360 TabIndex = 4 Top = 3840 Width = 1575 End Begin VB.CommandButton cmdViva Caption = "CELULAR VIVA" Height = 615 Left = 360 TabIndex = 3 Top = 2880 Width = 1455 End Begin VB.CommandButton cmdCortejar Caption = "CORTEJAR" Height = 495 Left = 360 TabIndex = 2 Top = 960 Width = 1335 End Begin VB.ListBox lstSalida Height = 7080 Left = 3240 TabIndex = 1 Top = 960 Width = 7335 End Begin VB.Label Label1 Caption = "CUPIDO COMPUTARIZADO" BeginProperty Font Name = "MS Sans Serif" Size = 12 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty Height = 375 Left = 3480 TabIndex = 0 Top = 240 Width = 3495 End End

CUPIDO COMPUTARIZADO

Anda mungkin juga menyukai