Problemas com array

Delphi

21/02/2005

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]


Blbacelar

Blbacelar

Curtidas 0

Respostas

Nildo

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.


GOSTEI 0
Beppe

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
POSTAR