Moin Daniel,
klingt jetzt vielleicht ein bisschen blöd, aber:
Zählen
Wenn Du diese Funktion etwas abwandelst sollte es kein Problem darstellen.
Ich hoffe mal, dass alles selbssprechend ist.
Delphi-Quellcode:
type
TcsValidCharacters = set of char;
procedure GetWordList(const AsFilePath : string;const AslWordList : TStringList;const AfAddToList : Boolean = false;const AscValidChar : TcsValidCharacters = ['a'..'z','A'..'Z']);
var
fsFile : TFileStream;
iPos : integer;
iCounter : integer;
sBuffer : string;
iLen : integer;
begin
fsFile := TFileStream.Create(AsFilePath,fmOpenRead);
try
sBuffer := StringOfChar(#00,fsFile.Size);
fsFile.Read(sBuffer[1],fsFile.Size);
iLen := fsFile.Size;
iPos := 1;
iCounter := 0;
if not AfAddToList then
begin
AslWordList.Clear;
end;
while iPos <= iLen do
begin
if (sBuffer[iPos] in AscValidChar) then
begin
while ((iPos+iCounter) <= iLen) and (sBuffer[iPos+iCounter] in AscValidChar) do
begin
inc(iCounter);
end;
AslWordList.Add(copy(sBuffer,iPos,iCounter));
inc(iPos,iCounter);
iCounter := 0;
end
else
begin
inc(iPos);
while (iPos <= iLen) and (not (sBuffer[iPos] in AscValidChar)) do
begin
inc(iPos);
end;
end;
end;
finally
FreeAndNil(fsFile);
end;
end;