FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Funcion para extraer texto de archivos de texto
Hola tengo el siguiente codigo :
Estoy tratando de mejorar mi funcion cortar() para que se parezca mas a la funcion cut() del codigo mostrado , lo que hacen es leer un archivo cualquiera y buscar en ellos texto que este entre dos etiquetas , el problema es que mi funcion cortar() me parece perfecta pero nunca obtengo el mismo resultado que la funcion cut() que parece mas compleja y no entiendo cual es el diferencia entre las dos porque cuando uso texto normal en un string las dos funciones son iguales pero cuando leo un archivo la funcion cut() es notablemente superior. ¿ como mejoro mi funcion cortar() para que haga lo mismo que cut() en los archivos ? |
#2
|
||||
|
||||
Cita:
Cita:
|
#3
|
|||
|
|||
La funcion cortar() y la funcion cut() hacen lo mismo buscar texto entre dos etiquetas en cualquier archivo ya sea de texto , el problema es que la funcion cut() lo encuentra todo por alguna razon que no entiendo porque la funcion cortar() a veces falla , por ejemplo busco el texto largo que esta entre etiquetas ej [hola]hola mundo[hola] y te devuelve hola mundo , eso pasa tambien en los archivos pero mi funcion cortar() a veces falla y la funcion cut() lo encuentra todo , espero haberme explicado.
|
#4
|
||||
|
||||
Quizás es porque el fichero tiene caracteres raros en medio.
Puede que el fichero esté formado por caracteres Unicode de mas de un byte y por eso. Ten en cuenta que read_file devuelve un tipo de dato AnsiString y tu lo cargas dentro de un string. Dependiendo de la versión del Delphi, un string puede estar formado por caracteres de mas de un byte. El AnsiString solo contempla caracteres de un byte.
Si te fijas sobre el final de cut(), verás que hace una transformación de AnsiString a string;
|
#5
|
|||
|
|||
Hola , gracias por la ayuda , parece que el problema es cuando lee archivos binarios con la funcion cortar() por eso no encuentra nada a pesar de que la funcion cut() si lo hace , estuve tratando de mejorar el codigo como hiciste pero me quedo esto :
Probe cambiando los AnsiPos por Pos pero el programa se tilda completamente , tambien intente hacer la conversion que me recomendaste pero no se como relacionar ResLength con mi codigo. ¿ que tendria que hacer ? |
#6
|
|||
|
|||
Habría que comprobar con los mismos ficheros que tú para estar seguro pero por probar he preparado algo asi en una unit y da la sensación de funcionar como se espera.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Leer Archivos *.kar y desplegar su texto para Karaoke | cacuna | Varios | 8 | 14-10-2010 15:34:04 |
¿Hay alguna función ya hecha para comprobar si un texto se puede convertir a número? | noob | Varios | 7 | 05-12-2008 02:44:24 |
Wizard para importacion archivos texto | GuerreroDelphi | OOP | 1 | 25-08-2008 16:25:49 |
Funciòn para extraer un campo texto | zvf | SQL | 9 | 07-12-2007 22:32:03 |
Leer varios archivos de texto y extraer solo 2 lineas de ese texto | mp3968 | Internet | 1 | 17-05-2007 21:24:09 |
|