Inverter posição de caracteres em string

Delphi

25/08/2005

Amigos, estou com uma string onde guardo uma determinada data como segue abaixo:

´15/10/1984´

Gostaria de uma rotina em que eu entrasse com essa string e que ela me desse o resultado assim:

´19841015´

O motivo seria para facilitar o manuseio na hora de ordenar aniversariantes, por exemplo.

Não precisaria ser a rotina propriamente dita, basta um exemplo de inversão de caracteres, pra ser mas exato não sei como trabalhar desta forma dentro de uma string no delphi, pois em c++ é tranquilo.

Obrigado galera!


Alanhfs

Alanhfs

Curtidas 0

Respostas

Rjun

Rjun

25/08/2005

Na function abaixo não esta sendo feito tratamento para as ´/´.
function InverteString(Texto: string): string
var
  i: integer;
begin
 result := ´´;
  for i := Length(Texto) Downto 1 do
    result := result + Texto[i];
end;



GOSTEI 0
Massuda

Massuda

25/08/2005

Se estiver usando um BD, a não ser que seja formato DBF, acho que deve existir algum tipo de campo que sirva para armazenar datas sem precisar se preocupar com este tipo de detalhe.

Deixando isso de lado, assumindo que sua data esteja sempre no formato DD/MM/AAAA, você pode fazer algo assim...
var
  S1: string;
  S2: string;
...
  S1 := ´25/08/2005´;  
  S2 := Copy(S1, 7, 4) + Copy(S1, 4, 2) + Copy(S1, 1, 2);
  // S2 = ´20050825´
...



GOSTEI 0
Wilson Brito

Wilson Brito

25/08/2005

var
  Data1: TDate;
  Data2: String;
begin
  Data1 := StrToDate(´15/10/1984´);
  //yyyy = ano | mm = mês | dd = dia
  Data2 := FormatDateTime(´yyyymmdd´,Data1);
end;



GOSTEI 0
Alansvieceli

Alansvieceli

25/08/2005

Cara, q viajem..uma vez em uma entrevista de emprego o cara mando eu fazer exatamente essa função..pensei q nunca mais ia ver isso...
hehehehe..

muito bom...

Abraço a todos...


GOSTEI 0
Alanhfs

Alanhfs

25/08/2005

Massuda, eu estou usando Access , e nele tem sim um campo para datas, só que estou implementando um form de pesuisa bem genérico, que apresenta problemas em campos do tipo data, por isso estou optando por fazer desta maneira.
Não testei o que me passou, mas pelo que deu pra entender era isso mesmo que eu estava precisando.

Valeu1


GOSTEI 0
POSTAR