Título: Buscar en varios archivos de texto vb 6.0
Publicado por: Bazzana en 30 Mayo 2010, 17:36 pm
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
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Dessa en 31 Mayo 2010, 20:09 pm
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
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Psyke1 en 31 Mayo 2010, 20:26 pm
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! ;)
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Dessa en 31 Mayo 2010, 20:42 pm
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 ;)
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Psyke1 en 31 Mayo 2010, 21:30 pm
Ok, no lo vi... :laugh:
Salu2! ;)
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Bazzana en 2 Junio 2010, 18:44 pm
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!
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Dessa en 2 Junio 2010, 22:04 pm
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
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Bazzana en 2 Junio 2010, 23:03 pm
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.
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Dessa en 2 Junio 2010, 23:17 pm
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
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Bazzana en 3 Junio 2010, 00:15 am
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.
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Dessa en 3 Junio 2010, 00:50 am
Sub BuscarPorFecha(sFecha As String)
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, "Proximas Visitas", "Proximo Pago") = sFecha Then ''''' "Lo que quieras" ElseIf GetVar(App.Path & "\Cuentas\" & TeEquisTes, "Proximas Visitas", "Proxima Visita") = sFecha Then '''''' "Lo que quieras" End If End If TeEquisTes = Dir Loop
End Sub
PD: creo que con los datos que te dí lo puedes hacer.
Título: Re: Buscar en varios archivos de texto vb 6.0
Publicado por: Bazzana en 3 Junio 2010, 02:03 am
EXCLENTE!!!
mE FUNCIONO DE 10!!!!
mUCHISIMAS GRACIAS!!!!
|