処理する必要がある大きなファイルがいくつかあり、処理に時間がかかる可能性があるため、ユーザーにファイル サイズを示したいと考えています。
サイズを取得するために 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 に変換する詐欺師の方法が必要です。
私のベーコンを助けてくれる人はいますか?ありがとうございました。