FindLastString() »»» Letztes Vorkommen von Strings ermitteln

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Xaby hat geschrieben:Was haltet ihr von der Idee:

Den String umdrehen, den SuchString umdrehen.
Dann FindString()
Genau an sowas hatte ich gestern auch schonmal gedacht.
Aber PB bietet da leider keine FlipString() Funktion. :freak:

Wäre nicht übel wenn in der 4.10 mal ein paar neue Funktionen hinzukämen. :allright:

BTW:

FindMemory() wäre mal echt geil. :mrgreen:
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Was hälst von einem neuen Thread?
Neue Funktionen für PB 4.1.x ...

Mir fehlen zurzeit gerade ein paar JoyStickFunktionen.

:allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

kann das hier auch was?

http://www.purebasic.fr/english/viewtop ... 7751#37751

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Genau:

FindLeft()

FindRight()

:roll:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

Xaby hat geschrieben:Was hälst von einem neuen Thread?
Neue Funktionen für PB 4.1.x ...
Wäre sicher interessannt. Wäre gespannt was für vorschläge kämen. :)
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> Nun braucht man sich nur noch um die schnellste Methode zu kümmern, die den String umdreht.
Wurde schon erledigt: Einfach mal nach ReverseString suchen (evtl. auch im engl. Forum).

> FlipString
Röchel... ReverseString() klingt viiiiiel besser :mrgreen:


Theorethisch ist es am schnellsten, wenn man von hinten anfängt zu suchen, so wie meine letzte Prozedur. Warum?

Meine fängt nämlich gar nicht von hinten an, sondern von hinten-Len(StringToFind$)
Das bedeutet: Je länger StringToFind$ ist, desto schneller ist meine Prozedur. Und: Wenn StringToFind$ länger als String$ ist, wird sowieso von vornherein abgebrochen.

> Den String umdrehen, den SuchString umdrehen. Dann FindString()
Nicht gut, weil: dann muss man den String ja kopieren. Und die Kopie bidirektional notieren und durchsuchen. Das kostet doppelt Speicher. Man muss ja im Hinterkopf behalten, dass man nicht immer nur 100-Zeichen-Sätze durchsucht, sondern die Funktion soll auch bei KB Blöcken (wie z. B. HTML-Dateien) noch richtig funktionieren!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

AND51 hat geschrieben: Theorethisch ist es am schnellsten, wenn man von hinten anfängt zu suchen, so wie meine letzte Prozedur. Warum?

Meine fängt nämlich gar nicht von hinten an, sondern von hinten-Len(StringToFind$)
Das bedeutet: Je länger StringToFind$ ist, desto schneller ist meine Prozedur. Und: Wenn StringToFind$ länger als String$ ist, wird sowieso von vornherein abgebrochen.

> Den String umdrehen, den SuchString umdrehen. Dann FindString()
Nicht gut, weil: dann muss man den String ja kopieren. Und die Kopie bidirektional notieren und durchsuchen. Das kostet doppelt Speicher. Man muss ja im Hinterkopf behalten, dass man nicht immer nur 100-Zeichen-Sätze durchsucht, sondern die Funktion soll auch bei KB Blöcken (wie z. B. HTML-Dateien) noch richtig funktionieren!
Genau richtig, den String umzukehren wäre verkomplizieren. Und würde unnötig Rechenleistung verschlingen.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

AND51 hat geschrieben: > FlipString
Röchel... ReverseString() klingt viiiiiel besser :mrgreen:
FlipString() ist aber gängiger. Das habe ich schon zu AmigaZeiten benutzt
und wäre wohl auch die erste Syntax nach der man suchen würde.
(Zumindest bei den Älteren proggern) :wink:
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> FlipString() ist aber gängiger.
Neeee, gar nicht... Bäääh!
In Perl heißt es auch "Reverse"!

Außerdem erinnert mich dieses böse Flip an den MS IE, der kann ´Bilder spiegelverkehrt darstellen mit Hilfe von FlipH und FlipV. WIllst du mir das antun? Dass ich den Befehl zum umdrehen eines Strings nicht mehr ohne Schweißausbrüche benutzen kann? :lol:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

AND51 hat geschrieben:WIllst du mir das antun? Dass ich den Befehl zum umdrehen eines Strings nicht mehr ohne Schweißausbrüche benutzen kann? :lol:
Brauchst ja während dieser phase nicht hinzuschauen. :lol:
Antworten