AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
18.09.21 - 22:06:12
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  Tipps und Tricks (Moderatoren: eknori, fritandr, ata)
| | |-+  InStrRev
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: InStrRev  (Gelesen 3835 mal)
0xse
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 507



« am: 10.08.05 - 16:18:48 »

verzweifelt gesucht, nun selbst geschrieben

start -> von hinten, ab 1, anzahl der zeichen
s -> der string in dem gesucht wird
m -> der string nach dem gesucht wird

bei fehlern wird pauschal eine 0 zurückgegeben. einen compare type gibt es nicht. kein parameter ist optional.

viel spass damit Smiley


Function instrrev(start As Long,s As String, m As String) As Long
   Dim pos As Long, lpos As Long, posmax As Long
   If len(s) = 0 Or Len(s) - Len(m) - start < 0 Or start < 1 Then Goto ende
   posmax = Len(s) - start + 1
   Do
      lpos = pos
      pos = Instr(pos + 1, s, m, 0)
      If pos = 0 Or (pos > posmax And lpos <= posmax) Then Goto ende
   Loop
ende:   
   instrrev = lpos
End Function
« Letzte Änderung: 11.08.05 - 09:08:29 von 0xse » Gespeichert
Thomas Schulte
@Notes Preisträger
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 4388


Ich glaub mich tritt ein Pferd


« Antworten #1 am: 10.08.05 - 16:30:52 »

Stimmt das fehlt nur habe ich bis jetzt nie eien Grund gefunden warum ich nicht StrRightBack benutzen kann
Gespeichert

Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach
0xse
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 507



« Antworten #2 am: 10.08.05 - 16:47:51 »

lass mir doch meine kreative langeweile Smiley
Gespeichert
koehlerbv
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 20460



« Antworten #3 am: 10.08.05 - 17:00:31 »

Datentyp Long ist nun wahrlich "auf Nummer sicher", wenn es um Strings in LS geht. Dafür gibt es kein ErrorHandling ... Und wenn da jemand "start = -80" hineinkippt ?
"Sprechende Variablenbezeichner" - Fehlanzeige.
Default-Werte - Fehlanzeige.
Standardkonformität - Fehlanzeige (LS meint mit der Position immer da betreffende Zeichen, also 1 für das erste Zeichen)
Was macht "lpos" da ? So schwer lesbar der Code auch ist, aber darauf kann man doch verzichten ...
...

viel spass damit Smiley

Haben wir gehabt.

Bernhard

PS: Nimm es mir nicht übel, aber sowas erscheint normalerweile unter "worst practices fpr coding".
Gespeichert
0xse
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 507



« Antworten #4 am: 11.08.05 - 08:33:20 »

Solche Trivialfunktionen selber schreiben zu müssen ist "worst practise". Aber sie war nunmal nicht da.

Aber selbst mit den Variablennamen, ist so ein kurzer Quellcode doch wohl zu verstehen...

Und Thomas Schulte... StrRightBack macht was ganz anderes als InStrRev...


> Datentyp Long ist nun wahrlich "auf Nummer sicher", wenn es um Strings in LS geht.
Die können immerhin beliebig groß sein. Und an den paar Byte soll es dann nicht scheitern.

> Dafür gibt es kein ErrorHandling ... Und wenn da jemand "start = -80" hineinkippt ?
"Sprechende Variablenbezeichner" - Fehlanzeige.
Wenn du mal guckst, bei Fehlern gibts immer eine 0 zurück. Und wenn du dir mal die InStr Funktion anschaust, die gibt bei Fehlern auch immer eine 0 zurück. (Unter bestimmten Umständen auch NULL oder Error.)


> Default-Werte - Fehlanzeige.
Das ist LS... das initialisiert Variablen von alleine. Strings sind leer, Zahlen sind 0.

> Standardkonformität - Fehlanzeige (LS meint mit der Position immer da betreffende Zeichen, also 1 für das erste Zeichen)
Ich zähle von hinten. Und jetzt sag nicht das du dich an jeden existierenden Standard hällst...

> Was macht "lpos" da ? So schwer lesbar der Code auch ist, aber darauf kann man doch verzichten ...
lpos: last position
pos: position
posmax: maximal position
start: begin, counted from right
s: search string
m: match string

sprechen meine variablen so wenig? ich finde nicht.


edit:
der text sollte nicht so böse sein wie er klingt Smiley
« Letzte Änderung: 12.08.05 - 10:48:14 von 0xse » Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: