怎样用delphi实现读取一英文的txt文件,并统计出各个单词出现的频率,请高手们简单给写一点源码!
解决方案 »
- 请高手进,文字图片压缩问题,新手也来顶下
- 有没有人在delphi6下用过spread7控件
- 好奇怪,delphi中dbgrid显示access数据库表的问题?
- Query用DatabaseName后的查询
- 向全中国所有在第一线抢救SARS的医务医院致敬!!!!⑷
- ntfs系统的目录问题,救命啊。谁知道我给500分
- 下午好!请问,将Delphi用DBChar生成的图表插入到excel文件中,这用代码怎么实现?
- 请教自编函数错在哪里?
- 请问各位高手,windows 的mediaplay 播放器有没有播放的热键???或者哪位有没有使其通过远程播放的好方法.谢谢!!
- 一个新发现--学习、挣钱新途径(:非编程开发爱好者别进呀:)
- winsock接收网页源码的问题,
- 寻找可以斜放的Panel组件?
var
InputFile:textfile;
s: string;
begin
AssignFile(InputFile,'d:\tt.txt');
reset(InputFile);
while not eof(InputFile) do
begin
readln(InputFile,s);
memo1.Lines.Add(s);
end;
closeFile(inputFile);
end;
分词都比较方便
其中每项 : 个数 - 》A
个数 - 》B
.....................
个数-》z只要分析“个数”,就知道各个字符出现的频率了
procedure TForm1.Button1Click(Sender: TObject);
var
AWord : TStringList;
ANum : TStringList;
AFile : TStringList;
i, j, k: Integer;
s, t : String;
begin
AWord := TStringList.Create;
ANum := TStringList.Create;
try
AFile := TStringList.Create;
try
AFile.LoadFromFile('c:\1.txt');
for i := 0 to AFile.Count - 1 do
begin
s := LowerCase(AFile.Strings[i]) + #13;
t := '';
for j := 1 to Length(s) do
begin
if (s[j] >= 'a') and (s[j] <= 'z') then
t := t + s[j]
else begin
if t <> '' then
begin
k := AWord.IndexOf(t);
if k >= 0 then
ANum.Strings[k] := IntToStr(StrToIntDef(ANum.Strings[k], 0) + 1)
else begin
AWord.Add(t);
ANum.Add('1');
end;
end;
t := '';
end;
end;
end;
finally
AFile.Free;
end;
for i := 0 to AWord.Count - 1 do
Memo1.Lines.Add('单词 ' + AWord.Strings[i] + ' 出现 ' + ANum.Strings[i] + ' 次');
finally
AWord.Free;
ANum.Free;
end;
end;
去找出现的次数.