쫍.. 저는 터보 C 이후로 C 계열을 사용하는 경우가 극히
드문경우라
C 자체가 버거워서 답변을 하지 못하다가.
참고가 되시라고 댓글 답니다.
우선 해당 문장은 그냥 추측컨데,
파일 핸들을 오픈 후 바이너리형식으로 바꾸는 것 같습니다.
그러한 명령이 Pascal 문법에는 없습니다.
다만 오픈할 때 이미 파일의 핸들이 택스트 형식이냐
바이너리 형식이냐를 정하게 되어 있습니다.
또한 델파이에서는 API를 사용해서 파일핸들링을 할 수 있기 때문에
API 래퍼런스에서 파일 처리부분을 살펴보시기 바랍니다.
여하튼 바이너리로 파일을 읽고 쓰는 예제 하나만 올리도록 하겠습니다.
제가 지난 번 회사 관둔 후로 개발보다는 잡무에 집중하고 있기 때문에
현재 저한테는 API 바이블 조차 없기 때문에 이 이상의 설명은 어려울 듯 합니다 -.-
(델파이 안쓴지 얼마나 되었나?)
Voice of Delphi, 류..
-----------------------------------------------------------------------------------
Function CopyFile(Source,Target:String):Integer;
Var
RRead : Integer;
SFile, TFile : Integer;
Buffer : Packed Array [1..1024] of Byte;
Begin
If File_Size(Source) = 0 then
Begin
Result:= 3;
Exit;
End;
Result:= 0;
SFile:= FileOpen(Source, fmOpenRead);
TFile:= FileCreate(Target);
If SFile <= 0 then
Begin
Result:= 1;
Exit;
End;
If TFile <= 0 then
Begin
Result:= 2;
Exit;
End;
Try
RRead:= FileRead(SFile, Buffer, 1024);
// 바이너리로 읽기 부분입니다.
While RRead > 0 Do
Begin
FileWrite(TFile, Buffer, RRead);
RRead:= FileRead(SFile, Buffer, 1024);
End;
FileSetAttr(Target, FileGetAttr(Source));
FileSetDate(TFile, FileGetDate(SFile));
FileClose(TFile);
FileClose(SFile);
Except
End;
End;
이상탁 님이 쓰신 글 :
: 답변에 감사드립니다.
:
: 저는 아직 찾지 못하고 있습니다. 저도 C 가 하는 것을 델파이가 못한다고 보지는 않습니다.
:
: 다만, 제가 델파이에서 그 방법을 못찾았을 뿐이지요.
:
: 실질적인 질문의 요지는 VC++ 에서 stdin, stdout, stderr 에 해당되는 것으로 델파이에는 무엇이 있냐는 것입니다.
:
: 그래서 다음의 두 문장을 대체할 수 있는 델파이 문장을 물어본것입니다.
:
: setmode(fileno(stdin), O_BINARY);
:
: len = fread(buf, 1, sizeof(buf), stdin)
:
: 죄송하지만 아시는 분은 부탁드립니다.
|