将.TXT文件中的数据(上万条)读入内存,用TStringList或TFileStream,请问最高效的方法是,高分酬谢! 另外我先用FileCreate('destination.txt')建立文件(此时文件destination.txt不存在),然后运行TStringList.SaveToFile('destination.txt')时出错,但如果不用FileCreate,在相同路径下直接建立一文件不会出错,请问为何? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好是把此文件作为一个表来处理,否则内存占用量太大了。因为如果没有,系统会自己建立一个destination.txt文件。 TFileStream肯定效率要高一些。因为直接以二进制打开,不用进行ASC的转化 aa.txt文件格式2093 Charlie Calvert C2121 1234 6.02610 Scott Frolich E2126 5678 5.112900 Heather Latham C2221 9012 5.103265 Xavier Pacheco C0001 3456 5.60007 Jason Sprenger F3169 7890 6.01001 Matt Stave C3456 0987 5.92611 Steve Teixeira E2127 6543 6.5那么定义一个文件如下aa.sch(一定要用该文件名)[PASADV]FILETYPE = FIXEDCHARSET = asciiField1 = EmpNo,LONGINT,04,00,00Field2 = Name,CHAR,15,00,05Field3 = CubeNo,CHAR,05,00,21Field4 = PhoneExt,LONGINT,04,00,27Field5 = Height,FLOAT,05,02,32这样你就可以用Table(tabletype=ttAsc),然后就可以当作表来使用了 我怀疑TStringList读文件时本身就是使用TFileStream..... 非常感谢大家参与,一旦解决,马上给“分” 其实我现在是用ADO将Source.txt(ID,Time等)作为数据源来连接,现在我要从10万个ID中随机抽出2万5千个ID(当然不能相同),并存入destination.txt中,我的作法是:1.打开DataSet(连接Source.txt);2.将DataSet中的ID加入sStringList中;3.在TStringList.Count范围内随即产生一个整数;4.根据产生的随机数取得ID,放入dStringList,如果和此前相同则继续,直到取出2万5千个。请大家提出意见,特别是根据现实情况(数据较多),存在的问题。 3.在sStringList.Count范围内随机产生一个整数;另外判断重复在第3步进行。 一段C语言和有关中断控制的代码分析 请用过IDFTP的高手看过来啊见人有分啊 DBGRIDEH(EHLIB3.5)不能按列排序 idtcpserver 和 idtcpclient有没有 ondatareceive或着 onreceive事件 如何对一个数据集操作? 我下载的1stclass4000StdVcl6需要口令,安装不了呀。 TDBcombobox 和Combobox 有什么不同 初学求助:我用form.show 后,为啥上一级form还能点击? Indy 中,得到 http-equiv="refresh" 如何处理 问一个问题 谁能解决呀。。。 急救,感激不.....
因为如果没有,系统会自己建立一个destination.txt文件。
2093 Charlie Calvert C2121 1234 6.0
2610 Scott Frolich E2126 5678 5.11
2900 Heather Latham C2221 9012 5.10
3265 Xavier Pacheco C0001 3456 5.6
0007 Jason Sprenger F3169 7890 6.0
1001 Matt Stave C3456 0987 5.9
2611 Steve Teixeira E2127 6543 6.5
那么定义一个文件如下aa.sch(一定要用该文件名)
[PASADV]
FILETYPE = FIXED
CHARSET = ascii
Field1 = EmpNo,LONGINT,04,00,00
Field2 = Name,CHAR,15,00,05
Field3 = CubeNo,CHAR,05,00,21
Field4 = PhoneExt,LONGINT,04,00,27
Field5 = Height,FLOAT,05,02,32这样你就可以用Table(tabletype=ttAsc),然后就可以当作表来使用了
其实我现在是用ADO将Source.txt(ID,Time等)作为数据源来连接,现在我要从10万个ID中随机抽出2万5千个ID(当然不能相同),并存入destination.txt中,我的作法是:
1.打开DataSet(连接Source.txt);
2.将DataSet中的ID加入sStringList中;
3.在TStringList.Count范围内随即产生一个整数;
4.根据产生的随机数取得ID,放入dStringList,如果和此前相同则继续,直到取出2万5千个。请大家提出意见,特别是根据现实情况(数据较多),存在的问题。