掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ブロックリードを変えるのに最適な方法を教えて下さい。 (ID:150872)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ためしてないけど 大体こんな感じなはず procedure AssignFile(var F: TFILE; FILENAME: String); begin F.FILENAME := FILENAME; end; procedure FileClose(var F: TFILE); begin F.FileStream.Free; F.FileStream := nil; end; procedure Append(var F: TFILE); begin if FileExists(F.Filename) = True then begin if Assigned(F.FileStream) = True then FileClose(F); F.FileStream := TFileStream.Create(F.FILENAME,fmOpenWrite); F.FileStream.Position := F.FileStream.Size; end; end; procedure Rewrite(var F: TFILE; RecSize: Integer = 128); begin if Assigned(F.FileStream) = True then FileClose(F); if FileExists(F.Filename) = True then DeleteFile(F.FILENAME); F.FileStream := TFileStream.Create(F.FILENAME,fmOpenWrite); end; function Eof(var F: TFILE): Boolean; begin if F.FileStream.Position = F.FileStream.Size then RESULT := True else RESULT := False; end; procedure Reset(var F: TFILE; RECSIZE: Integer = 128); begin F.FileStream := TFileStream.Create(F.FILENAME,FILEMODE); F.RECSIZE := RECSIZE; end; function BlockRead(var F: TFILE; var Buffer; Count: Integer): LongInt; begin RESULT := F.FileStream.Read(Buffer,F.RECSIZE * Count); end; procedure Seek(var F: TFILE; N: Integer); begin F.FileStream.Position := N * F.RECSIZE; end; function FilePos(var F: TFILE): Int64; begin RESULT := F.FileStream.Position; end; function FileSize(var F: TFILE): Int64; begin RESULT := (F.FileStream.Size div F.RECSIZE); end; function BlockWrite(var F: TFILE; var Buffer; Count: Integer): LongInt; begin RESULT := F.FileStream.Write(Buffer,F.RECSIZE * Count); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.