Autor
|
Tema: Problema con archivos aleatorios (Leído 1,222 veces)
|
pandemonio
Desconectado
Mensajes: 26
Orgullosamente usuario del Xtreeeem Porquería
|
Hola. Tengo un problema con un archivo aleatorio, lo que necesito es extraer un registro previamente comparado de un archivo aleatorio, les muestro un ejemplo:
Contenido de archivo aleatorio:
"Nombre" "Edad" "Direccion" "Telefono" "Nombre" "Edad" "Direccion" "Telefono" "Nombre" "Edad" "Direccion" "Telefono" "Nombre" "Edad" "Direccion" "Telefono" . . . Y así sucesivamente, ya realicé una comparación y sí encuentra el registro adecuado, pero no sé cómo extraerlo. Ya he pensado en usar Line Input, pero esto es inservible si el número de registros es indefinido. ¿Qué puedo hacer? ¿Me podrían mostrar un ejemplo?
Gracias.
|
|
« Última modificación: 9 Mayo 2006, 02:50 am por pandemonio »
|
En línea
|
|
|
|
<--v1c1ous-->
Desconectado
Mensajes: 776
¡Operadora! ¡Deme el número para el 911! - Homero
|
Buenas Sinceramente, no te entendi correctamente, si lo que intentas hacer es tratamiento con Bases de datos, simplemente busca en Google.com , miles de manuales. Si lo que exactamente queres hacer es Abrir tu archivo aleatorio y extraer todo su contenido y sus lineas, usa LOF(1), es simple: Dim Contenido as string Contenido = LOF(1) Open archivo for input read as #1 Get,,Contenido Close #1 Podes volcar el contenido en memoria, buscar tu registro y extraer una linea si queres de la cadena mencionada. Y ahora, nose si eso es lo que queres, pero si mal no entiendo haces una comparacion de archivos para encontrar tu cadena, entonces, porque no pedis el numero de linea en donde se encuentra la solo extraes esa? Si te explicas mejor y das datos talvez alguien ayude mejor. Suerte
|
|
|
En línea
|
|
|
|
SheKeL_C$
Desconectado
Mensajes: 549
_-=[Sh3K3L_C$]=-_
|
Yo tmpoco t e entendido pero creo q quieres leer cada linea y en cada linea habra una cierta cantidad de palabras "Nombre" "Edad" "Direccion" "Telefono" "Nombre" "Edad" "Direccion" "Telefono" "Nombre" "Edad" "Direccion" "Telefono" "Nombre" "Edad" "Direccion" "Telefono" Creo k lo k kieres esk si pones una edad o direccion lo q sea q t muestre toda la linea. Aqui t lo dejo pero tendras q modificar y ponerlo a tu gusto Private Sub Command1_Click() Dim linea As String
Open "C:\a.txt" For Input As #1 'abres el archivo pa leerlo While Not EOF(1) 'desde aqui hasta el wend sino ha acabado Line Input #1, linea 'lee la linea separa = Split(linea, " ") 'esto crea un array de cada linea si los datos q as guardado estan separados por un espacio icuantos = UBound(separa) ' aqui t dice en numero cuantos nombres ay dentro del split For i = 0 To icuantos 'crea un bucle para q la i tome valores hasta el icauntos If separa(i) = "Sh3K3L" Then 'aqui pondrias el otro miembro para la comparacion For a = 0 To icuantos 'si entra en esta linea es q la comparacion es valida Label1 = Label1 & separa(a) & " " 'en el label t pondra toda la linea Next a 'en las siguientes lineas se salen del for y if End If Next i Wend
close #1 End Sub
Otra cosa t recomiendo q pongas al escribir dentro de un texto o archivo lo q sea q utilizes el Print
|
|
|
En línea
|
|
|
|
pandemonio
Desconectado
Mensajes: 26
Orgullosamente usuario del Xtreeeem Porquería
|
Por lo que veo no me expliqué bien, pero no importa, los dos me dieron una idea de cómo solucionar mi problema, es por eso que aquí publico la solución Private Sub Command1_Click() Dim X As Integer, Fila As Integer Dim NumArchivo As Long Dim Arreglo(4, 0 To 4) As String, Archivo As String Fila = 0 Archivo = "c:\1.txt" NumArchivo = FreeFile() Open Archivo For Output As #NumArchivo Write #NumArchivo, "JUAN", "JESÚS", "JAVIER", "JORGE", "JEHÚ" Write #NumArchivo, "WINDOWS", "LINUX", "MAC_OS", "ATHE_OS", "UNIX" Close #NumArchivo Open Archivo For Input As #NumArchivo Do While Not EOF(NumArchivo) Input #1, Arreglo(Fila, 0), Arreglo(Fila, 1), Arreglo(Fila, 2), _ Arreglo(Fila, 3), Arreglo(Fila, 4) Fila = Fila + 1 Loop Close #NumArchivo
For X = 0 To Fila - 1 If Arreglo(X, 1) = UCase(Text1.Text) Then MsgBox Arreglo(X, 0) & " " & Arreglo(X, 1) & _ " " & Arreglo(X, 2) & " " & Arreglo(X, 3) & _ " " & Arreglo(X, 4), vbInformation, "Línea encontrada" End If Next X End Sub
Otra cosa t recomiendo q pongas al escribir dentro de un texto o archivo lo q sea q utilizes el Print
Si te refieres a la estructura del archivo, pues entonces eso no depende de mí, ya que yo tengo acceso a un archivo que no está en mí modificar, es por eso que publico el contenido de archivo de esa forma. Como sea, muchas gracias por tu consejo. Me alegra ver que hay gente amable y dispuesta a ayudar en esta sección.
|
|
« Última modificación: 10 Mayo 2006, 19:21 pm por pandemonio »
|
En línea
|
|
|
|
|
|