16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"StringGridからの表引関数作成支援"
この発言に対し以下のコメントが寄せられています
#00591 ワカシ さん RE:StringGridからの表引関数作成支援
こんにちは、ワカシです。
くだらないUPで申し訳ないです。表を引くような関数を作るときにCase文を
書いていくのが面倒だったのでStringGridから表引き関数を所定のTextFileに
おとしこむだけのものです(^^;)
(給与) (扶養家族) 0 1 2 3
----------------------------------------------------------------
205000 9750 6590 3420 250
207000 9890 6730 3560 390
209000 10030 6870 3700 530
上記のような表から関数を作るときにCase文で書くと大変なのでいったんCase文
の関数を任意のTEXTに落としているだけです。ですからこれでは完成はしなくて
打ち込みの支援しかしません(^^;)
StringGridはFixedColsとFixedRowsは0にして、goEditingをTrueに設定します。
procedure TForm1.Button1Click(Sender: TObject);
var
F:TextFile;
i,j:Integer;
Filen:String; //保存するFile名
Fnn:String; //関数名
Const
Sp5 =' ';
Sp10 =' ';
Sp20 =' ';
begin
Filen := Edit1.Text;
Fnn := Edit2.Text;
AssignFile(F,'C:/1/'+Filen);
Rewrite(F);
Writeln(F,'Function '+Fnn
+'(ColData:integer,RowSata:Integer):Integer;');
Writeln(F,Sp5 + 'Begin');
Writeln(F,Sp10 + 'Case ColData of');
for i := 1 to StringGrid1.ColCount - 1 do
begin
Writeln(F,Sp20 + StringGrid1.Cells[0,i] + '..'+
IntToStr(StrToInt(StringGrid1.Cells[0,i+1])-1 )
+ ': Case RowData of');
for j := 1 to StringGrid1.RowCount - 1 do
Writeln(F,Sp10 + Sp20 + StringGrid1.Cells[j,0] + ': Result:='
+ StringGrid1.Cells[j,i] +';');
end;
CloseFile(F);
end;
98/6/23(Tue) QZE02267 ワカシ
Flying with AirCraft 97 V2.07A
GATEWAY 改ASUS TE97E with MMX233
Original document by ワカシ 氏 ID:(QZE02267)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|