Delphi 2009 gravar senhas em DBF codigo chr e diferente.

Delphi

15/06/2009

uso dbf e tenho arquivos com senhas

porem no delphi 2009 os codigos ascii na faixa
128 a 160 não retorna o mesmo código de pagina do delphi 2,3,4,5,7,2006,2007

se usar uma variável não tem este problema(logico se a variavel for string, se for ansi acontece o mesmo).

mas se usar os componentes que acessam um dbf(apollo,ads, Table) acontece que não são gravados esta faixa, creio que é porque internamente os componentes(dbf) estão usando ansichar.

no firebird gravou normalmente.

exemplo

Edit1.Text:=Texto(128,160);
table1.fieldbyname(´campo´).AsString:=Edit1.text

na tela fica ok,mas quando se grava no dbf e perdido esta faixa.

Function Texto(x,y:Integer):String;
Var st:String;
i:Integer;
Begin
st:=´´;
for i := x to y do
begin
st := st + chr(i);
end;
Result:=(St);

End;


Alguem sabe como resolver este problema?


Edmarfrazao

Edmarfrazao

Curtidas 0

Respostas

Edmarfrazao

Edmarfrazao

15/06/2009

Achei os problemas.

não tinha nada a ver com os componentes de acesso alias funcionou (Apollo 7,ADS 9 e Table)


o problema esta em duas rotinas minhas que utilizavam o chr codigo ASCII


uma bastou mudar a variavel de string para ansistring.

e na outra era um calculo de criptografia de senha se encontrava um numero e depois o codigo ASCII deste numero

até no delphi 2007 o codigo CHR de um numero negativo funcionava. Agora este é chr de um numero negativo é diferente.

Bastou eu somar 256 ao numero negativo que se encontra o chr correto.


GOSTEI 0
Edmarfrazao

Edmarfrazao

15/06/2009

solução masi rapida

antes

stexto:= chr(128)

para

sTexto:=AnsiChar(chr(128))


GOSTEI 0
POSTAR