Q&A

  • FileSize(F)의 반환값의 단위가 바이트인가요?
JPEG사진 크기를 폼의 캡션에 표시해주는 건데요..

<!--CodeS-->
uses Jpeg;

procedure TForm1.Button1Click(Sender: TObject);
var
  F : File;
begin
  AssignFile(F, Edit1.Text);
  Reset(F);
  Form1.Caption:=IntToStr(FileSize(F));
  CloseFile(F);
end;
<!--CodeE-->

사진이 일정크기 이상일 때 올리는 못하도록 하려는 걸 만드려고,
일단 FileSize(F)을 가지고 JPG파일의 크기를 확인하는 예제거든요...
Edit1.Text <- 여기에 JPG파일의 경로가 들어갑니다.

FileSize(F) 설명에는 "파일의 크기를 바이트 단위로 조사한다."라고 있는데,
81.8KB짜리 JPG파일을 올리면 "654"가 뜨고
1.00MB짜리 JPG파일을 올린까 "8236"이 나오더라고요;;

FileSize(F)의 반환값의 단위가 어떤건가요??
아니면 그냥 계산해서 크기비교하는 방법을 이용해야하는 건가요?
(예 : 3MB 제한이면 if (8236곱하기3)< FileSize(F) then 메세지박스)

2  COMMENTS
  • Profile
    최용일 2009.07.10 04:11
    파일을 어떻게 열었냐에 따라서 값이 달라지죠...
    위와 같이 열면 레코드크기(default=128byte)로 나눈 레코드갯수가 리턴됩니다.
    byte size를 구하실려면 파일타입선언을 아래와 같이 바꾸세요.

    var
    F: File of Byte;
  • Profile
    윤영훈 2009.07.11 01:38
    그렇군요. 바로 실행해보고 궁금했던게 말끔히 사라졌어요~ 감사합니다.