Fórum Campo sequencial usando numeros e letras #263107

22/12/2004

0

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

Responder

Posts

22/12/2004

Motta

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.


Responder

Gostei + 0

22/12/2004

Claudio_f

Valeu,

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


Responder

Gostei + 0

22/12/2004

Paulo_amorim

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é+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar