Nieco to toporne, ale może Ci się przydać.
Wyciąganie słów z podanego pliku tekstowego. Wynik zapisywany jest do pliku Wyrazy.txt :
function RemoveNonChars(Text: string): string;
var
s: string;
begin
s := Text;
s := StringReplace(s, ',', ' ', [rfReplaceAll]);
s := StringReplace(s, ';', ' ', [rfReplaceAll]);
s := StringReplace(s, '!', ' ', [rfReplaceAll]);
s := StringReplace(s, '@', ' ', [rfReplaceAll]);
s := StringReplace(s, '#', ' ', [rfReplaceAll]);
s := StringReplace(s, '$', ' ', [rfReplaceAll]);
s := StringReplace(s, '%', ' ', [rfReplaceAll]);
s := StringReplace(s, '^', ' ', [rfReplaceAll]);
s := StringReplace(s, '&', ' ', [rfReplaceAll]);
s := StringReplace(s, '*', ' ', [rfReplaceAll]);
s := StringReplace(s, '(', ' ', [rfReplaceAll]);
s := StringReplace(s, ')', ' ', [rfReplaceAll]);
s := StringReplace(s, '-', ' ', [rfReplaceAll]);
s := StringReplace(s, '_', ' ', [rfReplaceAll]);
s := StringReplace(s, '+', ' ', [rfReplaceAll]);
s := StringReplace(s, '=', ' ', [rfReplaceAll]);
s := StringReplace(s, '[', ' ', [rfReplaceAll]);
s := StringReplace(s, '{', ' ', [rfReplaceAll]);
s := StringReplace(s, ']', ' ', [rfReplaceAll]);
s := StringReplace(s, '}', ' ', [rfReplaceAll]);
s := StringReplace(s, '\', ' ', [rfReplaceAll]);
s := StringReplace(s, '|', ' ', [rfReplaceAll]);
s := StringReplace(s, ':', ' ', [rfReplaceAll]);
s := StringReplace(s, '"', ' ', [rfReplaceAll]);
s := StringReplace(s, '''', ' ', [rfReplaceAll]);
s := StringReplace(s, '<', ' ', [rfReplaceAll]);
s := StringReplace(s, '>', ' ', [rfReplaceAll]);
s := StringReplace(s, '.', ' ', [rfReplaceAll]);
s := StringReplace(s, '/', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '`', ' ', [rfReplaceAll]);
s := StringReplace(s, '~', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '', ' ', [rfReplaceAll]);
s := StringReplace(s, '', ' ', [rfReplaceAll]);
s := StringReplace(s, '', ' ', [rfReplaceAll]);
s := StringReplace(s, '', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, 'ˇ', ' ', [rfReplaceAll]);
s := StringReplace(s, '˘', ' ', [rfReplaceAll]);
s := StringReplace(s, '¤', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '§', ' ', [rfReplaceAll]);
s := StringReplace(s, '¨', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '°', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '˛', ' ', [rfReplaceAll]);
s := StringReplace(s, '´', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '¸', ' ', [rfReplaceAll]);
s := StringReplace(s, '?', ' ', [rfReplaceAll]);
s := StringReplace(s, '˝', ' ', [rfReplaceAll]);
s := StringReplace(s, '×', ' ', [rfReplaceAll]);
s := StringReplace(s, '÷', ' ', [rfReplaceAll]);
s := StringReplace(s, '˙', ' ', [rfReplaceAll]);
s := StringReplace(s, Chr($0A), ' ', [rfReplaceAll]);
s := StringReplace(s, Chr($AD), ' ', [rfReplaceAll]);
s := StringReplace(s, Chr($A0), ' ', [rfReplaceAll]);
s := StringReplace(s, Chr($82), ' ', [rfReplaceAll]);
Result := s;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
sl, slWords: TStringList;
i, x: integer;
s, s2: string;
begin
sl := TStringList.Create;
slWords := TStringList.Create;
try
sl.LoadFromFile(Edit1.Text);
sl.Text := StringReplace(sl.Text, Chr(0), ' ', [rfReplaceAll]);
for i := 0 to sl.Count - 1 do
begin
s := Trim(sl[i]);
s := RemoveNonChars(s);
s2 := '';
while Pos(' ', s) > 0 do
begin
s := Trim(s);
x := Pos(' ', s);
if x > 0 then
begin
s2 := Copy(s, 1, x - 1);
s := Copy(s, x + 1, Length(s));
if Length(s2) > 1 then
slWords.Add(s2);
end;
end;
s := Trim(s);
if Length(s) > 1 then slWords.Add(s);
end; // for
for i := slWords.Count - 1 downto 0 do
begin
s := slWords[i];
for x := 1 to Length(s) do
begin
if s[x] in ['0'..'9'] then
begin
slWords.Delete(i);
Break;
end;
end;
end;
slWords.SaveToFile('Wyrazy.txt');
ShowMessage('Liczba wyrazów w pliku ' + Edit1.Text + ' : ' + IntToStr(slWords.Count));
finally
sl.Free;
slWords.Free;
end;
end;