FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Parsear texto con TString
Hola gente que tal, soy nuevo por aca y estoy necesitando un poco de ayuda. Resulta que abro un archivo de texto y lo leo linea por linea con un While. Esas lineas tienen dos partes divididas por la barra "|", osea Texto1|Texto2, yo tengo que parsear ese texo para que me quede
Texto1 Texto2 El problema es el siguiente, el parseo lo hago asi Donde "S" es cada linea del '.txt'. El problema viene que me toma el salto de linea del final de la linea. arrayColumnas[0] = Texto1 + ¿Un salto de linea? no se que onda arrayColumnas[1] = Texto2 + ¿Un salto de linea? no se que onda Use un ShowMessage con comillas para ver que cosa rara habia y me sale lo siguiente. Si el texto es asi 5|Gonzalo me muestra "5 " "Gonzalo " Las comillas tendrian que ir al final y no en la linea siguiente Hay alguna forma de que no me tome ese salto de linea? Gracias! Última edición por Casimiro Notevi fecha: 04-07-2013 a las 03:19:50. |
#2
|
||||
|
||||
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración
Recuerda poner los tags al código fuente, ejemplo: Gracias
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#3
|
|||
|
|||
Si disculpa, me olvide, pero no lo puedo editar ahora
|
#4
|
||||
|
||||
No te preocupes, es sólo para que lo tengas en cuenta para futuros mensajes
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
||||
|
||||
Hola avechuche.
Creo que en este caso es mas simple usar la función ExtractStrings. Como ejemplo:
Pero, por si te interesa, aquí hay otras alternativas: funcion split de una cadena Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
|||
|
|||
Gracias ecfisa, funciona perfectamente. Ahora viene otra duda (Soy muy nuevo en esto)
Yo no lo quiero poner en un ListBox, quiero poner esos dos valores en cada columna de mi listbox Hice lo siguiente Creo el TStringList antes de entrar al "While" que recorre el ".txt" Llamo a la funcion
Después recorro "arrayColumnas" y agrego los valores correspondientes a las columnas de mi ListView. El problema esta que siempre me agrega la primer linea del ".txt" al ListView. Si tengo un ".txt" asi 1|Gonzalo 2|Pedro 3|Sofia El ListView me devuelve 1|Gonzalo 1|Gonzalo 1|Gonzalo Tengo que hacer esto dentro del While asi resetea arrayColumnas ? Osea lo hice y anda perfecto, pero está bien aplicado? porque me da que esta mal crear el TStringList cada vez que cambio la linea. |
#7
|
||||
|
||||
Cita:
Si creas y liberas el stream cada vez, no tendría que haber problemas. Mejor tal vez sea crearlo antes del ciclo while, vaciarlo con el método Clear y liberarlo despues. Algo como:
También te podrías ahorrar todo el tema de leer el archivo recorriéndolo con while si usas el método LoadFromFile de TStrings. De ese modo podes acceder a cada línea del archivo mediante el índice. Pero siendote sincero, no alcanzo a entender claramente como deseas que queden las líneas leidas desde el archivo en el stream. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿como parsear texto? | JXJ | Varios | 9 | 31-08-2010 23:31:02 |
parsear xml + clase DOMParser | gustavoh | JAVA | 0 | 27-07-2006 16:39:25 |
Duda Tstring | wildnetboy | C++ Builder | 9 | 16-06-2006 22:19:46 |
Convertir un TString a PWideChar | bustio | OOP | 3 | 01-10-2004 05:50:16 |
TString en los caption | buitrago | Varios | 3 | 14-08-2004 20:54:13 |
|