超大文本文件,如何操作

bbs3000 2002-12-02 04:05:43
我要对一个大于64k,有157k多只能用写字板打开的文本文件进行读写操作如何
做?!我用基本的文件读写操作要报错(我用的是AssignFile,readln,APPEND,Rewrite,writeln)要做些操作如何现在应该如何做?!最好帮我写点源程序看看
...全文
38 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jedime 2002-12-04
  • 打赏
  • 举报
回复
你这样试过吗?
TempList := TStringList.Create;
TempList.LoadFromFile('d:\test.txt');
//Append
TempList.Add('AppendValue');
TempList.saveToFile('d:\test.txt');
TempList.Free;
bbs3000 2002-12-04
  • 打赏
  • 举报
回复
我写的程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var
f,f2: TextFile;
ss: TStrings;
AStr:String;
begin
AssignFile(f,'d:\165.txt');
AssignFile(f2,'d:\test.txt');
reset(f);

while not eof(f) do
begin
readln(f,AStr);
ss:=TStringList.Create;
// try
ss.CommaText:=AStr;
if fileExists('d:\test.txt') then
APPEND(f2)
else
Rewrite(f2);
writeln(f2,ss[1]);
//finally
ss.Free;
CloseFile(f2);
end;
CloseFile(f);
showmessage('转换完成');
end;

报错信息为:list index out of bounds (1)
如果165.txt这个文件比较小的话就不会出错,请高手帮我看看!

dhjdut 2002-12-04
  • 打赏
  • 举报
回复
找到了,在BDE ADMINISTRATOR中调节BLOB SIZE
dhjdut 2002-12-04
  • 打赏
  • 举报
回复
如果你用SQL2000的话,可以采用BLOB字段,在管理器里面可以修改默认的字段的大小。好像默认的是33K,你可以修改,具体的我也不怎么清楚了,我以前改过
zhaojin1975 2002-12-04
  • 打赏
  • 举报
回复
提示什么错误呀?
我刚做了试验,用这些AssignFile,readln等过程操作一个214KB的文本文件,没有任何错误呀,我用的是win2000
copy_paste 2002-12-04
  • 打赏
  • 举报
回复
不知道,估计是内存有问题,买个N * 256 DDR内存换上试试,如果不行,内存肯定有问题,不然是硬盘,再不就是CPU了,反正不会是你的程序的问题。。。
bbs3000 2002-12-04
  • 打赏
  • 举报
回复
没人能回答还是嫌给分少了啊?!
bbs3000 2002-12-04
  • 打赏
  • 举报
回复
哎,问题是比较怪,我把这个文件全拷贝到editplus存成text文件再用我的
程序试居然好了,不过还是谢谢你们的回答
谢谢 zhaojin1975(莱因哈特) 、copy_paste(木石三)、 hf23(原来生命,真的是一场闹哄!)
hf23 2002-12-04
  • 打赏
  • 举报
回复
楼上高见
zhaojin1975 2002-12-04
  • 打赏
  • 举报
回复
你的代码本身没有错误,是你的文件165.txt的格式有问题,你用ss.CommaText:=AStr;来给这个TStrings类型的变量赋值时,字符串AStr的格式是有一定要求的,假如把ss.CommaText设为:
"Stri,ng 1","Stri""ng 2","String 3",String4
则ss的列表内容就是:
Stri,ng 1
Stri"ng 2
String 3
String4
这个时候可以使用ss[0]---ss[3],如果使用了ss[4],就会出现list index out of bounds (4)的错误,因为根本没有ss[4]
你这里的错误就是这样的,由于文件格式的原因,赋值后得到的TStrings列表中根本没有ss[1].

我就是用你的代码,165.txt文件的内容是若干行
"Stri,ng 1","Stri""ng 2","String 3",String4
文件大小1.66MB,也没有出现错误。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧