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:
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.