Q&A

  • 파일복사 진행률을 프로그래스바로 나타내고 싶거든요..
제가 초보라 잘 모르겠거든요..
좀 알려주세요..
머 예제에 보면 나왔다 이러시는데..
직접 예를 들어서 설명 좀 해주세요..
부탁드려요~
그럼 이만..(__)
3  COMMENTS
  • Profile
    머슴 2002.10.19 18:28
    파일복사가 DB에서나 화일에서 화일로 복사하는데 사용하실라고

    하는 것이지요?  제가  제시한 예제는 화일을 읽어서 DB에 저장

    하는 과정에서 사용한 예제입니다..

    님의 경우는  먼저 작업할 화일크기나 쿼리갯수, 처리할 라인수 같은 것

    이 전체 진행율로 넣습니다..

    여기서는 화일에서 읽어온 라인수를 전체진행율(?)로 잡았습니다.

    ProgressBar1.Max  := Trunc(edit1.Lines.Count-1);

    그 다음에 화일을 읽어서 DB에 넣는 과정에서 1건 진행될때마다

      posititon을 증가를 시킵니다..

      님의 경우는 화일의 크기,쿼리갯수,처리할 라인수를 증가 시키면

      될것 같습니다.

    ProgressBar1.Position   := ProgressBar1.Position + 1;

    Application.ProcessMessages;

  • Profile
    김영은 2002.10.19 19:13
    이대로 했는데 잘 안되거든요..
    지금은 소스가 이렇거든요..

    procedure TForm1.Button2Click(Sender: TObject);
    var
        Fp : TextFile;
        FileString : String;

    begin
        IdFTP1.Get('Update.List', '.ListUpdate.List', true);
        AssignFile( Fp,'.ListUpdate.List');
        Reset(Fp);
        While NOT EOF(Fp) Do
        Begin
            ReadLn( Fp,FileString );
            SplitFileData(FileString);
        End;

        CloseFile(Fp);
    end;

    여기다가 어떻게 적용해야 하는지 잘 모르겠어요..
    좀 알려주세요~ㅠㅠ
    부탁드려요~
  • Profile
    머슴 2002.10.19 20:03

    저는 화일을 DB로 변환하는 곳에서 사용을 해봐서

    또  통신프로그램은  해본것이 아니라서 허접하지만..

    한번 고쳐봤습니다.. 도움이 될란지 모르겠습니다..

       (Indy 사용하시는 거지요..?)

      아래처럼 한번 고쳐보세요...

    procedure TForm1.Button2Click(Sender: TObject);
    var
        Fp : TextFile;
        FileString : String;
        BytesToTransfer: LongWord;
    begin
         <추가>
         BytesToTransfer  :=IdFTP1.Size('Update.List');
         ProgressBar1.Max := BytesToTransfer;
         <추가끝>
         IdFTP1.Get('Update.List', '.ListUpdate.List', true);
         AssignFile( Fp,'.ListUpdate.List');
         Reset(Fp);
         While NOT EOF(Fp) Do
         Begin
            ReadLn( Fp,FileString );
            SplitFileData(FileString);
         End;
         CloseFile(Fp);
    end;

    OnWork 이벤트에서

    procedure TForm1.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: Integer);
    begin
      ProgressBar1.Position := AWorkCount;
    end;