Ergebnis 1 bis 6 von 6

Thema: 2 Simple Delphifragen

  1. #1

    2 Simple Delphifragen

    Frage1:
    also hab ein Richtext. Wie kann ich die Zeilen des Textes herausfinden?

    Frage2:
    ich hab n string wie
    Zitat Zitat
    ich bin hier
    wie kann ich herausfinden aus wie vielen wörtern es besteht und wie kann ich nur ein bestimmtes wort aus dem string rausnehmen ?

  2. #2

    Re: 2 Simple Delphifragen

    Zitat Zitat
    Original geschrieben von Floydpower
    ...Frage2:
    ich hab n string wie

    wie kann ich herausfinden aus wie vielen wörtern es besteht und wie kann ich nur ein bestimmtes wort aus dem string rausnehmen ?
    Ich hab ja im Grunde absolut keine Ahnung und sollte sicherlich besser die Klappe halten wenn es um Delphi geht da ich nur PHP kann, aber ich muss, irgendwas zwingt mich dazu.

    @ Wort aus dem String rausholen & Wörter zählen:
    PHP bietet eine Funktion mit der man einen String an gewünschten Zeichen Aufsplitten und die einzelnen Teile in Array's packen kann.
    In PHP heißt diese Funktion explode().
    Wenn es diese oder eine vergleichbare Funktion auch in Delphi gibt (hab geforscht: Ja, scheint es zu geben, sie heißt auch in Delphi "explode"), könntest du den String mithilfe jener Funktion an den Leerzeichen aufsplitten und hättest die einzelnen Wörter in einem Array.
    Bsp.:
    Hallo         liebe         leute.
    $array[0] $array[1] $array[2]

    Wenn du nun noch weißt an welcher Stelle das gesuchte Wort steht, kannst du es mit der Arraybezeichnung direkt ansteuern oder auch im Array nach dem Begriff suchen per array_search() (so heißts zumindest in PHP ) welche dann den Arraykey des gesuchten Wortes ausspuckt womit du dann auch weißt an welcher Stelle das Wort im String steht.
    Die Anzahl der Worte eines Strings müsste auch recht leicht zu ermitteln sein. Einfach indem man die Werte oder Schlüssel des Array's zählt. In PHP heißt diese Funktion "array_count_values" in Delphi scheint die anders zu heißen, hab jedenfalls kein Vorkommen selbiger Funktion bei Delphi mit Google gesichtet.

    Gibts eigentlich irgendwo eine ordentliche Delphi-Befehlsreferenz im Netz?

  3. #3
    http://www.swissdelphicenter.ch/torr...de.php?id=1326
    Zum Thema StringTokenizer, explode usw.

    Die Zeilen eines Memo, RichEdit Controls bekommst du mit memo1.lines bzw. richedit1.lines.

    @Chocwise:
    In den gängigen Programmiersprachen wird die Anzahl der Werte im Array als Länge bezeichnet, dementsprechend heißen auch die Funktionen...
    Um in einem String zu suchen gibts einen Haufen Möglichkeiten (Boyer-Moore, Grober, Knuth-Morris-Platt z.B.) oder die Funktion pos in Delphi.

    Geändert von Master of Disaster (24.02.2004 um 17:58 Uhr)

  4. #4
    also eine explode funktion wie in PHP bietet delphi definitiv nicht .. da bleibt dir wohl nichts uebrig, als dir selber was zu basteln ...

    du koenntest z.B. jedes Zeichen des Strings auslesen und wenn es ein trenzeichen ... also leerzeichen, punkt, komma, etc ist, faengst ein neues Wort an, das du in nem extra string speicherst .. z.B. in einer Stringlist. Dann kannst du im Nachhinein die woerter nach deinem gesuchten wort ueberpruefen ..

    hier mal ein Beispiel

    Code:
    function SucheWort(Text,Wort:String):Boolean;
    var list:TStringList;
        temp:String;
        i:Integer;
    begin
     list:=TStringList.Create;
     temp:='';
     for i:=1 to length(Text) do
      if (Text[i]=' ') // hier alle gueltigen Trenzeichen mit Oder Verknuepfen
         AND (temp<>'') //Mehrmalige Trennzeichen als ein Trennzeichen sehen
         then begin
               list.Add(temp); //Vollstaendiges Wort der Liste hinzufuegen
               temp:=''; //Temporaerstring zuruecksetzen
              end 
         else temp:=temp+Text[i]; //sonst Zeichen an aktuelles Wort anhaengen
     result:=false; //Standardmaessig wort nicht gefunden
     for i:=0 to list.count-1 do 
       result:=result or (list.strings[i]=wort); //ist result einmal wahr, so bleibt es immer wahr
     list.free;
    end;
    Diese einfache Funktion gibt true zurueck, wenn Wort in Text enthalten ist, und false, wenn nicht. Natuerlich koennte man stattdessen auch den Index des Wortes oder die Position des Startzeichens in Text zurueckgeben.

    Gruss Ineluki

  5. #5
    Ich wollt, jetzt nach Luki's Beispielcode, bekanntgeben das ich Delphi abgeschworen habe. Die Syntax ist IMO übelst und gefällt mir absolut nicht.
    Mit sofortiger wirkung verschwindet "Delphi 6 - Enterprise Edition" von meinem System und die CD mit dem Backup verbuddel ich im Garten.
    Ich will hoffen das mir C++ mehr zusagt.

  6. #6
    C++ wird vermutlich noch abschreckender sein.
    Du musst dich einfach mal mit einem Syntax über ein paar Tage beschäftigen und er wird dir schon viel übersichtlicher erscheinen.

    Ich kann dir auf jeden Fall gleich sagen, dass du einen C++ Syntax für einen neu einsteiger komplett unverstädnlich sein wird.
    Überall arbeitest du mit netten () klammern, knappen Befehlen und Symbol Orientierten Operatoren.

    Allerdings wird dir einiges als PHP User bekannt vorkommen. (Vorteil für dich)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •