Fórum como o pascal lê um IF #421960

18/08/2012

0

Olá pessoal...

Estou com uma dúvida sobre qual sentido o compilador lê as instruções.
Tenho o seguinte comando: if (FieldByName(gp).AsString = ) and (not FieldByName(gp).IsNull) then
quem ele verificará primeiro?

(FieldByName(gp).AsString = )
ou
(not FieldByName(gp).IsNull)

o motivo da pergunta é que ele dá um erro se eu for fazer uma comparação string com um campu nulo.

agradeço desde já qualquer ajuda...
Vagner Almeida

Vagner Almeida

Responder

Posts

18/08/2012

Douglas Michelino

Toda linha de codigo Le de cima para baixo da esquerda para direita...

Ou seja

(FieldByName(gp).AsString = ) << le primeiro
ou
(not FieldByName(gp).IsNull) << le depois

(FieldByName(gp).AsString = )
ou
(not FieldByName(gp).IsNull)

Tenta por assim

If (not(FieldByName(gp).IsNull)) and (FieldByName(gp).AsString <> '') then

ou

If not(FieldByName(gp).IsNull) and (FieldByName(gp).AsString <> '') then
Responder

Gostei + 0

18/08/2012

Eduardo Gonçalves

De qualquer jeito, como se trata de um IF com AND, as duas condições precisarão ser válidas para que o programa "entre no IF". Desta forma, para o exemplo que você apresentou, acaba sendo indiferente o sentido da leitura.
Responder

Gostei + 0

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

Aceitar