IniFileについて

解決


kez  2004-05-30 03:32:36  No: 9262

アプリケーションを開発していて、現在、INIファイルにセーブするところを作成しているのですが、INIファイルから値の読み込み時は、大丈夫なのですが、INIファイルへの書き込み時に EAccessViolationエラーが発生します。ですが、INIファイルへは書き込みができているのですが、このエラーを発生させない方法はないでしょうか?また、なぜこのエラーが発生するのか教えてくだされば幸いです。よろしくお願いします。


ふぐちゃん  2004-05-30 03:45:37  No: 9263

ソースコードの提示が必要ではないかと思います。


kez  2004-05-30 04:48:19  No: 9264

わかりました。
以下のユニットを呼び出してINIファイルにセーブ、ロードを行います。
よろしくお願いします。
---------↓ソース------------------
unit ini;

interface
uses
  IniFiles ,SysUtils,Forms,Dialogs;
  function Get_IniFile(Section,Value,Default:String):String;
  procedure Set_IniFile(Section,Value,Value2:String);

implementation

function Get_IniFile(Section,Value,Default:String):String;
var
  IniFile:TIniFile;
  GFilePath:String;
begin
  GFilePath:=ExtractFilePath(Application.ExeName) + 'Sys\BookSys.ini';
  IniFile := TIniFile.Create(GFilePath);
  try
    result := IniFile.ReadString(Section,Value,Default);
  finally
    IniFile.Free;
  end;
end;

procedure Set_IniFile(Section,Value,Value2:String);
var
  IniFile :TIniFile;
  SFilePath:String;
begin
  SFilePath:=ExtractFilePath(application.ExeName) + 'Sys\BookSys.ini';
  IniFile := TIniFile.Create(SFilePath);
  try
    IniFile.WriteString(Section,Value,Value2);
  finally
    IniFile.Free;
  end;
end;

end.


ふぐちゃん  2004-05-30 05:25:32  No: 9265

提示してくださったコードをアプリに組み込んでそのまま実行してみましたが、
正常に動作しました。
EAccessViolationが書き込み時に発生するとのことですが、これは無効な
メモリ領域へアクセスしたときに発生しますよね。
Set_IniFile手続きを呼び出しているコードに問題は無いでしょうか?


kez  2004-05-30 06:07:07  No: 9266

フォームのクローズのところに問題があったようです。
いろいろありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加