Programación General > Visual Basic 6.0 e inferiores

 Leer De Un Txt!!!

<< < (2/7) > >>

elmango80:
Hola Gandalf_malaga7!

Te aconsejo que una vez que tengas tu cadena obtenida del .txt en primer lugar la depures, osea saca todos los posibles caracteres que no puedan estar en una matricula (" - $ % @) y asi solo te quedas con las letras y los numeros, tambien puedes sacar todas la letras minusculas porque se supone que la matricula solo esta compuesta de numero y letras mayusculas, ya con esto te ahorras un trabajo, despues podrias hacer un patron de la placa, no se como sera haya pero aca en Venezuela las placas poseen tres letras despues dos numeros y por ultimo otra letra (ASD 32F) asi que busca ese patron dentro de la cadena que te queda...

P.D: Gracias por la informacion del programa que encontraste...

:devil: ------------------ :angel:

Brroz:
Hola Gandalf_malaga7.

Tal como lo cuentas, tus jefes tienen toda la razón... recorrer toda una tabla para buscar por cada registro en un archivo de texto, no es nada operativo (a no ser que tengas poquísimos registros y el archivo de texto sea pequeño, claro).

Lo que te apuntan de buscar un patrón para las matrículas y eliminar todo lo que no cuadre con ese patrón del archivo de texto, puede ser el camino, pero... ¿lo normal no sería que las matrículas aparecieran en determinadas posiciones del txt, o que incluso apareciese una sóla matrícula?¿El txt lo obtienes tú?

Por otro lado,si aparece más de una matrícula y si eliminas todos los carácteres y/o secuencias que pueden no aparecer en una matrícula, luego tendrás que identificar en lo que te quede las posibles matrículas, y se podrían dar casos como este:
PO3425ZA2332KM2344CC9999DCC2222AABC4355
(PO-3425-Z , A-2332-K , M-2344-C , C-9999-D , CC-2222-A , ABC4355)
Desde luego que no es un obstáculo insalvable, ni mucho menos, pero ve imaginando ya lo que tendría que hacer el proceso tras filtrar en el txt las posibles matrículas.

Todo esto te lo cuento sin haber descargado tus adjuntos, por lo que no sé si a lo mejor existe la posibilidad de que las matrículas aparezcan en determinadas posiciones fijas (en un campo de un registro, vaya) o que cierto/s carácter/es delimiten una matrícula. ¿Has examinado el txt para ver si se da alguna de estas posibilidades?

Suerte.

Chao.

Gandalf_malaga7:
Hola a todos!!!!!!!!,
gracias Brroz y Elmango80:beer:  por la ayuda,te explico Brroz:
si descargas mi adjunto verás que solo puede haber una mátricula por .txt,ya que yo le hago las fotos a los coches de uno en uno,y cada foto la someto a una OCR mediante una libreria que tengo,y esta OCR me genera mucha mierda y en una posición cualquiera la mátricula :angry: .
A ver si me puedes ayudar :comp: ,me podrias pasar el codigo de un algoritmo que coja el .txt,lo recorra de principio a fin y elimine cualquier caracter excepto mayusculas y numeros(incluidos espacios en blanco) asi al final en mi .txt me quedara la matricula pegada al margen izquierdo y en la primera linea.Yo ya tengo hecho los algoritmos para una vez limpiado el .txt,leer la matricula y buscarla en mi base de datos.Solo me falta este y debido a mis carencias :unsure: en conocimiento de codigo no se como hacerlo,
espero vuestra respuesta,muchas gracias :angel: !!!!!!!!!!!!!!!!!

9tnix:
Salu2 Gandalf_malaga7

Hola amigo lo que puedes hacer es lo siguiente es solo una idea ojala y me alcance el tiempo te pongo el codigo del programa pero mientras va la sugerencia.

Lee cada uno de los archivos y lo abres con la instruccion Open
Luego extrae la cadena en una variable y empieza a hacer una busqueda utilizando el patron que ya lo tienes bueno usa la funcion Instr(<desde que caracterer de la cadena empieza la busqueda>,<Cadena donde se busca>, <cadena buscada> ), esta funcion te devuelve >0 cuando encontro lo que buscas sino devuelve <=0, una vez que encontraste todos los patrones en el primer archivo pues lo separas y lo guardas donde sea necesario y sigues adelante con los demas archivos hasta que termines.

Ejemplo de Instr

Dim strCadena As String
Dim strCadBuscar As String
Dim Pos as Integer
strCadena = "ASdkashdkaHola amigosasdi54654"
strCadenaBuscar = "Hola amigos"
'//Esto te devuelve la posicion en donde se encuentra la cadena en este caso 11
Pos = Instr(1,strCadena, strCadenaBuscar)
'//Aki sacamos la cadena Hola aamigo
msgbox Mid(strcadena, pos, len(strCadenaBuscar))

Espero que la info ayude

Un saludo zeekel ®
[KGT]

Brroz:
Hola.

Necesitarás algo así:


--- Código: Text --- Private Function ProcesarTxt(ByVal InputFile As String) As String     On Error GoTo Err_Procesar        Dim intCanal As Integer    intCanal = FreeFile    Open InputFile For Binary As intCanal        Dim bytBufR() As Byte    ReDim bytBufR(LOF(intCanal))    Get #intCanal, , bytBufR            Dim lng1 As Long    For lng1 = 0 To UBound(bytBufR)        If (bytBufR(lng1) &#60; 91 And bytBufR(lng1) &#62; 47) _        And (bytBufR(lng1) &#60; 58 Or bytBufR(lng1) &#62; 64) Then _        ProcesarTxt = ProcesarTxt & Chr(byBufR(lng1))    Next lng1    Exit_Procesar:    On Error Resume Next    Close #intCanal    Exit Function Err_Procesar:    MsgBox &#34;(&#34; & Err.Number & &#34;) &#34; & Err.Description _    , vbCritical, &#34;Procesar archivo txt&#34;    Resume Exit_Procesar   End Function  
Abur.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa