Corrijam meu loop

Delphi

20/12/2004

Quando caio no primeiro NEXT, quero que ele volte para a linha while
e não prossiga para a linha Env.

Como corrigir?



DadosQ.First;
while not DadosQ.Eof do
begin
if ModifyCB.Checked then
begin
if DadosQ.FieldByName(´DAD_MUDOU´).AsString = ´N´ then
DadosQ.Next;
end;
Env := DadosQ.FieldByName(´DAD_COD´).AsInteger;
Texto := DadosFunction(Str2Int(DadosQ.FieldByName(´DAD_COD´).AsString));
NMHTTP1.Get(EndHttpEd.Text+Texto);
DadosQ.Next;


Wgm8

Wgm8

Curtidas 0

Respostas

Marcelo Saviski

Marcelo Saviski

20/12/2004

Tente com o Continue:

DadosQ.First; 
while not DadosQ.Eof do 
begin 
  if ModifyCB.Checked then 
  begin 
    if DadosQ.FieldByName(´DAD_MUDOU´).AsString = ´N´ then 
    begin  
      DadosQ.Next; 
      Continue;  <<< Tente isso aqui
    end;
  end;
  Env := DadosQ.FieldByName(´DAD_COD´).AsInteger; 
  Texto := DadosFunction(Str2Int(DadosQ.FieldByName(´DAD_COD´).AsString)); 
  NMHTTP1.Get(EndHttpEd.Text+Texto); 
  DadosQ.Next;
(...)


É isso?


GOSTEI 0
Fknyght

Fknyght

20/12/2004

DadosQ.First; 
  while not DadosQ.Eof do 
    begin 
        if ( ( ModifyCB.Checked ) and ( DadosQ.FieldByName(´DAD_MUDOU´).AsString = ´N´  ) ) then 
              DadosQ.Next
        else 
          begin
            Env := DadosQ.FieldByName(´DAD_COD´).AsInteger; 
            Texto := DadosFunction(Str2Int(DadosQ.FieldByName(´DAD_COD´).AsString)); 
            NMHTTP1.Get(EndHttpEd.Text+Texto); 
            DadosQ.Next
         end;
      end;



GOSTEI 0
Marbravo

Marbravo

20/12/2004

Primeiro vc deve tomar uma postura na hora de escrever o codigo para quando for ler não ser tão dificil. Procure dar dois escpaços antes que qualquer nova pergunta que esteja dentro de outra. + OU - Assim:

DadosQ.First; 
while not DadosQ.Eof do 
  begin 
    if ModifyCB.Checked then 
      begin 
        if DadosQ.FieldByName(´DAD_MUDOU´).AsString = ´N´ then 
        DadosQ.Next; 
      end
    else
      begin 
        Env := DadosQ.FieldByName(´DAD_COD´).AsInteger; 
        Texto := DadosFunction(Str2Int(DadosQ.FieldByName(´DAD_COD´).AsString)); 
        NMHTTP1.Get(EndHttpEd.Text+Texto); 
        DadosQ.Next;
      end;
  end;


[color=green:2e7ffbb0e7][i:2e7ffbb0e7]Editado Saviski - ativado BBCode[/i:2e7ffbb0e7][/color:2e7ffbb0e7]


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

20/12/2004

DadosQ.First;
while not DadosQ.Eof do
begin
    if not ModifyCB.Checked or (DadosQ.FieldByName(´DAD_MUDOU´).AsString ´N´) then
    begin
        Env := DadosQ.FieldByName(´DAD_COD´).AsInteger;
        Texto := DadosFunction(Str2Int(DadosQ.FieldByName(´DAD_COD´).AsString));
        NMHTTP1.Get(EndHttpEd.Text+Texto);
    end;
    DadosQ.Next;
end;


GOSTEI 0
POSTAR