Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: MUslar am 05.08.03 - 16:44:22
-
Moin,
ich habe das Problem, einen String eingelsen zu haben der in etwas wie folgt aussieht:
<balabalabla name="dieser_text_ist_belibieg" attribut="testetxt">
Ich muss den String "dieser_text_ist_beliebig" einlesen, kämpfe aber dabei stark mit dem LotusScript. Kann mit jemand einen Tipp geben, mit dem ich genau an diesen String komme. Ich würd ja nach den " suchen, aber das gibt es zuviele von. :)
Kann jemand helfen?
mfg
Mathias
-
... schau mal in der Hilfe unter "Instr" - das gibt die Position eines Such-Strings in einem String zurück. Ist das Ergebnis größer null, dann hast du den String enthalten...
ata
-
Hi,
das geht so:
gesuchterString = strLeft(strRight(deinString,"name= ")," attribut=")
Andreas
-
... oh - ich sehe ich hab das wieder mal nicht ganz richtig gelesen - aber die Lösung von Glombi trifft es...
;) ata
-
Hi ata,
"drenaiondrufflo s" - was issn das?
Andreas
-
Danke für die Schnelle Hilfe, jetzt geht es endlich...meine erste Idee wäre gewesen, zeichen für Zeichen die Kette durchzugehen und die Zeichen zwischen den ersten beiden " zu sammeln und zurückzuliefren :)) Eure Lösung ist aber einfach schneller :) ;D
dankend
Mathias
-
@glombi:
schöne Lösung
eknori
-
eknori, Danke für die Blumen :D
Nach 11 Jahren @Formelsprache mit @Left und @Right geht einem das schnell von der Hand- zumal es in Script seit R5 ENDLICH strLeft etc. gibt. Früher musste man entweder Evaluate( |@Left....|) oder schlimmer mit Instr(...) die Position bestimmen und dann mit Left$... abschneiden. Aber das kennst Du ja...
Andreas
-
hmm, vermutlich hätte ich mir die Sache mal wieder verkompliziert ;D und erst einmal eine Funktion geschrieben, die den Extrakt macht. Hier bietet sich ja ein Äquivalent zu @Word an:
Sub Click(Source As Button)
deinString$ = |<balabalabla name="dieser_text_ist_belibieg" attribut="testetxt">|
Msgbox atWord ( deinString$ , Chr(34) , 2)
End Sub
Function atWord ( sourceString As String, separator As String, number As Integer ) As String
searchString$=SourceString & separator
For i% = 1 To number
pos%=Instr(searchString$, separator)
If pos%=0 Then Exit For
substring$=Left(searchString$,pos%-1)
searchString$=Mid(searchString$, pos%+1)
Next
If pos% > 0 Then
atWord=substring$
Else
atWord=""
End If
End Function
-
eknori,
You are a code machine ;D ;D ;D
Andreas
-
@Glombi
"drenaiondrufflo s" = "hinein und darauf los" - soll heißen sich mit Elan an die Arbeit zu machen - ohne wenn und aber...
... das allerdings das letzte "s" absteht konnte ich bis heute nicht nachvollziehen - ich hatte es mehrfach korrekt eingegeben - es wird aber immer mit abstehendem s dargestellt... ;D
ata
-
ich würde ernsthaft drüber nachdenken, sich mal einen halben Tag hinzusetzen und anzufangen eine String-Handling-Script-Library für solche wiederkehrenden Aufgaben aufzubauen.
Ich benutze da etwas, was stark von etwas anderen inspieriert ist, das mit der Zeit in der alten Firma gewachsen ist. Kann das deshalb nicht posten.
Vielleicht wäre das eine Idee für ein Projekt. Eine runde Script-Library aufbauen, die die Schwächen von Lotus-Script ausgleicht. Mit String Handling anfangen und dann direkt mit Date-Handling weitermachen, etc. pp.
-
Hi Axel,
ich würde gerne so was für Java, und JavaScript haben (in R6 kann man dann ja auch Libraries daraus machen). Denn dort breche ich mir meistens einen ab, wenn ich derartiges machen will. Liegt aber wohl daran, dass ich das nur selten mache und jedesmal wieder die Syntax etc. checken muss. Das kannst Du wahrscheinlich im Schlaf.
Andreas