文本内容 10- 0- 0- 0 SLMACOS FREE ...
10- 0- 0- 1 SLMACOS SUB ...
10- 0- 0- 1 SLMACOS SUB ...
...
10- 3- 0- 2 SLCD FREE ...
10- 3- 0- 3 SLCD ISUB ...
...
150- 0- 5- 6 SLMAFPE FREE ...
150- 0- 5- 7 SLMAFPE SUB ...
...文本内容如上,主要是统计10、20...150...开头的SUB、FREE、ISUB分别有多少,开头为10、20...150...最多到2550。
比如,我要统计10里面,SLMACOS共有多少、SLCD有多少、SUB有多少、FREE、ISUB分别有多少。然后统计20、30、40、50...150,最多到2550。不知道有什么比较好的方法提高效率。能贴出代码更好!谢谢!
10- 0- 0- 1 SLMACOS SUB ...
10- 0- 0- 1 SLMACOS SUB ...
...
10- 3- 0- 2 SLCD FREE ...
10- 3- 0- 3 SLCD ISUB ...
...
150- 0- 5- 6 SLMAFPE FREE ...
150- 0- 5- 7 SLMAFPE SUB ...
...文本内容如上,主要是统计10、20...150...开头的SUB、FREE、ISUB分别有多少,开头为10、20...150...最多到2550。
比如,我要统计10里面,SLMACOS共有多少、SLCD有多少、SUB有多少、FREE、ISUB分别有多少。然后统计20、30、40、50...150,最多到2550。不知道有什么比较好的方法提高效率。能贴出代码更好!谢谢!
解决方案 »
- 送80分,想搞点delphi中通过adoquery实现增、删数据表记录,用什么方式比较好?
- 如何安装Formula One
- 小问题,顺便散分!
- object pascal 中的转义字符是如何表示的?
- 恢复 Sql Server 出现如下错误“因为数据库正在使用,所以未能获得对的排它控制权”
- 明天生日(元旦)
- 关于变量的问题,我在QQ上问同学,一下就明白了!
- 有人做过与DCS系统有关的项目吗?
- panel 释放为啥错误,一个panel 上放两个小的panel,成为一个整体, 创建N个整体并且保存到数组中,释放时报错:(, 不知道是否有人做过类似的工作
- 紧急求助:119 我能给的最高分
- adoquery怎么同edit聯接?在線急等!解決就揭帖!
- 分布式的问题,求助!
2.不过2550行,use TstringList 一次读入, 再解析
FList: TStringList;
tmpStr: String;
Begin
FList:= TStringList.Create;
FList.LoadFromFile(TextFileName);
for i:=0 to FList.Count-1 do
begin
if copy(flist[i],1,2)='10' then 累加,具体位置你自己判断一下
end;
var
FileName : TextFile;
Str,Tmp : String;
TStrList : TStringList;
i,k : Integer;
begin
TStrList := TStringList.Create;
TStrList.Clear;
if not (FileExists(GetNameDir(Application.ExeName)+'xuanhao.txt')) then
begin
Application.MessageBox('xuanhao.txt文件不存在,请先转出TXT文件','提示',MB_OK+MB_ICONSTOP);
Exit;
end;
AssignFile(FileName,GetNameDir(Application.ExeName) + 'xuanhao.txt');
Reset(FileName);
Readln(FileName,Str);
CloseFile(FileName);
if Str <> '' then
begin
i := pos(',',str);
while i > 0 do
begin
Tmp := copy(Str,1,i - 1);
TStrList.Add(Tmp);
Str := copy(Str,i + 1,length(Str)-i);
i := pos(',',Str);
end;
if Str <> '' then
begin
TStrList.Add(Str);
end;
end;
end;
FList: TStringList;
TextFileName: String;
Count, i: Integer;
Begin
Count:= 0;
if OpenDialog1.Execute then
TextFileName:= OpenDialog1.FileName; FList:= TStringList.Create;
FList.LoadFromFile(TextFileName); for i:=0 to FList.Count-1 do
begin
//如果有规律的话可以通过找空格的位置或者其他方法来截取要查找的关键字
if (pos('10', Flist[i])<>0) and (pos('SUB', Flist[i])<>0) then Inc(Count);
end; showmessage(IntToStr(Count));
Flist.Free;
end;