Para um loopins em um While
Boa Tarde,
Senhores eu possuo o codigo abaixo:
[b:34d5adf678]procedure TFrmGrupos.GrupoA;
begin
DmBanco.TbAnoAnterior.First;
while not Dmbanco.TbAnoAnterior.Eof do
begin
mAnoAnterior:=ColunaAnoAnterior.AsString;
DmBanco.TBConfirmacao.First;
while not DmBanco.TbConfirmacao.eof do
Begin
mConfirmacao:=ColunaConfirmacao.AsString;
If (mAnoAnterior=mConfirmacao) then
Begin
if (modalidade.AsString=´OK´) or (modalidade.AsString=´Ok´) then
Begin
CabecaA.Caption:=mAnoAnterior;
mCidadeA:=mAnoAnterior;
End;
End;
DmBanco.TbConfirmacao.Next;
end;
DmBanco.TBAnoAnterior.Next;
end;
end;[/b:34d5adf678]
e gostaria que quando o fosse localizado o arquivo ele fizesse uma parada e me trouxesse o arquivo. O que esta acontecendo é que ele não para e me traz o último registro da tabela.
No aguardo e obrigado
Wagner Marrane
Senhores eu possuo o codigo abaixo:
[b:34d5adf678]procedure TFrmGrupos.GrupoA;
begin
DmBanco.TbAnoAnterior.First;
while not Dmbanco.TbAnoAnterior.Eof do
begin
mAnoAnterior:=ColunaAnoAnterior.AsString;
DmBanco.TBConfirmacao.First;
while not DmBanco.TbConfirmacao.eof do
Begin
mConfirmacao:=ColunaConfirmacao.AsString;
If (mAnoAnterior=mConfirmacao) then
Begin
if (modalidade.AsString=´OK´) or (modalidade.AsString=´Ok´) then
Begin
CabecaA.Caption:=mAnoAnterior;
mCidadeA:=mAnoAnterior;
End;
End;
DmBanco.TbConfirmacao.Next;
end;
DmBanco.TBAnoAnterior.Next;
end;
end;[/b:34d5adf678]
e gostaria que quando o fosse localizado o arquivo ele fizesse uma parada e me trouxesse o arquivo. O que esta acontecendo é que ele não para e me traz o último registro da tabela.
No aguardo e obrigado
Wagner Marrane
Wagnermarrane
Curtidas 0
Respostas
Paulo_amorim
05/05/2004
Olá
Quando ele achar, ponha o comando [b:33b9b33eeb]break;[/b:33b9b33eeb]
Espero que ajude
Até+
Quando ele achar, ponha o comando [b:33b9b33eeb]break;[/b:33b9b33eeb]
Espero que ajude
Até+
GOSTEI 0
Marco Salles
05/05/2004
Acho que e assim:
procedure TForm1.Button1Click(Sender: TObject); begin DmBanco.TbAnoAnterior.First;//va para o primeiro while not Dmbanco.TbAnoAnterior.Eof do begin mAnoAnterior:=ColunaAnoAnterior.AsString; DmBanco.TBConfirmacao.First;//va para o primeiro while not DmBanco.TbConfirmacao.eof do Begin mConfirmacao:=ColunaConfirmacao.AsString; If (mAnoAnterior=mConfirmacao) then Begin if (modalidade.AsString=´OK´) or (modalidade.AsString=´Ok´) then Begin CabecaA.Caption:=mAnoAnterior; mCidadeA:=mAnoAnterior; Break;//**********Comando Break conforme Paulo sugeriu End; End; DmBanco.TbConfirmacao.Next; end; DmBanco.TBAnoAnterior.Next; end; end;
GOSTEI 0
Marco Salles
05/05/2004
desculpe, desculpe, descupe...Um comanfo [b:7bba8b077b]Break[/b:7bba8b077b] so , ira apenas suspender a execução do Loop Interno..Como voce tem dois [b:7bba8b077b]While[/b:7bba8b077b] Acho que Voce Tem Que Usar Um [b:7bba8b077b]Flag[/b:7bba8b077b] Seguido De Um[b:7bba8b077b] Break[/b:7bba8b077b]...
procedure TFrmGrupos.GrupoA; var parar:Boolean; //variavel que iremos usar como Flag begin parar:=False; DmBanco.TbAnoAnterior.First;//va para o primeiro while not Dmbanco.TbAnoAnterior.Eof do begin mAnoAnterior:=ColunaAnoAnterior.AsString; DmBanco.TBConfirmacao.First;//va para o primeiro while not DmBanco.TbConfirmacao.eof do Begin mConfirmacao:=ColunaConfirmacao.AsString; If (mAnoAnterior=mConfirmacao) then Begin if (modalidade.AsString=´OK´) or (modalidade.AsString=´Ok´) then Begin CabecaA.Caption:=mAnoAnterior; mCidadeA:=mAnoAnterior; Parar:=True; End; End; DmBanco.TbConfirmacao.Next; end; if parar Then DmBanco.TBAnoAnterior.Next else Break;//acho que e aqui que deve ser colocado end; end;
GOSTEI 0
Marco Salles
05/05/2004
desculpe, desculpe, descupe...Um comanfo [b:b3a1fd03c8]Break[/b:b3a1fd03c8] so , ira apenas suspender a execução do [b:b3a1fd03c8]Loop Interno[/b:b3a1fd03c8]..Como voce tem dois [b:b3a1fd03c8]While[/b:b3a1fd03c8] Acho que Voce Tem Que Usar Um[b:b3a1fd03c8] Flag [/b:b3a1fd03c8]Seguido De Um [b:b3a1fd03c8]Break[/b:b3a1fd03c8]...
Código:
Código:
procedure TFrmGrupos.GrupoA; var parar:Boolean; //variavel que iremos usar como Flag begin parar:=False; DmBanco.TbAnoAnterior.First;//va para o primeiro while not Dmbanco.TbAnoAnterior.Eof do begin mAnoAnterior:=ColunaAnoAnterior.AsString; DmBanco.TBConfirmacao.First;//va para o primeiro while not DmBanco.TbConfirmacao.eof do Begin mConfirmacao:=ColunaConfirmacao.AsString; If (mAnoAnterior=mConfirmacao) then Begin if (modalidade.AsString=´OK´)or(modalidade.AsString=´Ok´) then Begin CabecaA.Caption:=mAnoAnterior; mCidadeA:=mAnoAnterior; Parar:=True; End; End; DmBanco.TbConfirmacao.Next; end; if not parar Then DmBanco.TBAnoAnterior.Next else Break;//acho que e aqui que deve ser colocado end; end;
GOSTEI 0
Paulo_amorim
05/05/2004
[quote:3cc6c369ce=´Marco Salles´]desculpe, desculpe, descupe...Um comanfo [b:3cc6c369ce]Break[/b:3cc6c369ce] so , ira apenas suspender a execução do [b:3cc6c369ce]Loop Interno[/b:3cc6c369ce]..Como voce tem dois [b:3cc6c369ce]While[/b:3cc6c369ce] Acho que Voce Tem Que Usar Um[b:3cc6c369ce] Flag [/b:3cc6c369ce]Seguido De Um [b:3cc6c369ce]Break[/b:3cc6c369ce]...
[/quote:3cc6c369ce]
Olá
É verdade, não tinha percebido!
Entretanto, se o que aprocedure faz é só isso, então pode-se dar um [b:3cc6c369ce]Exit[/b:3cc6c369ce] e resolve o problema :)
[/quote:3cc6c369ce]
Olá
É verdade, não tinha percebido!
Entretanto, se o que aprocedure faz é só isso, então pode-se dar um [b:3cc6c369ce]Exit[/b:3cc6c369ce] e resolve o problema :)
GOSTEI 0
Wagnermarrane
05/05/2004
galera valeu mesmo.... o codigo funcionou
Abraço
Wagner
Abraço
Wagner
GOSTEI 0