![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Como separar una cadena con un delimitador
Buenas uso delphi 5 y no he encontrado la forma de separar una cadena en varias mediante un limitador , ya que tengo un fichero que "importo" que tiene esta estructura
'campo1','campo2',..... y me gustaria solo leer algunos campos del fichero de texto , claro esta delimitando por el delimitador de la coma "," alguna sugerencia ? salu2 radge |
|
#2
|
|||
|
|||
|
Hola,
prueba esto
Lo hago de cabeza. La idea es cargar en commatext el archivo, y el stringlist ya separa los elementos automaticamente. Un saludo. |
|
#3
|
||||
|
||||
|
El único problema con la propuesta de coso es que, por lo menos hasta la versión 7 de Delphi, la propiedad CommaText siempre considera los espacios como delimitadores, de forma que si tu archivo tiene una linea como esta:
84,camisas limpias,340.50,sucursal oriente te lo separará así: 84 camisas limpias 340.5 sucursal oriente Una posible solución a eso, es sustituir previamente los espacios por algún caracter que no se use en el archivo, y restaurarlos una vez asignado a CommaText, por ejemplo:
// Saludos |
|
#4
|
|||
|
|||
|
Otra opción es usar ExtractStrings, que si respeta los blancos y permite especificar cual es el separador y cuales son los espacios en blanco
Código:
uses Classes;
var
lCampos : TStringList;
i: integer;
Registro: string;
begin
Registro := '12346; A B C D E; 25/11/2009'
lCampos := TStringList.Create;
ExtractStrings([';'], [' '], PChar(Registro), lCampos);
// En el TStringList lCampos tenemos cada uno de los campos de la cadena de caracteres.
for i := 0 to lCampos.Count-1 do
ShowMessage(lCampos[i]);
end;
Gerard. Última edición por gerardus fecha: 25-11-2009 a las 19:51:53. |
|
#5
|
||||
|
||||
|
¡Ah! Esta función está mucho mejor, no la conocía. Gracias gerardus.
// Saludos |
|
#6
|
|||
|
|||
|
Yo la encontré despues de deseperarme durante un buen rato con un TStringList de D7 que dejó de funcionar el día en que hubo blancos en uno de los campos.
![]() ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Cambiar delimitador decimal | peccatum | Tablas planas | 5 | 01-04-2009 17:55:41 |
| Como separar los reportes de la aplicacion? | Carlos Arevalo | Impresión | 4 | 21-04-2008 16:52:04 |
| Separar cadena de numeros | cyborgve | Impresión | 1 | 16-05-2007 06:37:31 |
| como separar la fecha | ddd_ddd | Varios | 1 | 23-10-2005 19:18:47 |
| Como separar las barras de una grafica | hook | Varios | 0 | 17-06-2004 18:28:34 |
|