Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wort Nummer X aus String lesen? (https://www.delphipraxis.net/27260-wort-nummer-x-aus-string-lesen.html)

knödel 6. Aug 2004 15:06


Wort Nummer X aus String lesen?
 
Ich arbeite gerade mit Text-Dateien und lese sie zeilenweise ein, was auch prima klappt.

Doch nun möchte ich Wort X aus einem String lesen?

Gibt es dazu eine Funktion (konnte leider keine finden) um ein bestimmtes Wort anhand einer Zahlenangabe aus einem String zu holen oder muss ich mir da etwa selbst irgendwie eine Funktion basteln? :gruebel:

MfG

DelphiFreund 6. Aug 2004 15:28

Re: Wort Nummer X aus String lesen?
 
Also, ich denke, die musst du dir schon selber machen.
Du könntest ja die Anzahl der leerzeichen zählen und mit der position in einem array speichern.


Gruß DelphiFreund

knödel 6. Aug 2004 15:39

Re: Wort Nummer X aus String lesen?
 
Ja so in etwa hätte ich mir das dann auch vorgestellt.
Ist es aber absolut sicher, dass es keine einfache Funktion dafür gibt? :|

ripper8472 6. Aug 2004 15:41

Re: Wort Nummer X aus String lesen?
 
ein wort ist eine ansammlung von beliebigen buchstaben des alphabets oder deutscher sonderzeichen, also a-z,A-Z,ÄÖÜäöü,ß.
alles andere kannst du als "leerzeichen" ansehen und für die trennung der wörter benutzen.

dann fährst du mit einer for schleife den string ab und zählst in einer variable mit, wann von nicht-wort-zeichen auf wort-zeichen gesprungen wird (tipp: einen boolean benutzen)

Gruß

DelphiFreund 6. Aug 2004 15:45

Re: Wort Nummer X aus String lesen?
 
Ja ripper8472 hat Recht, in etwa so war's gemeint.

Gruß DelphiFreund

mischerr 6. Aug 2004 19:27

Re: Wort Nummer X aus String lesen?
 
Hier eine vielleicht *etwas* andere Idee dazu... :-D
Code:
function GetWort(MyText: string; WortNr: cardinal; var Wort: string): boolean;
var MyList: TStringList;
    i    : integer;
begin
  MyList:= TStringList.Create;
  for i:= 1 to length(MyText) do
      if MyText[i] in [' ', '.', ':', ';', '!', '?'] then MyText[i]:= ',';
  MyList.CommaText:= MyText;
  i:= 0;
  while i<MyList.Count do begin
      MyList.Strings[i]:= trim(MyList.Strings[i]);
      if MyList.Strings[i]='' then MyList.Delete(i)
         else inc(i);
  end;
  if WortNr<MyList.Count then begin
     Wort:= MyList.Strings[WortNr];
     result:= true;
  end else begin
     Wort:= '';
     result:= false;
  end;
  MyList.Free;
end;
Nachtrag: WortNr beginnt hier bei 0, also Wort 1 > WortNr = 0

Grüsse!

knödel 6. Aug 2004 23:04

Re: Wort Nummer X aus String lesen?
 
Danke, so etwas habe ich gesucht! :)

Mal schaun ob ich es so noch einsetzen werde, habe nämlich bereits ab 17 Uhr an einer eigenen Lösung gearbeitet. Aber vielleicht tausch ich das noch um. :mrgreen: :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz