안녕하세요..
이하 내용은 델마당에 질문을 올렸던 글입니다만.. 답변이 없어서.. 답답한 마음에 이곳에도 올려봅니다..
정말 이상한 경우입니다..
AssignFile 을 사용하는데.. 제가 다른 곳에서 받은 파일은 컴파일하면 AssignFile에서 이상없이 컴파일이 되는데.. 해당 프로시져를 복사해서 제 프로그램에서 쓰면 오류가 납니다..
========
function fileLen(s:String): LongInt;
var
f: file of Byte;
r: Longint;
begin
r := 0;
if FileExists(s) then
begin
AssignFile(f, s); // 요기에서 에러가 나옵니다..
Reset(f);
r := FileSize(f);
CloseFile(f);
end;
Result := r;
end;
=======
위에서 처럼 하게 되면.. 받은 프로그램에서는 정상적으로 되는데.. 복사해서 쓰는 제 폼에서는 아래와 같은 에러 메세지가 나옵니다..
There is no overloaded Version of 'AssignFile' That can be called with these arguments.
둘 다 델파이 6에서 실행하고 있습니다..
====
추가 질문..
Var 아래에..
f: File of byte 라고 되어 있는데.. 이런 표현은 어떻게 해석해야 하나요? 자료형이 file of byte라.. int 형도 아니고.. float 도 아니고.. File of Byte 라면 어떻게 해석해야 하는지요..?
보통 System유닛에 있는 것을 사용하게 되어있습니다.
이럴경우 직접 시스템 유닛에 있는 AssignFile 함수를 써라 라고 지정해 주시면 됩니다.
system.AssignFile <-- 이렇게 해보세요.
File of Byte는 버퍼에 읽어서 처리할때 바이트 형으로 읽어서 처리하기 위한 선언 입니다.
File의 형식에는 Text파일과 바이너리 파일이 있죠? ^^
보통 바이너리 파일을 처리할때 이렇게 많이 사용합니다.