Problemas com array
Eu criei uma array, para armazenar valores digitados, e depois conferir se nenhum valor foi repetido. Vou colocar um exemplo pra explicar melhor.
[i:f01cc62955]Public
TabCheque:array of array of string;
procedure TfrmPrincipal.FormCreate(Sender:TObject);
begin
SetLength(TabCheque, 100000, 2);
end;
procedure TfrmPrincipal.edtValorExit(Sender:TObject);
var
TabMov:string;
begin
{ Verifica se Cheque ja foi informado }
TabMov:= TabCheque[Banco][Cheque];
[b:f01cc62955] Qndo chega nesse ponto, se não tem nenhum valor armazenado ao invés de retornar nulo, ele retorna #00 , o que será que há de errado?[/b:f01cc62955]
end;
[/i:f01cc62955]
[i:f01cc62955]Public
TabCheque:array of array of string;
procedure TfrmPrincipal.FormCreate(Sender:TObject);
begin
SetLength(TabCheque, 100000, 2);
end;
procedure TfrmPrincipal.edtValorExit(Sender:TObject);
var
TabMov:string;
begin
{ Verifica se Cheque ja foi informado }
TabMov:= TabCheque[Banco][Cheque];
[b:f01cc62955] Qndo chega nesse ponto, se não tem nenhum valor armazenado ao invés de retornar nulo, ele retorna #00 , o que será que há de errado?[/b:f01cc62955]
end;
[/i:f01cc62955]
Blbacelar
Curtidas 0
Respostas
Nildo
21/02/2005
Na verdade esse #0 neste caso é nulo.
Se você fizer um
IF TabCheque[Banco][Cheque] = ´´
vai retornar verdadeiro. O caracter 0 indica o fim de uma string, logo se o primeiro caracter é um 0, a string está nula.
Se você fizer um
IF TabCheque[Banco][Cheque] = ´´
vai retornar verdadeiro. O caracter 0 indica o fim de uma string, logo se o primeiro caracter é um 0, a string está nula.
GOSTEI 0
Beppe
21/02/2005
SetLength(TabCheque, 100000, 2);
Cada string na matriz terá a largura 2...logo vc tem #00.
Tente usar assim:
SetLength(TabCheque, 100000);
Assim você terá ´´ para cada string não usada.
nildo, 0 indica o fim da string apenas em C(e em várias outras linguagens mal projetadas, de fato).
Em Delphi, existe este 0 no fim, por compatibilidade com o Windows. Entretanto, é possível ter 0 dentro da string, e serão levados em conta, desde que seu índice esteja entre [1..Length(String)]
GOSTEI 0