16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"TMemIniFileでデータ入出力(その1)"
この発言に対し以下のコメントが寄せられています
#01126 H-Triton さん RE:TMemIniFileでデータ入出力(その1)
Delphi4以降でサポートされたTMemIniFileは32KBの制限がないので
ちょっとしたデータの保存に便利です。
まずは以下のようなIniFile形式のデータをTTreeViewとTListViewを
使ってエクスプローラーのようなインターフェースで表示してみます。
[Folder-A]
CaptionA1=DataA11,DataA12,・・・DataA1n
CaptionA2=DataA21,DataA22,・・・DataA2n
・・・・・・・・・・
CaptionAn=DataAn1,DataAn2,・・・DataAnn
[Folder-B]
CaptionB1=DataB11,DataB12,・・・DataB1n
・・・・・・・・・・
以下のコードを実行するには、uses節に IniFilesを追加して下さい。
// フォルダーツリーノードを作成する
procedure TForm1.FormCreate(Sender: TObject);
var
Ini: TMemInifile;
Folders: TStrings;
i: Integer;
begin
ListView1.ViewStyle:= vsReport;
TreeView1.Items.Add(nil, 'Root Node');
Ini:= TMemInifile.Create('ファイル名');
Folders:= TStringList.Create;
try
Ini.ReadSections(Folders);
with TreeView1.Items do for i:= 0 to Folders.Count - 1 do
AddChild(GetFirstNode, Folders[i]);
finally
Folders.Free;
Ini.Free;
end;
end;
// フォルダーを選択するとデータを読み出してTListViewに表示する
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
i: Integer;
Ini: TMemInifile;
Folder: string;
Captions: TStrings;
nItem: TListItem;
begin
if TreeView1.Selected.Level <> 1 then Exit;
ListView1.Items.Clear;
ListView1.Items.BeginUpdate;
// リスト項目の作成
Ini:= TMemInifile.Create('ファイル名');
Captions:= TStringList.Create;
try
Folder:= TreeView1.Selected.Text;
Ini.ReadSection(Folder, Captions);
with ListView1 do for i:= 0 to Captions.Count - 1 do
begin
nItem:= Items.Add;
nItem.Caption:= Captions[i];
nItem.SubItems.CommaText:= Ini.ReadString(Folder, Captions[i], '');
end;
finally
Captions.Free;
Ini.Free;
ListView1.Items.EndUpdate;
end;
// リストコラムの作成
with ListView1 do if Items.Count > 0 then
for i:= 0 to Items.item[0].SubItems.Count do Columns.Add;
end;
○ 心を打つ美しい文書作りは「えるの〜と」 ○
http://member.nifty.ne.jp/h-triton/
Avalon's Friendly Crew #80008 H-Triton (^^) since 1996
- FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 00/07/06 -
Original document by H-Triton 氏 ID:(QZV11422)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|