Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Pausar loop


robinhocne

Pergunta

Estou fazendo um programinha que pega determinadas pastas minhas, ai compacta e manda para meu e-mail uma por uma, mas ai queria ver o seguinte....

estou gerando o backup assim:

TblArq.First;

  while not TblArq.Eof do
    begin

      Data      := FormatDateTime('dd-mm-yyyy hh-mm-ss', Now);
      NomeBack  := 'BK-'+ TblArqPasta.AsString + '-' + Data;
      CamBackup := ChangeFileExt('C:\SisBackup\'+NomeBack,'.rar');

        try
          WinExec(Pchar('C:\Program Files (x86)\WinRAR\WINRAR.EXE a -hp123mudar "'+CamBackup+'" "'+TblArqCaminho.AsString+'"'),sw_normal);
        except
        end;

      TblArq.Next;
    end;

Mas ai eu queria ver assim, vamos supor que tenho na tabela temporária (TblArq) com umas 10 pastas para fazer o backup, então no loop vai passando uma por uma e compactando, mas eu queria que ao compactar a primeira o loop ficasse pausado e ai depois verificar se já gerou o backup e ai pula para o proximo.

Tem como fazer isso ?

Editado por robinhocne
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

exemplo

function Executa(Arquivo: string; Estado: Integer): Integer;
var
   Programa: array[0..512] of char;
   CurDir: array[0..255] of char;
   WorkDir: string;
   StartupInfo: TStartupInfo;
   ProcessInfo: TProcessInformation;
begin
   StrPCopy(Programa, Arquivo);
   GetDir(0, WorkDir);
   StrPCopy(CurDir, WorkDir);
   FillChar(StartupInfo, Sizeof(StartupInfo), #0);
   StartupInfo.cb := sizeof(StartupInfo);
   StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
   StartupInfo.wShowWindow := Estado;
   if not CreateProcess(nil, Programa, nil, nil, false, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
      Result := -1
   else
   begin
      WaitForSingleObject(ProcessInfo.hProcess, Infinite);
      //GetExitCodeProcess (ProcessInfo.hProcess, Result);
   end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  TblArq.First;

  while not TblArq.Eof do
    begin

      Data      := FormatDateTime('dd-mm-yyyy hh-mm-ss', Now);
      NomeBack  := 'BK-'+ TblArqPasta.AsString + '-' + Data;
      CamBackup := ChangeFileExt('C:\SisBackup\'+NomeBack,'.rar');

        try
          Executa(Pchar('C:\Program Files (x86)\WinRAR\WINRAR.EXE a -hp123mudar "'+CamBackup+'" "'+TblArqCaminho.AsString+'"'), sw_hide);
        except

        end;

      TblArq.Next;
    end;


end;

ou voce pode usar o comando Break para pausar até que o bakup esteja concluido e usar o comando Continue para prosseguir

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,8k
×
×
  • Criar Novo...