Thema: Delphi Wörter in RichEdit

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.106 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 17. Dez 2002, 18:38
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;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat