Ver Mensaje Individual
  #7  
Antiguo 18-12-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
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