gpt4 book ai didi

delphi - 在 Delphi 2010 中使用 FileSize(F) 时出错

转载 作者:行者123 更新时间:2023-12-02 08:36:22 25 4
gpt4 key购买 nike

我正在编写一个应用程序来记录显微镜的使用情况,但以下代码段会在以下行生成错误 E2010 不兼容类型“WideString”和“TDataFile”:SetLength(Ite​​ms, 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));

关于delphi - 在 Delphi 2010 中使用 FileSize(F) 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7530004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com