Como fazer um Copy ao Contrário?
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; |
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; |
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.
-
Giovani Da Cruz
-
11.842 views
- 0 comentários
- 16 de novembro de 2015
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo