Pessoal, resolvi começar a postar aqui, funções do delphi que normalmente quebram muitos galhos, e, por desconhece-las, acabamos "rebolando" pra criar algo "parecido". E não pensem que não estou falando de mim! :)
Uma função muito interessante e que tem uma enorme utilidade é a função ExtracStrings. Essa função preenche uma lista (StringList), com substrings de uma string.
Imagine que você precise ler um arquivo CSV (separado por ponto-e-vírgula). Dai você pergunta: "Como vou separar as colunas?"; a primeira idéia é criar uma função para localizar (Pos) o primeiro ponto-e-vírgula e extrair o fragmento da string (Copy), e assim sucessivamente, atire a primeira pedra que nunca fez assim!
Pois é! Perdemos nosso precioso tempo reinventando a roda.
Veja a sintaxe da função ExtractString:
function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;
- Separator - É um array onde você pode definir vários separadores
- WhiteSpace - É um Array onde você define os caracteres que devem ser Ignorados quando ocorrerem no inicio da String.
- Content - É a String de onde se deseja extrais as substrings
Veja um pequeno exemplo de utilização:
procedure TForm1.Button1Click(Sender: TObject);
const
SDados = 'Cristiano Martins Alves; 28 Anos; Casado; São Paulo; SP';
var
Lista: TStringList;
iRetorno:Integer;
begin
Lista := TStringList.Create;
try
iRetorno := ExtractStrings([';'],[' '],PChar(sDados),Lista);
if iRetorno > 0 then
ShowMessage(Lista.Text);
finally
FreeAndNil(Lista);
end;
end;
Veja o resultado:

Repare que na nossa constante existe um espaço entre o nome e a idade, mas ele foi ignorado conforme definido no segundo parâmetro.
É isso ai pessoal! Não deixem de comentar o blog!
