16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:汎用セパレータを扱うStringList"
この発言は #01109 雪見酒 さんの汎用セパレータを扱うStringList に対するコメントです
#1109 雪見酒 さん こんにちは。
TYzStringList の使い方の例です。
Form1にボタン4個とリストボックス、エディット、ラベルを貼りつけて、
実行してみてください。プロパティを変えるといろいろ面白いことができ
ます。(^^)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls,YzStrList;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
ListBox1: TListBox;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
List: TYzStrList;
implementation
{$R *.DFM}
procedure TFOrm1.Button1Click(Sender: TObject);
var
I: Integer;
FileName: String;
F: TextFile;
begin
FileName := ExtractFilePath(Application.ExeName) + 'temp.txt';
AssignFile(F, FileName);
Rewrite(F);
try
for I := 1 to 1000 do
Writeln(F,
Chr(Random(3)+$41)+Chr(Random(3)+$41)+Chr(Random(3)+$41)+
'-' + Chr(Random(3)+$61)+Chr(Random(3)+$61)+Chr(Random(3)+$61));
finally
CloseFile(F);
end;
ShowMessage('complete.');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
T: Integer;
S, Source: String;
F: TextFile;
begin
T := GetTickCount;
Source := ExtractFilePath(Application.ExeName) + 'temp.txt';
List := TYzStrList.Create;
List.Sorted := true;
List.Duplicates := dupIgnore;
List.Delimiter:= ['-'];
List.Separator:= [','];
List.OutSparator:=',';
List.ChildSorted:=true;
List.ChildDuplicates:=dupIgnore;
AssignFile(F, Source);
Reset(F);
try
while not Eof(F) do begin
Readln(F, S);
List.Add(S);
end;
finally
CloseFile(F);
end;
ListBox1.Items.Assign(List);
ShowMessage('complete. time '+IntToStr(integer(GetTickCount)-T));
end;
procedure TForm1.Button3Click(Sender: TObject);
var
I: Integer;
Dest: String;
F: TextFile;
begin
// データ書き出し
Dest := ExtractFilePath(Application.ExeName) + 'tempout.txt';
AssignFile(F, Dest);
Rewrite(F);
try
for I := 0 to List.Count - 1 do
Writeln(F, List[I] + '---' + List.SeparatedText[I]);
finally
CloseFile(F);
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
var T:string;
begin
T:=ListBox1.Items[ListBox1.ItemIndex];
List.ChildList[T].CommaText:=edit1.Text;
Label1.Caption:=List.ChildList[T].CommaText;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var T:string;
begin
//getList
T:=ListBox1.items[ListBox1.ItemIndex];
Label1.Caption:=List.ChildList[T].CommaText;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
List.Free;
end;
end.
Yukimi Sake GHE01746@nifty.ne.jp
Original document by 雪見酒 氏 ID:(GHE01746)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|