Lazarus SaveToFile无法正常工作

时间:2014-06-02 14:04:04

标签: list dialog save lazarus

我一直在为游戏编写代码,在实施保存选项时我偶然发现了一个问题。我一直在TStringList中保留所有移动,并且在点击按钮后想要保存用户选择的列表,但我一直收到错误

“无法创建文件”C:\ User \ Admin \ etc ...“”我无法找到原因。以下是我的一些代码:

procedure THistory.setName(name : String);
begin
  fileName := name;
end;

procedure THistory.save();
begin
  movesList.SaveToFile(fileName)
end

procedure TGameForm.saveButtonClick(Sender: TObject);
begin
  if saveDialog.Execute then begin
     history.setName(saveDialog.FileName);
     history.save();
  end;
end;

欢迎任何帮助。

运行Windows 7 64位,消息如下:ProjectPiłka引发异常类'EFCreateError',并显示以下消息:无法创建文件“C:\ User \ Admin \ Desktop \Piłka\ save \ save1.sav”< / p>

3 个答案:

答案 0 :(得分:1)

也许您在该用户目录的路径中有Unicode值。如果是这样,您可能需要在lasutf8utils库中为Windows应用程序使用各种utf8函数。 Linux不受影响。尝试保存到常规的ascii路径,首先像c:\ temp,看看它是否有效。如果确实如此,那就是原因。那么请尝试utf8toutf16(路径)

答案 1 :(得分:0)

您是否尝试过以管理员身份运行程序? 在项目选项→执行级别尝试设置为要求管理员。 要在lazarus中运行程序,请以管理员身份重新打开lazarus。

答案 2 :(得分:-1)

问题是“ł”“Piłka”,将路径改为ansi chars或使用FileUtil的UTF8toSys()