如何从长度不定的文本文件(每行格式固定)中提取用于计算的数据?(50分)

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

zjmg

Unregistered / Unconfirmed
GUEST, unregistred user!
从文本文件
199612312230156......................
199709111221185......................
.....................................
中提取上述日期时间数据,前15位依次为年(4位)、月(2位)、日(2位)、时(2位)、
分(2位)、秒(3位,整数2位),请问哪种方法效率高:1、用TMEMO装入文件,用
COPY方法取出数据;2、用readln方法读入数组。
如用2,因文件长度不定,需用动态数组,如何设置动态数组的长度?
 
2.var s:array of char;
setlength(s,60);
 
2.
Va: array of String

S := ReadLn(文件);
SetLength(Va, Length(S));
 
我的方法:
stringlist.loadfromfile('');
逐行COPY处理
 
读入一行,再用自己写的函数处理一下不就行了,,
 
逐行读入,逐行处理:
c里用fgets()读入一行字符串,
至于处理字符串的方法可就多了,
就算循环拷贝字符也不麻烦啊。
 
按你提的数据格式转换成纪录,而后用readln(FilVar, )即可
RD=Record
纪录内容
End;

Var
RDArray: Array[1..xxx] of Rd
 
逐行读入,处理后放入TStringList中,我常用的。
还有你的文本格式如能在每个字段后加入分隔符存成Outlook的通讯簿文件格式(.csv)就更好处理了。
请参考<a href="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=268076">如何按固定格式读取文件?????</a>
以后有问题最好先查询一下再提问,以节省你的Money。:)

 
建议用RICHEDIT或MEMO的LOADFROMFILE一次读入。出错机率小些。
 
1,2都不难,您可以试试,2不要用动态数组,用临时变量,每回读一行,用完后再
读一行...
 
多人接受答案了。
 
后退
顶部