お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"文字列リストのIniFile保存・復帰"




{
nifty:FDELPHI/MES/16/150  本田勝彦さんのコードは Textプロパティを
用いて文字列リスト単位で一括保存・復帰しますが、リストの項目単位で
読み書きしたいこともあるので以下の手続・関数を作ってみました。
}

// 文字列リストを項目単位に保存する
procedure IniSaveStringList(const Sec,Id:String; aList:TStrings);
var
  Ini: TInifile;
  i: Integer;
begin
  try
    Ini:= TInifile.Create(ChangeFileExt(ParamStr(0),'.ini'));
    Ini.EraseSection(Sec);   //データを初期化
    //リスト項目毎に IDに Indexを付加して書き込む
    For i:= 0 To aList.Count - 1 do
      Ini.WriteString(Sec,Id + IntToStr(i), aList[i]);
  finally
     ini.Free;
  end;
end;

// Indexで指定した項目のデータを読み出す
function IniReadListItem(const Sec, Id:String; Index:Integer): String;
var
  Ini: TInifile;
begin
  try
    Ini:= TInifile.Create(ChangeFileExt(ParamStr(0),'.ini'));
    Result:= Ini.ReadString(Sec,Id + IntToStr(Index), '');
  finally
    Ini.Free;
  end;
end;

// IniFileのデータを文字列リストに一括セットする
procedure IniSetStringList(const Sec,Id:String; aList:TStrings);
var
  Ini: TInifile;
  i: Integer;
  S: String;
begin
  try
    Ini:= TInifile.Create(ChangeFileExt(ParamStr(0),'.ini'));
    While S <> 'EndOfData' do
    begin
      S:= Ini.ReadString(Sec,Id + IntToStr(i), 'EndOfData');
      If S <> 'EndOfData' then
      begin
        {ここで項目毎にやりたいデータ処理を記述してもよい}
        aList.Add(S);
      end;
      Inc(i);
    end;
  finally
    Ini.Free;
  end;
end;

                ☆ H-Triton (^^) since 1996 ☆
                      Avalon友の会第80008号
     玉でも石でもお預かりします FDELPHIサンプル蔵下足札番

Original document by H-Triton        氏 ID:(QZV11422)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum