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?
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.
--
post tenebras lux, post fenestras tux
Geändert von Master of Disaster (24.02.2004 um 16:58 Uhr)
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
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.
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.
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)