



Muitas vezes me deparei com a necessidade copiar parte de uma string,
mas, do fim para o inicio, ou se preferir, de trás para a frente.
Para resolver este problema criei uma função simples, que funciona
de forma muito semelhante ao Copy tradicional, só porém, copiando
do fim para o início.
Veja o código fonte:
1 2 3 4 5 6 7 8 9 | uses System.StrUtils; function CopyReverse(S: String; Index, Count : Integer) : String; begin Result := ReverseString(S); Result := Copy(Result, Index, Count); Result := ReverseString(Result); end; |
Para exemplificar o seu uso, veja o código a seguir:
1 2 3 4 5 6 | procedure TForm1.Button1Click(Sender: TObject); begin { Quero os 6 últimos caracteres, ou seja, a aprtir do último, quero os 6 caracteres do fim. } ShowMessage( CopyReverse('Show Delphi', 1, 6) ); end; |
Tempos a string ‘Show Delphi’, e neste exemplo, quero copiar a
partir do último, seis caracteres, no sentido da direita para a esquerda.
O resultado será ‘Delphi’.
Espero que a dica seja útil a todos!
Dúvidas ou sugestões deixe nos comentários do post.