delphi 文件流中查找字符串 我想把文本文件读到文件流中。然后统计 某一个字符串的个数。请各位大侠帮我 一下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为啥非读到文件流中?下面的看是否适合你var ss:TStringlist; i:integer;begin ss:=TStringlist.create; ss.loadfromfile('1.txt'); for i:=0 to ss.count do begin {统计ss[i]中的某字符串个数,应该好求多了吧} end;end; 我就是用了一搂的那种方法,问题解决不了,才想读到流中的。因为txt文件是UTF8格式,里面有些东西stringlist不认识,不用流的话,我想先把格式转换后,再赋给stringlist.text,再用count去循环查找,如果我想转换,请问怎么转换, 我想在代码里转换,因为有很多个txt,用另存为是不行的,所以想用代码转换。不知道怎么搞。 const BuffSize = 2048; CONST_REPLACE_STR = 'Input'; KeyStrLen = 3; //lenght(CONST_REPLACE_STR);var FSM: TFileStream; Str1, Str2, FFileName: string; Len, i, allcount: integer;begin allcount := 0; Str2 := ''; FSM := TFileStream.Create(FFileName, fmOpenRead); try FSM.Seek(0, soFromBeginning); while FSM.Position < FSM.Size do begin setlength(Str1, BuffSize); Len := FSM.Read(Str1[1], BuffSize); if Len < BuffSize then setlength(Str1, len); Str2 := Str2 + Str1; i := pos(CONST_REPLACE_STR, str2); while i > 0 do begin delete(Str2, 1, i + length(CONST_REPLACE_STR)); inc(allcount); i := pos(CONST_REPLACE_STR, str2); end; end; finally FSM.Free; end;end; delphi中判断全角 求助:数组怎么动态的开配空间,谢谢! activex 的难题!!!!关于 activex 控件包添加了 文件 在客户端调用的问题!!!!!!! 急!!!! 怎样判断一个目录是否存在? 若何在Delphi7下使用ServerSocket和ClientSocket 请问怎样才能让TreeView的树图标放大? 李维的《DELPHI 6.X 分布式多层应用系统篇》这本书出了没有. 小问题 cobi:什么叫端口,最快,最通俗,最容易理解的解释,给你26+1分! StringGrid的问题 想不明白的崩溃 有没有PB的那种,点哪个控件就是this.name这类的写法?
下面的看是否适合你var
ss:TStringlist;
i:integer;
begin
ss:=TStringlist.create;
ss.loadfromfile('1.txt');
for i:=0 to ss.count do begin
{统计ss[i]中的某字符串个数,应该好求多了吧}
end;
end;
BuffSize = 2048;
CONST_REPLACE_STR = 'Input';
KeyStrLen = 3; //lenght(CONST_REPLACE_STR);
var
FSM: TFileStream;
Str1, Str2, FFileName: string;
Len, i, allcount: integer;
begin
allcount := 0;
Str2 := '';
FSM := TFileStream.Create(FFileName, fmOpenRead);
try
FSM.Seek(0, soFromBeginning);
while FSM.Position < FSM.Size do begin
setlength(Str1, BuffSize);
Len := FSM.Read(Str1[1], BuffSize);
if Len < BuffSize then setlength(Str1, len);
Str2 := Str2 + Str1;
i := pos(CONST_REPLACE_STR, str2);
while i > 0 do begin
delete(Str2, 1, i + length(CONST_REPLACE_STR));
inc(allcount);
i := pos(CONST_REPLACE_STR, str2);
end;
end;
finally
FSM.Free;
end;
end;