Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-05-2014
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 212
Poder: 14
jars Va por buen camino
Problema con StringList y espacios

Hola amigos.
Tengo el siguiente problema:
Desde un servidor recibo un string con el siguiente formato:
p.ej. 'Nombre=Federico Salvador,DNI=23232323' Esta es cortita pero vienen mas largas.
Al intentar usar StringList del siguiente modo:
Código Delphi [-]
  parms := 'Nombre=Federico Salvador,DNI=23232323' ;
...

  sl: TStringList.Create;
  sl.CommaText := parms;

En sl en lugar de 2 elementos tengo 3 porque me separa
1 Nombre=Federico
2 Salvador
3 DNI=23232323

Hay alguna forma de solucionar esto?

Gracias
Responder Con Cita
  #2  
Antiguo 09-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 14
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
jars,

Cita:
Empezado por jars
...recibo un string...'Nombre=Federico Salvador,DNI=23232323'...en lugar de 2 elementos tengo 3...¿Hay alguna forma de solucionar esto?...
Revisa este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   SL : TStringList;
   S1 : String;
   i : Integer;

begin

   S1 := 'Name1= FirstName1 LastName1,DNI=1,Name2= FirstName2 LastName2,DNI=2';

   SL := TStringList.Create;

   ExtractStrings([','],[],PChar(S1),SL);

   for i := 0 to SL.Count - 1 do
      ShowMessage(SL[i]);

   SL.Free;

end;
El código anterior en Delphi 7 bajo Windows 7 Professional x32, separa una variable string en sus partes componentes usando como delimitador el carácter ',' y muestra cada uno de los elementos individualmente.

Espero sea útil

Nelson.
Responder Con Cita
  #3  
Antiguo 09-05-2014
jars jars is offline
Miembro
 
Registrado: mar 2004
Posts: 212
Poder: 14
jars Va por buen camino
Gracias Nelson, es lo que necesitaba.
Abrazo
Responder Con Cita
  #4  
Antiguo 09-05-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.534
Poder: 26
dec Va camino a la famadec Va camino a la fama
Hola,

Por añadir otra opción, al menos a partir de Delphi 2007, existe la propiedad "StrictDelimiter" en "TStrings", que solventa el "problema de los espacios en blanco". Es decir que esto:

Código Delphi [-]
const
  SOURCE_TEXT = 'Nombre=Federico Salvador,DNI=23232323';
var
  s: string;
  t: TStrings;
begin
  t := TStringList.Create();
  try
    t.StrictDelimiter := true;
    t.CommaText := SOURCE_TEXT;
    for s in t do
    begin
      ShowMessage(s);
    end;
  finally
    t.Free();
  end;
end;

Mostrará en sendos mensajes:

Código:
Nombre=Federico Salvador
DNI=23232323
Tal como esperas.
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con StringList darkone2k4 Varios 7 21-08-2013 20:38:47
Problema con Stringlist Anel Hernandez Varios 5 11-10-2011 22:55:16
Problema con StringList MaMu Varios 2 26-05-2007 22:40:45
Problema longitud stringlist.text Bicho OOP 2 12-03-2007 14:12:52
problema con espacios en like jpcancino SQL 3 10-02-2004 19:54:03


La franja horaria es GMT +2. Ahora son las 23:32:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi