unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Gauges;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Gauges;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Button4: TButton;
ProgressBar1: TProgressBar;
Gauge1: TGauge;
Animate1: TAnimate;
Button3: TButton;
Button5: TButton;
Button6: TButton;
procedure Button6Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Button4: TButton;
ProgressBar1: TProgressBar;
Gauge1: TGauge;
Animate1: TAnimate;
Button3: TButton;
Button5: TButton;
Button6: TButton;
procedure Button6Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
//------------------------------------------------------------------------------
// 파일생성
//------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
F : TextFile;
FH : Integer;
begin
// AssignFile로 파일 생성 AssignFile(F, 'C:\DelphiSourceDataRoom\파일다루기\AssignFile.txt');
Rewrite(F); // 쓰기모드로 오픈
CloseFile(F); // 파일 닫음
// 파일생성
//------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
F : TextFile;
FH : Integer;
begin
// AssignFile로 파일 생성 AssignFile(F, 'C:\DelphiSourceDataRoom\파일다루기\AssignFile.txt');
Rewrite(F); // 쓰기모드로 오픈
CloseFile(F); // 파일 닫음
// FileCreate로 파일 생성
FH := FileCreate('C:\DelphiSourceDataRoom\파일다루기\FileCreate.txt');
FileClose(FH); // 파일닫음
FH := FileCreate('C:\DelphiSourceDataRoom\파일다루기\FileCreate.txt');
FileClose(FH); // 파일닫음
end;
//------------------------------------------------------------------------------
// 파일 읽고 쓰고 복사하기
//------------------------------------------------------------------------------procedure TForm1.Button2Click(Sender: TObject);
var
FH1, FH2 : Integer; // 파일 핸들 Buffer : array[1..1024] of char; // 버퍼 iCount : Integer; // 파일크기 iFileSize : Integer; // 파일크기
begin
if OpenDialog1.Execute then begin // 열기 대화상자 실행 // fmShareDenyWrite : 다른파일을 사용하고있어도 읽어올수있도록 허용 FH1 := FileOpen(OpenDialog1.FileName, fmShareDenyWrite); // 파일 오픈 iFileSize := FileSeek(FH1, 0, 2); // 파일 사이즈 측정(주의. 파일끝으로 포인터이동) FileSeek(FH1, 0, 0); // (파일 포인터를 맨앞으로 다시이동)
// 파일 읽고 쓰고 복사하기
//------------------------------------------------------------------------------procedure TForm1.Button2Click(Sender: TObject);
var
FH1, FH2 : Integer; // 파일 핸들 Buffer : array[1..1024] of char; // 버퍼 iCount : Integer; // 파일크기 iFileSize : Integer; // 파일크기
begin
if OpenDialog1.Execute then begin // 열기 대화상자 실행 // fmShareDenyWrite : 다른파일을 사용하고있어도 읽어올수있도록 허용 FH1 := FileOpen(OpenDialog1.FileName, fmShareDenyWrite); // 파일 오픈 iFileSize := FileSeek(FH1, 0, 2); // 파일 사이즈 측정(주의. 파일끝으로 포인터이동) FileSeek(FH1, 0, 0); // (파일 포인터를 맨앞으로 다시이동)
if FH1 <> -1 then begin // FH1 파일 핸들값이 존재한다면
if SaveDialog1.Execute then begin // 저장 대화상자 실행 FH2 := FileCreate(SaveDialog1.FileName); // 저장명으로 파일생성
if FH2 <> -1 then begin // 생성한 FH2 파일행들값이 존재한다면
// 파일을 1024만큼 읽어드리고 그 크기를 반환한다.
iCount := FileRead(FH1, Buffer, sizeof(Buffer));
iCount := FileRead(FH1, Buffer, sizeof(Buffer));
// 프로그레스바 초기화
ProgressBar1.Min := 0;
ProgressBar1.Max := iFileSize;
ProgressBar1.Position := 0;
ProgressBar1.Min := 0;
ProgressBar1.Max := iFileSize;
ProgressBar1.Position := 0;
// 게이지 초기화 Gauge1.MinValue := 0;
Gauge1.MaxValue := iFileSize;
Gauge1.Progress := 0;
Gauge1.MaxValue := iFileSize;
Gauge1.Progress := 0;
// 에니메이터 초기화
Animate1.CommonAVI := aviCopyFiles;
Animate1.CommonAVI := aviCopyFiles;
while iCount <> 0 do begin // 파일에 내용이 있을때까지 반복해서 읽는다.
ProgressBar1.Position := ProgressBar1.Position + sizeof(Buffer); // 진행상태 프레그레스바에 표시 Gauge1.Progress := Gauge1.Progress + sizeof(Buffer); // 진행상태 게이지에 표시
FileWrite(FH2, Buffer, iCount); // FH1의 내용을 FH2에 쓴다 iCount := FileRead(FH1, Buffer, sizeof(Buffer)); // FH1 뒤에 이어서 읽어들인다. end;
ProgressBar1.Position := ProgressBar1.Position + sizeof(Buffer); // 진행상태 프레그레스바에 표시 Gauge1.Progress := Gauge1.Progress + sizeof(Buffer); // 진행상태 게이지에 표시
FileWrite(FH2, Buffer, iCount); // FH1의 내용을 FH2에 쓴다 iCount := FileRead(FH1, Buffer, sizeof(Buffer)); // FH1 뒤에 이어서 읽어들인다. end;
// 에니메이터 동작 중지 Animate1.Active := False;
Animate1.Visible := False;
Animate1.Visible := False;
ShowMessage('파일 복사작업이 완료되었습니다.');
End
else begin
ShowMessage('파일을 생성하던중 에러가 났습니다.');
FileClose(FH1); // FH1 파일을 닫는다. End;
End
else begin
ShowMessage('파일을 생성하던중 에러가 났습니다.');
FileClose(FH1); // FH1 파일을 닫는다. End;
End;
FileClose(FH2); // FH2 파일을 닫는다. End
else ShowMessage('파일 오픈시 에러가 발생하였습니다.');
FileClose(FH1); // FH1를 닫는다. End;
End;
else ShowMessage('파일 오픈시 에러가 발생하였습니다.');
FileClose(FH1); // FH1를 닫는다. End;
End;
//------------------------------------------------------------------------------
// 파일 크기 알아보기
//------------------------------------------------------------------------------
procedure TForm1.Button4Click(Sender: TObject);
var
FH3 : Integer;
iFileSize : Integer;
begin
FH3 := FileOpen('C:\DelphiSourceDataRoom\파일다루기\AssignFile.txt', fmShareDenyWrite);
// FileSeek Origin(Handle, Offset, Origin)
// 0 : 파일 포인터가 파일의 처음에서 Offset의 바이트수에 해당하는 위치로 포인터를 이동.
// 1 : 파일 포인터가 현재의 위치에서 Offset의 바이트수에 해당되는 위치로 포인터를 이동.
// 2 : 파일 포인터가 파일의 끝에서 Offset의 바이트수에 해당되는 위치로 포인터를 이동
// 파일 크기 알아보기
//------------------------------------------------------------------------------
procedure TForm1.Button4Click(Sender: TObject);
var
FH3 : Integer;
iFileSize : Integer;
begin
FH3 := FileOpen('C:\DelphiSourceDataRoom\파일다루기\AssignFile.txt', fmShareDenyWrite);
// FileSeek Origin(Handle, Offset, Origin)
// 0 : 파일 포인터가 파일의 처음에서 Offset의 바이트수에 해당하는 위치로 포인터를 이동.
// 1 : 파일 포인터가 현재의 위치에서 Offset의 바이트수에 해당되는 위치로 포인터를 이동.
// 2 : 파일 포인터가 파일의 끝에서 Offset의 바이트수에 해당되는 위치로 포인터를 이동
iFileSize := FileSeek(FH3, 0, 2); // 파일 사이즈 ShowMessage('AssignFile.txt : ' + IntToStr(iFileSize));
FileClose(FH3); // 파일 닫기end;
FileClose(FH3); // 파일 닫기end;
// 파일의 생성 날짜 조회
procedure TForm1.Button3Click(Sender: TObject);
var
dtDate : TDateTime; // 파일 생성날짜 FH4 : Integer; // 파일핸들
begin
if OpenDialog1.Execute then begin // 열기 대화상자 실행 // fmShareDenyWrite : 다른파일을 사용하고있어도 읽어올수있도록 허용
FH4 := FileOpen(OpenDialog1.FileName, fmShareDenyWrite); // 파일 오픈 dtDate := FileDateToDateTime(FileGetDate(FH4)); // 파일의 날짜 조회 ShowMessage(DateTimeToStr(dtDate));
FileClose(FH4); // 파일 닫음 end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
dtDate : TDateTime; // 파일 생성날짜 FH4 : Integer; // 파일핸들
begin
if OpenDialog1.Execute then begin // 열기 대화상자 실행 // fmShareDenyWrite : 다른파일을 사용하고있어도 읽어올수있도록 허용
FH4 := FileOpen(OpenDialog1.FileName, fmShareDenyWrite); // 파일 오픈 dtDate := FileDateToDateTime(FileGetDate(FH4)); // 파일의 날짜 조회 ShowMessage(DateTimeToStr(dtDate));
FileClose(FH4); // 파일 닫음 end;
end;
//------------------------------------------------------------------------------
// 디렉토리내에서 파일찾기
//------------------------------------------------------------------------------
procedure TForm1.Button5Click(Sender: TObject);
var
Form2 : TForm2;
begin
Form2 := TForm2.Create(Application);
Form2.Show;
end;
// 디렉토리내에서 파일찾기
//------------------------------------------------------------------------------
procedure TForm1.Button5Click(Sender: TObject);
var
Form2 : TForm2;
begin
Form2 := TForm2.Create(Application);
Form2.Show;
end;
//------------------------------------------------------------------------------
// 파일의 속성값 얻어오고 변경하기
//------------------------------------------------------------------------------
procedure TForm1.Button6Click(Sender: TObject);
var
FH5 : Integer;
FileSetDataResult: Integer;
FileDate: Integer;
begin
if OpenDialog1.Execute then begin // 열기 대화상자 실행
// 파일의 속성값 얻어오고 변경하기
//------------------------------------------------------------------------------
procedure TForm1.Button6Click(Sender: TObject);
var
FH5 : Integer;
FileSetDataResult: Integer;
FileDate: Integer;
begin
if OpenDialog1.Execute then begin // 열기 대화상자 실행
// 파일을 읽기속성 or 쓰기 속성으로 바꿈 FileSetAttr(OpenDialog1.FileName, fmShareDenyNone);
FH5 := FileOpen(OpenDialog1.FileName, fmOpenReadWrite); // 파일 오픈
try
// 파일날짜 변경
FileDate := DateTimeToFileDate(StrToDateTime('2001-05-21 01:01:01'));
FileSetDataResult := FileSetDate(FH5, FileDate);
if FileSetDataResult <> 0 then
begin
ShowMessage('파일날짜 변경 실패 : '+IntToStr(FileSetDataResult));
end;
finally
FileClose(FH5); // 파일 닫음 end;
// FileSetAttr(OpenDialog1.FileName, faReadOnly); // 파일을 읽기속성으로 바꿈 End;
end;
try
// 파일날짜 변경
FileDate := DateTimeToFileDate(StrToDateTime('2001-05-21 01:01:01'));
FileSetDataResult := FileSetDate(FH5, FileDate);
if FileSetDataResult <> 0 then
begin
ShowMessage('파일날짜 변경 실패 : '+IntToStr(FileSetDataResult));
end;
finally
FileClose(FH5); // 파일 닫음 end;
// FileSetAttr(OpenDialog1.FileName, faReadOnly); // 파일을 읽기속성으로 바꿈 End;
end;
end.