簡體   English   中英

在Delphi 2010中使用FileSize(F)時出錯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM