任意のセクション名でキーとともにini保存し、
FormCreate時にセクションがあればそのセクション名とキーを読み込ませたいのですが、
前者は
Ini_Path := ChangeFileExt(Application.ExeName, '.ini');
WritePrivateProfileString(PChar(name.Text),'name',PChar(name.Text),PChar(Ini_Path)) ;
WritePrivateProfileString(PChar(name.Text),'id',PChar
ini
[PChar(name.Text)←これを取得したい]
name=PChar(name.Text)
id=xxxxx
といった感じで実現出来ましたが後者の方法が思い付きません。
使えそうなコンポーネントを見つけましたが
導入後、実行時の引数がナンタラとかフォームの変更が反映されなくなったり
混乱状態です。
助言をお願いします。
Ini_Path := ChangeFileExt(Application.ExeName, '.ini');
WritePrivateProfileString(PChar(name.Text),'name',PChar(name.Text),PChar(Ini_Path)) ;
WritePrivateProfileString(PChar(name.Text),'id',PChar(id.Text),PChar(Ini_Path)) ;
こうでした--;
DelphiでIniFileを扱うにはApiではなくTIniFileかTMemIniFileを使用するのが普通?だと思います。
その場合にセクションの一覧を得るには ReadSections(Strings: TStrings);を使用します。
Helpを参照してください。
お早いレスありがとうございます。
ReadSection メソッドは INI ファイルの指定されたセクションにあるキー名をすべて文字列リストに読み出します。
procedure ReadSection (const Section: string; Strings: TStrings); override;
"指定されたセクションにあるキー名を"と書かれていますが、この関数でセクション名の一覧を読み出すことが出来るのでしょうか?
>procedure ReadSection (const Section: string; Strings: TStrings); override;
ではなくて
procedure ReadSections(Strings: TStrings); override;
のほうです。(sがついてます)
見落としてました・・。
procedure TForm1.FormCreate(Sender: TObject);
var
AppIni: TIniFile;
begin
AppIni:= TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
AppIni.ReadSections(ListBox1.Items);
end;
で上手くいきました。
即レスに多謝です。ありがとうございました。
ツイート | ![]() |