[英]Error when using FileSize(F) in Delphi 2010
我正在編寫一個用於記錄顯微鏡使用情況的應用程序,但以下代碼段在讀取的行上生成了錯誤的E2010不兼容類型“ WideString”和“ TDataFile”:SetLength(Items,FileSize(F));我縮小了范圍問題給FileSize(F),一個數字反而沒有給出錯誤,並嘗試分配i:= fileSize(F);其中i是一個整數也給出相同的錯誤。
type
TData = record
Status : integer; // 0=operational 1=maintenance 2=fault
OperatorName : string[255];
Client : string[255];
Specimen : string[255];
Memo : string[255];
TEM : TTEM;
SEM : TSEM;
FIB : TFIB;
StartTime : string[22]; // YYYY/MM/DD HH:MM:SS AM
FinishTime : string[22];
DataFileName : string[255];
end;
TDataFile = File of TData;
TDataArray = array of TData
function LoadAllData(FileName: string; var Items: TDataArray):boolean;
// Loads contents of Datafile into Items and returns true if successful else false
var
F : TDataFile;
i : integer;
begin
AssignFile(F, FileName);
try
try
Reset(F);
SetLength(Items, FileSize(F)); // This is the problem line
for i := 0 to High(Items) do
Read(F, Items[i]);
LoadAllData := true;
except
LoadAllData := false;
end;
finally
CloseFile(F);
end;
end;
我在Win7 64位上使用了delphi 2010。 有人知道為什么會這樣嗎? 編寫一個小型控制台應用程序只是為了測試i:= FileSize(F); 沒問題。...
看來您在另一個單元或代碼的一部分中聲明了一個名為FileSize
的函數,例如
function FileSize(const f : WideString):integer;
begin
//
end;
要解決此問題,請在函數名稱之前添加函數的單元名稱(在本例中為System
)以顯式調用FileSize
函數。
SetLength(Items, System.FileSize(F));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.