사이드바 영역으로 건너뛰기

폴더의 파일 읽기

procedure TfmMain.GetData;
var
DirInfo: TSearchRec;
r,Loop,I : Integer;
begin
  if cbb1.ItemIndex < 0 then
  begin
    ShowMessage('가져올 파일 갯수를 선택하세요.');
    Exit;
  end;

  btnSaveExcel.Enabled := False;
  btnInputDB.Enabled := False;

  AdvStrGrid2.Clear;
  AdvStrGrid2.RowCount := 2;

  if not FolderDlg1.Execute then
    FolderDlg1.Execute;

  r := FindFirst(FolderDlg1.Directory + '*.xls', FaAnyfile, DirInfo);

  Loop := 0;

  While r = 0 do
  begin
    Application.ProcessMessages;
    if Loop = StrToInt(cbb1.Items[cbb1.ItemIndex]) then Break;

    if ((DirInfo.Attr and FaDirectory <> FaDirectory) and
          (DirInfo.Attr and FaVolumeId <> FaVolumeID))
    then
      //mmo1.Lines.Add(DirInfo.Name);
      SetFileName(DirInfo.Name);
      advgrdxcl1.XLSImport(FolderDlg1.Directory + '' + DirInfo.Name);
      AdvStrGrid2.ColCount := AdvStrGrid1.ColCount + 1;
      //DeleteFile(pChar(FolderDlg1.Directory + '' + DirInfo.Name));
      AdvStrGridFile.AddRow;
      AdvStrGridFile.Cells[0,Loop] := FolderDlg1.Directory + '' + DirInfo.Name;
    r := FindNext(DirInfo);
    Loop := Loop + 1;
  end;

  SysUtils.FindClose(DirInfo); // FindFirst에 의해 사용된 메모리를 해제
  btnSaveExcel.Enabled := True;
  btnInputDB.Enabled := True;
end;
 

진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크