Campo sequencial usando numeros e letras

Delphi

22/12/2004

Pessoal, eh o seguinte:

Tenho um campo em minhas tabelas de tamanho e tipo CHAR(06), esse campo grava valores sequenciais para cada movimentacao na tabela esse valor nunca se repete, tipo:
ADCF42
ADCF43
ADCF44
ADCF45
ADCF46
ADCF47
...
...
ADCEWW
ADCEWX
ADCEWY
ADCEWZ
ADCEX0
ADCEX1
ADCEX2
...
...
AZAAA1
AZAAA2
AZAAA3

e sempre a ultima movimentacao eh gravada em um parametro em outra tabela de controle e sempre que haver uma movimentacao eh pego o conteudo desse parametro e eh somado + um numero ou letra, alguem tem alguma ideia de como posso fazer isso...

Obrigado.


Claudio_f

Claudio_f

Curtidas 0

Respostas

Motta

Motta

22/12/2004

O Problema pode ser resolvido com uma conversão de base simples.

Devem existir varios sites que explica como fazer isto.

Usa-se uma base meio exdruxula (36) que seria
0123456789ABCD..Z 10 11 12 ... 19 1A 1B ...

Assim seria uma soma simples nesta base (36)

Não sei se fui claro.


GOSTEI 0
Claudio_f

Claudio_f

22/12/2004

Valeu,

Vou pesquisar no GooGle, se achar posto a solucao aqui...


GOSTEI 0
Paulo_amorim

Paulo_amorim

22/12/2004

Olá

Fiz uma rotina aqui, acho que atende:

var  
Algarismos: array[1..36] of Char =
              (´A´,´B´,´C´,´D´,´E´,´F´,´G´,´H´,´I´,´J´,´K´,´L´,´M´,
               ´N´,´O´,´P´,´Q´,´R´,´S´,´T´,´U´,´V´,´W´,´X´,´Y´,´Z´,
               ´0´,´1´,´2´,´3´,´4´,´5´,´6´,´7´,´8´,´9´);
(...)
function TForm1.GeraCodigo(CodAtual: String): String;
var
   cAux: Char;
   i, iPos: Integer;
begin
     Result := CodAtual;

     for i := Length(Result) downto 1 do
     begin
          iPos := Pos(Result[i],Algarismos);
          if iPos < Length(Algarismos) then
          begin
               cAux := Algarismos[ iPos + 1];
               Result[i] := cAux;
               break;
          end;
          Result[i] := Algarismos[1];
     end;
end;


Espero que ajude
Até+


GOSTEI 0
POSTAR