if not in - Estou errando alguma coisa nisso. Por favor, e ajudem.
Quando executo a ação abaixo informa "Ordinal type required". O que estou errando? (Uso delphi5)
var
sNossoNr : String;
begin
sNossoNr := '55445';
if not (sNossoNr in ['44740','43432','38189','46915','40681','40680','40682','38783','40679','47095',
'38777','38778','38779','47520','38780','38179','44405','43409','47420','40683',
'40687','40684','40688','38187','38186','46916','46917','44408','44194','38183',
'38180','38184','38181','38185','44407','46915','46914','40351','39891','39899',
'46912','47112','38787','38761','38188','38950','44410','44409','44404','43433',
'44411']) then
retorno := 'N';
end;
var
sNossoNr : String;
begin
sNossoNr := '55445';
if not (sNossoNr in ['44740','43432','38189','46915','40681','40680','40682','38783','40679','47095',
'38777','38778','38779','47520','38780','38179','44405','43409','47420','40683',
'40687','40684','40688','38187','38186','46916','46917','44408','44194','38183',
'38180','38184','38181','38185','44407','46915','46914','40351','39891','39899',
'46912','47112','38787','38761','38188','38950','44410','44409','44404','43433',
'44411']) then
retorno := 'N';
end;
Emir Neto
Curtidas 0
Respostas
Marcos Oliveira
13/11/2013
Olha, não tenho certeza absoluta, mas o "IN" creio que não aceite Strings. E se colocar tudo como inteiro, terá outro problema: o "IN" só aceita valores de 0 a 255. (Por favor, se eu estiver errado, alguém me corrija.)
O que você pode fazer é trocar por um case.
Att,
Marcos
O que você pode fazer é trocar por um case.
Att,
Marcos
GOSTEI 0
Gustavo Bretas
13/11/2013
Mais ou menos isso Marcos, nos testes que fiz, o IN aceitou até 3 digitos (999), mas como vc disse, pode ser substituído por case, segue exemplo:
Só é necessário observar repetições dos números, case não aceita, na lista haviam dois 46915!
procedure TForm1.Button2Click(Sender: TObject);
var
sNossoNumero: Integer;
begin
sNossoNumero := 2;
case sNossoNumero of
44740, 43432, 38189, 40681, 40680, 40682, 38783, 40679, 47095, 38777, 38778, 38779, 47520, 38780, 38179, 44405, 43409, 47420,
40683, 40687, 40684, 40688, 38187, 38186, 46916, 46917, 44408, 44194, 38183, 38180, 38184, 38181, 38185, 44407, 46915, 46914,
40351, 39891, 39899, 46912, 47112, 38787, 38761, 38188, 38950, 44410, 44409, 44404, 43433, 44411:
begin
ShowMessage('Sim');
end
else
ShowMessage('Não');
end
end;Só é necessário observar repetições dos números, case não aceita, na lista haviam dois 46915!
GOSTEI 0