Autor
|
Tema: Buscar en varios archivos de texto vb 6.0 (Leído 9,582 veces)
|
Bazzana
Desconectado
Mensajes: 5
|
Hola!!
Veran tengo un problema, yo tengo un programa, que se maneja con archivos de texto no? Y bueno yo quiero que busque X palabra en todos los archivos de texto que haya en una carpeta.
Y el problema es que no se como hacerlo porque yo se hacer que busque en 1 archivo de texto con la funcion getvar. Pero cuando hay que buscar en todos los archivos de texto de una carpeta se me complica, alguna ayudita?
Desde ya gracias!
Saludos
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
Hola, con Dir seriá así Option Explicit
Private Sub Form_Load()
Me.AutoRedraw = True
Dim TeEquisTes As String TeEquisTes = Dir("C:\Windows\")
While TeEquisTes <> "" If InStr(1, LCase$(TeEquisTes), ".txt") > 0 Then Me.Print TeEquisTes TeEquisTes = Dir Wend
End Sub
|
|
|
En línea
|
Adrian Desanti
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Ok Dessa, pero lo que quiere tambien es buscar una palabra en un archivo de texto... Seria asi: Function Buscar_Palabra(sArchivo As String, sPalabra As String) Dim Archivo As Integer Dim Linea As String Archivo = FreeFile Open sArchivo For Input As Archivo Do While Not EOF(Archivo) Line Input #Archivo, Linea If InStr(Linea, Word) <> 0 Then MsgBox "Encontre la palabra""" & sPalabra & """ en el archivo " _ & sArchivo, vbInformation End If Loop Close #Archivo End Function Private Sub Command2_Click() Call Buscar_Palabra("c:\windows\1.txt", "hola") End Sub
Salu2!
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
Hola!!
Y el problema es que no se como hacerlo porque yo se hacer que busque en 1 archivo de texto con la funcion getvar.
Pero cuando hay que buscar en todos los archivos de texto de una carpeta se me complica, alguna ayudita?
Desde ya gracias!
Saludos
Hola PsYkE1, como ya sabe buscar en un archivo ... le estoy explicando lo que le falta , o sea enumerar todos los archivos txt de una carpeta. para que los verifique con la funcion getvar (a la que el se refiere) dentro del while Saludos
|
|
« Última modificación: 31 Mayo 2010, 20:51 pm por Dessa »
|
En línea
|
Adrian Desanti
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Ok, no lo vi... Salu2!
|
|
|
En línea
|
|
|
|
Bazzana
Desconectado
Mensajes: 5
|
muchas gracias a ambos, pero la verdad no entendi como utilizarlo dessa, me podrias explicar un poco mas? Yo utilizo la funcion getvar para obtener datos de x archivo de texto de la siguiente manera: Function GetVar(ByVal file As String, ByVal Main As String, ByVal Var As String, Optional EmptySpaces As Long = 1024) As String Dim sSpaces As String, szReturn As String szReturn = "" sSpaces = Space$(EmptySpaces) GetPrivateProfileString Main, Var, szReturn, sSpaces, EmptySpaces, file GetVar = RTrim$(sSpaces) GetVar = Left$(GetVar, Len(GetVar) - 1) End Function
Private Sub Form_Load()
Archivo = "\Cuentas\" & FrmMain.File1.FileName txtCuenta.Text = GetVar(App.Path & Archivo, "Numero de Cliente", "Cliente") txtNombre.Text = GetVar(App.Path & Archivo, "Nombre Y Apellido", "Nombre")
End Sub
Es decir en el archivo busca asi: [numero de cliente] cliente="dato que toma" Como podría adaptar eso a que lo haga en todos los archivos que se encuentran dentro del File1, osea dentro de una carpeta. Ahora creo que me explique mejor Desde ya muchas gracias!
|
|
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
Haber si sirve; Sub BuscarClienteNumero(nCliente As Variant)
txtCuenta.Text = "" txtNombre.Text = ""
Dim TeEquisTes As String TeEquisTes = Dir(App.Path & "\Cuentas\")
Do While TeEquisTes <> "" If InStr(1, LCase$(TeEquisTes), ".txt") > 0 Then If GetVar(App.Path & "\Cuentas\" & TeEquisTes, "Numero de Cliente", "Cliente") = nCliente Then txtCuenta.Text = GetVar(App.Path & "\Cuentas\" & TeEquisTes, "Numero de Cliente", "Cliente") txtNombre.Text = GetVar(App.Path & "\Cuentas\" & TeEquisTes, "Nombre Y Apellido", "Nombre") Exit Do End If End If TeEquisTes = Dir Loop
If txtCuenta.Text = "" Then txtCuenta.Text = "Sin Datos" If txtNombre.Text = "" Then txtNombre.Text = "Sin Datos"
End Sub
|
|
|
En línea
|
Adrian Desanti
|
|
|
Bazzana
Desconectado
Mensajes: 5
|
La verdad que sigo intentando y no puedo, no me darias una ayuda por msn?
XXXXXXXXXXXXXXXX (msn)
desde ya muchas gracias
Moderador: no se pueden dejar direccciones de mail.
|
|
« Última modificación: 3 Junio 2010, 02:25 am por seba123neo »
|
En línea
|
|
|
|
Dessa
Desconectado
Mensajes: 624
|
Creá un proyecto nuevo, con Text1, Text2, Text3, Command1 (los archivos de textp se van a crear en el Load) e ingresa en Text1 un numero de cliente (1, 2 o 3 para que te de los datos) (4 o mas para que te de error) Option Explicit Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Sub Command1_Click()
Call BuscarClienteNumero(Text1)
End Sub
Sub Form_Load()
If Dir(App.Path & "\Cuentas\", vbDirectory) = "" Then MkDir App.Path & "\Cuentas\"
If Dir(App.Path & "\Cuentas\1.txt") = "" Then Open (App.Path & "\Cuentas\1.txt") For Output As #1 Print #1, "[Numero de Cliente]": Print #1, "Cliente = 1": Print #1, "[Nombre Y Apellido]": Print #1, "Nombre = Eduardo" Close #1 End If If Dir(App.Path & "\Cuentas\2.txt") = "" Then Open (App.Path & "\Cuentas\2.txt") For Output As #1 Print #1, "[Numero de Cliente]": Print #1, "Cliente = 2": Print #1, "[Nombre Y Apellido]": Print #1, "Nombre = Guille" Close #1 End If If Dir(App.Path & "\Cuentas\3.txt") = "" Then Open (App.Path & "\Cuentas\3.txt") For Output As #1 Print #1, "[Numero de Cliente]": Print #1, "Cliente = 3": Print #1, "[Nombre Y Apellido]": Print #1, "Nombre = Paco" Close #1 End If
Text1 = "Ingresá nCliente" Text2 = "" Text3 = ""
Command1.Caption = "Buscar"
End Sub Function GetVar(ByVal file As String, ByVal Main As String, ByVal Var As String, Optional EmptySpaces As Long = 1024) As String Dim sSpaces As String, szReturn As String szReturn = "" sSpaces = Space$(EmptySpaces) GetPrivateProfileString Main, Var, szReturn, sSpaces, EmptySpaces, file GetVar = RTrim$(sSpaces) GetVar = Left$(GetVar, Len(GetVar) - 1) End Function
Sub BuscarClienteNumero(nCliente As Variant)
Text2.Text = "" Text3.Text = ""
Dim TeEquisTes As String TeEquisTes = Dir(App.Path & "\Cuentas\")
Do While TeEquisTes <> "" If InStr(1, LCase$(TeEquisTes), ".txt") > 0 Then If GetVar(App.Path & "\Cuentas\" & TeEquisTes, "Numero de Cliente", "Cliente") = nCliente Then Text2.Text = GetVar(App.Path & "\Cuentas\" & TeEquisTes, "Numero de Cliente", "Cliente") Text3.Text = GetVar(App.Path & "\Cuentas\" & TeEquisTes, "Nombre Y Apellido", "Nombre") Exit Do End If End If TeEquisTes = Dir Loop
If Text2.Text = "" Then Text2.Text = "Sin Datos" If Text3.Text = "" Then Text3.Text = "Sin Datos"
End Sub
|
|
|
En línea
|
Adrian Desanti
|
|
|
Bazzana
Desconectado
Mensajes: 5
|
mmm pasa que yo antes no me exprese bien
Lo que estoy tratando de hacer es un programa, de cuentas corrientes, donde lleva diferentes datos,
ejeplo: 1.dat
[Numero de Cliente] Cliente=1
[Nombre Y Apellido] Nombre=Ejemplo
[Teléfono] Teléfono=Ejemplo
[Domicilio] Domicilio=Ejemplo
[Documento] Documento=Ejemplo
[Saldo] Debe=370
[Proximas Visitas] Proximo Pago=02/06/2010 Proxima Visita=28/05/2010
Y el que me requirio el programa, me pido que agrege una funcion, con la cual, a el le muestre la gente que tiene que ir a cobrar el dia de hoy y la gente que tiene que visitar, junto con su direccion y telefono, e ingresarsela en un textbox asi luego le manda imprimir desde otro boton y obtiene la gente que tiene que visitar ese dia.
|
|
|
En línea
|
|
|
|
|
|