请教文本文件在stringgrid中的显示(100分)

  • 主题发起人 主题发起人 zzj
  • 开始时间 开始时间
Z

zzj

Unregistered / Unconfirmed
GUEST, unregistred user!
现有数据以文本方式存储,格式如下:
1 2 3
4 5 6
7 8 9
...
我想将这些数据按列放到stringgrid中去,有什么方便的办法吗?
如果要自己写,该如何写呢?
 
你为何不把文本文件改为INI文件试一下
[111]
123=....
223=...
其中123 223相当于数据库中的字段名,发挥你天才,可把INI当作
文件性数据库来使用,这样可以把你所要的东西加在stringgrid中的
row,column. OK!
我的e_mail : six666six@netease.com


 
问题解决了,不过我用的是比较奇怪的方法。
用matcom中可以从文本文件中读取数据的办法,
#include "matlib.h"
...
initM(MATCOM_VERSION);
Mm data;
loadascii(TM(filename.c_str(),CL(data));
for(int i=1;i<=StringGrid1->RowCount-1;i++)
{
StringGrid1->Cells[1]=FloatToStr(data.r(i,1));
StringGrid1->Cells[2]=FloatToStr(data.r(i,1));
...
}
exitM();
...

用过matcom与bcb混合编程的同志可能知道我写的是什么,hoho

 
最简单的方法:
用StringList.CommaText
分隔符为空格或','
procedure TForm1.ReadTableFile(Const FileName: String);
var
F:TextFile;
S:String;
TotalRow,MyRow:Integer;
StringList1: TStringList;
begin
AssignFile(F,FileName);
Reset(F);
StringList1:=TStringList.Create;
Readln(F,S);
StringList1.CommaText:=S;
StringGrid1.ColCount:=StringList1.Count;
TotalRow:=1;
Repeat
Inc(TotalRow);
Readln(F);
Until EOF(F);//得到总行数
Reset(F);
StringGrid1.RowCount:=TotalRow;
For MyRow:=0 to TotalRow do
begin
Readln(F,S);
StringList1.CommaText:=S;
StringGrid1.Rows[MyRow]:=StringList1;
end;
StringList1.Free;
CloseFile(F);
end;
 
接受答案了.
 
后退
顶部