StartprogrammingusingObjectPascal:CopyFilesUsingTFileStream: Difference between revisions
Jump to navigation
Jump to search
Onionmixer (talk | contribs) (SPOP TFileStream을사용한파일복사 페이지 추가) |
Onionmixer (talk | contribs) (번역수정) |
||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
==TFileStream을 사용한 파일 복사== | |||
이 예제에서는 ''TFileStream'' 형식을 사용하여 파일을 복사하려고 합니다. | 이 예제에서는 ''TFileStream'' 형식을 사용하여 파일을 복사하려고 합니다. | ||
이를 | 이를 실행하려면 새 프로그램을 만들고 메인 폼에 이 구성요소를 놓습니다. | ||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
TButton, TOpenDialog, TSaveDialog | TButton, TOpenDialog, TSaveDialog | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Button 의 OnClick 이벤트에 대해 다음 코드를 작성합니다. | |||
<syntaxhighlight lang="pascal"> | <syntaxhighlight lang="pascal"> | ||
procedure TfmMain.Button1Click(Sender: TObject); | procedure TfmMain.Button1Click(Sender: TObject); | ||
Line 32: | Line 35: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
또한 파일을 복사하는 더욱 간단한 | 이 방법은 객체지향 파일을 사용한다는 점을 제외하면 비형식적 파일을 사용하는 것과 매우 유사합니다. | ||
또한 파일을 복사하는 더욱 간단한 방법도 사용할 수 있습니다. | |||
<syntaxhighlight lang="pascal"> | <syntaxhighlight lang="pascal"> | ||
procedure TfmMain.Button1Click(Sender: TObject); | procedure TfmMain.Button1Click(Sender: TObject); | ||
Line 52: | Line 58: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
우리가 원본 파일의 크기(SourceF.size)를 ''CopyFrom'' 메서드에 넘겨주었기 때문에 이것은 전체 파일 내용을 대상 파일로 복사합니다. | |||
우리가 원본 파일의 크기(SourceF.size)를 '''''CopyFrom''''' 메서드에 넘겨주었기 때문에 이것은 전체 파일 내용을 대상 파일로 복사합니다. | |||
[[Category:StartprogrammingusingObjectPascal]] | [[Category:StartprogrammingusingObjectPascal]] |
Latest revision as of 11:31, 4 April 2013
TFileStream을 사용한 파일 복사
이 예제에서는 TFileStream 형식을 사용하여 파일을 복사하려고 합니다.
이를 실행하려면 새 프로그램을 만들고 메인 폼에 이 구성요소를 놓습니다.
TButton, TOpenDialog, TSaveDialog
Button 의 OnClick 이벤트에 대해 다음 코드를 작성합니다.
procedure TfmMain.Button1Click(Sender: TObject);
var
SourceF, DestF: TFileStream;
Buf: array [0 .. 1023] of Byte;
NumRead: Integer;
begin
if OpenDialog1.Execute and SaveDialog1.Execute then
begin
SourceF:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
DestF:= TFileStream.Create(SaveDialog1.FileName, fmCreate);
while SourceF.Position < SourceF.Size do
begin
NumRead:= SourceF.Read(Buf, SizeOf(Buf));
DestF.Write(Buf, NumRead);
end;
SourceF.Free;
DestF.Free;
ShowMessage('Copy finished');
end;
end;
이 방법은 객체지향 파일을 사용한다는 점을 제외하면 비형식적 파일을 사용하는 것과 매우 유사합니다.
또한 파일을 복사하는 더욱 간단한 방법도 사용할 수 있습니다.
procedure TfmMain.Button1Click(Sender: TObject);
var
SourceF, DestF: TFileStream;
begin
if OpenDialog1.Execute and SaveDialog1.Execute then
begin
SourceF:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
DestF:= TFileStream.Create(SaveDialog1.FileName, fmCreate);
DestF.CopyFrom(SourceF, SourceF.Size);
SourceF.Free;
DestF.Free;
ShowMessage('Copy finished');
end;
end;
우리가 원본 파일의 크기(SourceF.size)를 CopyFrom 메서드에 넘겨주었기 때문에 이것은 전체 파일 내용을 대상 파일로 복사합니다.