1

処理する必要がある大きなファイルがいくつかあり、処理に時間がかかる可能性があるため、ユーザーにファイル サイズを示したいと考えています。

サイズを取得するために David Heffernan の関数 (David に感謝します) を使用していますが、うまく機能します。

function GetFileSize3(const FileName: string): Int64;
var
  fad: TWin32FileAttributeData;
begin
  if not GetFileAttributesEx(PChar(FileName), GetFileExInfoStandard, @fad) then
    RaiseLastOSError;
  Int64Rec(Result).Lo := fad.nFileSizeLow;
  Int64Rec(Result).Hi := fad.nFileSizeHigh;
end;

次に、それを文字列に変換し、後で使用できるように StringList に格納します。

Int64 値 (myInt64:=StrToInt(slSize[j])) に変換しようとすると、「xxx は整数ではありません」またはそのエラーに非常に近いエラーが発生します。

Filename:String; で Array of Record を使用するべきだったと思います。サイズ:Int64; StringLists を使用する代わりに、レコード内でなど。後知恵は素晴らしく、この時点で Array of Records を使用するには大幅な書き直しが必要になります。

エラーの原因となる通常の StrToInt( 関数の外にあるいくつかのファイルについて、非常に大きな StringList 値を Int64 に変換する詐欺師の方法が必要です。

私のベーコンを助けてくれる人はいますか?ありがとうございました。

4

1 に答える 1