Fórum Campo sequencial usando numeros e letras #263107
22/12/2004
0
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
Curtir tópico
+ 0Posts
22/12/2004
Motta
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
22/12/2004
Claudio_f
Vou pesquisar no GooGle, se achar posto a solucao aqui...
Gostei + 0
22/12/2004
Paulo_amorim
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
Clique aqui para fazer login e interagir na Comunidade :)