Saludos!
Bueno hace no mucho empece a programar un troyano bancario en delphi 7(que pronto publicare...), tenia un problema y era que usando los sockets tenia que
extraer determinados strings de parametros defectuosos (desde - hasta)... Así nació esta funcion la cual es muy útil usada ya sea en APIS hasta en tareas triviales como las que acabo de describir.
Aquí el código:
{$Optimization On}
{/*************************************\}
{ ExtractString Function @por WarZ0n3 }
{\*************************************/}
{ Explicación: }
{ Esta funcion es utilizada para extraer}
{ un string de una cadena determinada. }
{ Funcion muy util para rutinas de }
{ programación en sockets... }
{\*************************************/}
{ Mode de uso: }
{ Los parametros son los siguientes: }
{ __ExtractString( }
{ ListaDeStrings, Char(desde), }
{ string(Palabra), Char(hasta) }
{ ); }
{/*************************************\}
{ Ejemplo: }
{ __ExtractString(lStr, '&', '@%&Hola Mundo|#$', '|'); }
{ Devuelve: Hola Mundo }
{\*************************************/}
function __ExtractString(lStr:TStringList; from_s:Char; ExtractStr:string; to_s:Char): string;
var
reverse : integer;
PosStr : integer;
CpyStr : string;
StrRip : string;
sNull : string;
begin
reverse:= LastDelimiter(to_s, pChar(ExtractStr));
SetLength(ExtractStr, reverse);
PosStr:= Pos(from_s, pChar(ExtractStr));
CpyStr:= Copy(pChar(ExtractStr), PosStr+$1, reverse);
StrRip:= StringReplace(CpyStr, to_s, sNull, [rfReplaceAll, rfIgnoreCase]);
lStr.Add(StrRip);
end;
{ ***Ejemplo de uso en un Button1 del Form*** }
procedure TForm1.Button1Click(Sender: TObject);
var
lStr:TSTRINGLIST;
begin
lStr:= TstringList.Create;
{ Llamada de la función }
__ExtractString(lStr, '&', '@%&HOLA_MUNDO|#$', '|'); { Ejemplo de uso }
ShowMessage(lStr.GetText);
end;
end.