如何将文本中数据导入数组,马上要结帐了,要分就快些!(100分)

  • 主题发起人 主题发起人 laowt
  • 开始时间 开始时间
L

laowt

Unregistered / Unconfirmed
GUEST, unregistred user!
我在程序当前目录下有8个文件(a1.txt,a2.txt..a8.txt),里面存有数据。
程序中有数组aaa:array[100] of string
需有选择的打开其中一个文件,把数据导入数组aaa中, 请指点!
 
procedure TForm1.Button2Click(Sender: TObject);
var
i : Integer;
st : Tstringlist;
aaa:array[0..100] of char ;
begin
st := TSTringlist.Create;
st.LoadFromFile('a?.txt');
strpcopy(aaa,st.Text);
st.Free;
end;
 
因为需要交互选择要打开的文件,怕要用opendialog;
另外,我窗体上放有demo,是不是最好用它来中转?
 
用Tstringlist最方便了
 
是不是每行的文字对应数组的一个元素啊?如果是的话,就用Tstringlist就可以了,不用memo转
 
不晓得你的TXT文件有多大呢
如果不大,可以使用TSTRINGLIST,非常方便,如果很大,那不要使用它,因为慢

另,你可以选择一个一个打开文件的方式
也可以选择一次性导入所有文件,OVER
 
把你选好的文件名放到st.LoadFromFile中就好了.别的不是问题.
不过你的文本内容如果大于100的话,最好用PCHAR动态分配内存存放到数组中
procedure TForm1.Button2Click(Sender: TObject);
var
i : Integer;
st : Tstringlist;
aaa:array[0..100] of char ;
begin
st := TSTringlist.Create;
st.LoadFromFile('a?.txt');
strpcopy(aaa,st.Text);
st.Free;
end;
 
文件不大,800字符。
但我会用demo自动以时间为标题存txt文件,用Tstringlist不知行不行?
选文件名是让用户选,事先不知道,所以怕要用opendialog。
每行的文字是对应数组的一个元素,只是用Tstringlist不会,请指点
 
tstringlist就是一个STRING型数组

这是一个简单测试
procedure TForm1.Button1Click(Sender: TObject);
var
t:tstringlist;
begin
t:=tstringlist.Create ;
t.Add('afdad');
t.Add('sdfsdafd');
t.add('sfafda');
memo1.Lines:=t;
t.Free ;
end;
 
要学会看DELPHI的帮助文档(光标放在TSTRINGLIST上,按F1).
虽然是英文的,但还好比较简单理解.

一些基本的问题看看文档就可以解决了.
TSTRINGLIST在帮助文档上有个例程.
 
最好有例程
 
文档中的东西就是例程
 
没看懂,先学,谁再指点一下
 
>>>>没看懂,先学,谁再指点一下

TSTRINGLIST是很简单的
有哪里不懂,提出来
 
memo就可以直接导入

memo.Lines.LoadFromFile('c:/???.txt');
 
不是学着呢,
If Opendialog1.Execute then begin
try
MyFiles := TStringList.Create;
MyFiles.Add(Opendialog1.FileName);
showmessage(MyFiles.strings);//
当i=0 显示 是文件名;
当i>0 提示错误
 
大家都很热心阿。呵呵。
myfiles.loadfromfile(opendialog1.filename)
 
to ablueriver: 谢谢,最少30分!
j:=6;
If Opendialog1.Execute then begin
try
MyFiles := TStringList.Create;
myfiles.loadfromfile(opendialog1.filename);
//showmessage(MyFiles.strings[2]);//
For i := 1 to j -1 do
begin
Memo1.Lines.Strings[j]:=MyFiles.strings[j];
end;
为何Memo1中无一个数据(应是五个)
 
Memo1.lines.SaveToFile(FormatDateTime('yyyymmdd HH-MM',Now)+'.txt');
MyFiles.SaveToFile(FormatDateTime('yyyymmdd HH-MM',Now)+'.txt');
为何第一个可以存文件,第二个不能存文件,并有出错提示!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部