Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 18-12-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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:
Código Delphi [-]
   str:= '+ EBML head' + #$D#$A + '|+ EBML version: 1' + #$D#$A + 
           '|+ EBML read version: 1' + #$D#$A + '|+ EBML maximum ID length: 4' + #$D#$A;
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:
+ EBML head'#$D#$A'|+ EBML version: 1'#$D#$A'|+ EBML read version: 1'#$D#$A'|+ EBML maximum ID length: 4'#$D#$A'
A diferencia de explode, que por lo que leí no tendría inconveniente en manejar la situación, no hay manera de usar un delimitador como '#$D#$A' con ExtractStrings .

En este último caso habría que crear un procedimiento a tal fin:
Código Delphi [-]
...
uses StrUtils;

procedure Explode(Str, SubStr: string; TS: TStrings);
var
  p: Integer;
begin
  SubStr:= QuotedStr(SubStr);
  repeat
    p:= PosEx(SubStr, Str, 1);
    TS.Add(Copy(Str, 1, p-1));
    Delete(Str, 1, (p-1)+Length(SubStr));
  until Length(Str)=0;
end;
Llamada:
Código Delphi [-]
procedure TForm1.btnExplodeClick(Sender: TObject);
begin
  with TStringList.Create do
  try
    LoadFromFile('cadena.txt');
    Explode(Text, '#$D#$A', Memo1.Lines);
  finally
    Free;
  end;
end;

Quedo a la espera de que pabloe9k, me disipe la duda del orígen de los datos...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 19-12-2014 a las 04:49:37. Razón: agregar: uses StrUtils;
Responder Con Cita
 



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
Como separar una cadena con un delimitador radge Varios 13 05-03-2016 22:52:52
Añadir carácter según una posición x a un String Ledian_Fdez OOP 3 01-08-2013 16:22:21
String a Cadena de Bytes a cadena Hexadecimal ruedabeat2003 Varios 2 11-01-2012 02:04:06
Descomponer cadena @String Alejo15x Varios 3 04-02-2010 03:23:21
Recorrer un string y actuar segun palabras leidas vcs Varios 16 14-11-2008 14:51:31


La franja horaria es GMT +2. Ahora son las 15:39:41.


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