Pasar una cadena (string) a una lista (tstringlisg) según delimitador
Hola.
Les hago una consulta: tengo una cadena (string) con un texto asignado. Este texto contiene una serie de caracteres que quisiera usar como delimitadores y convertir la cadena a distintos items de una lista según este delimitador. Por ejemplo, mi cadena es + EBML head'#$D#$A'|+ EBML version: 1'#$D#$A'|+ EBML read version: 1'#$D#$A'|+ EBML maximum ID length: 4'#$D#$A' y quisiera pasarlo a una lista utilizando el delmitador '#$D#$A' El resultando sería algo como: lista[0]:= + EBML head lista[1]:= |+ EBML version: 1 lista[2]:=|+ EBML read version: 1 lista[3]:=|+ EBML maximum ID length: 4 Esto es muuuuuy fácil de hacer en PHP con la función "explode", pero no tengo idea de como se hace con Delphi 7. Podrán ayudarme, por favor? Gracias. Slds. |
Ejemplo visual con TMemo (puedes hacer lo mismo con un TStringList):
Saludos. |
pabloe9k,
Cita:
Revisa este código: El código anterior en Delphi 7 sobre Windows 7 Professional x32, carga el texto contenido en la variable InputString a un TStringList usando como delimitador #$D#$A y muestra cada uno de los elementos individuales. Revisa esta información: Cita:
Nelson. |
Teniendo en cuenta que la cadena mostrada por pabloe9k contiene como delimitador $D#$A y sabiendo que jústamente representan retorno de carro + avance de línea (CRLF), un TStringList parte directamente el texto en las líneas correspondientes sin más código que una simple asignación. :)
Saludos. |
Cita:
|
escafandra,
Cita:
Cita:
Espero sea útil :) Nelson. |
Hola.
Según entiendo, ya me dirán si me equivoco los que saben PHP, la función explode, es mas poderosa que ExtractStrings para este caso, ya que la primera admite como delimitador una cadena y la segunda sólo caracteres. Como ya lo han expuesto claramente, la diferencia no es relevante en una variable que ha sido compuesta por caracteres y delimitadores: Pero el caso es muy distinto si, la cadena es extraída literalmente de un archivo y lo que eran caracteres de control pasan a ser texto plano. Por ejemplo el archivo cadena.txt con el contenido: Cita:
En este último caso habría que crear un procedimiento a tal fin: Llamada:
Quedo a la espera de que pabloe9k, me disipe la duda del orígen de los datos... Saludos :) |
La vi por internet y la uso mucho. No se si servirá.
|
|
La franja horaria es GMT +2. Ahora son las 03:30:26. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi