Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: dirk_2909 am 15.10.02 - 13:21:09

Titel: String zerlegen????
Beitrag von: dirk_2909 am 15.10.02 - 13:21:09
@all

Hallo Leute!

Ich habe ein bearbeitbares Textfeld und Mehrfachwerte zugelassen.
Den Inhalt des Feldes schreibe ich in eine Variable (strInhalt).
Das Textfeld beinhaltet Kundennummern und zu jeder Kundennummer will ich jetzt die Kundennamen ermitteln.
Dazu muss ich aber jeden einzelnen Wert des Textfeldes ermitteln.
Wenn das Textfeld nur einen Wert hat, klappt alles super. Bei mehreren Werten klappt das natürlich nicht.

Wie kann ich den String in strInhalt mit LotusScript zerlegen(Seperator=";") oder
muss ich den Inhalt des Textfeldes in ein Array schreiben???? ???

Dirk
Titel: Re:String zerlegen????
Beitrag von: eknori am 15.10.02 - 13:36:25
Du kannst mit folgendem Code einen String in ein Array zerlegen

Function StringToArray( Byval stringList As String, delimiter As String ) As Variant
   
     ' Description:
     ' The StringToArray function converts a delimited string or list to an array.
   
     ' Declare the array
   Dim resultArray( )  As Variant
   
     ' Set initial count
   Dim elementCount As Integer
   elementCount = -1
   
     ' Build the array from the string
   While ( Instr( stringList, delimiter ) <> 0 )
      
      elementCount = elementCount + 1
      Redim Preserve resultArray( elementCount ) As Variant
      
      resultArray( elementCount ) = Trim$( Left$( stringList, Instr( stringList, delimiter ) - 1) )
      stringList = Right$( stringList, ( Len( stringList ) - Instr( stringList, delimiter) ) )
      
   Wend
   
     ' Get the remaining element from the list
   elementCount = elementCount + 1
   Redim Preserve resultArray( elementCount ) As Variant
   resultArray( elementCount ) = Trim$( stringList )
   
     ' Return the Array
   StringToArray = resultArray( )
   
End Function

eknori
Titel: Re:String zerlegen????
Beitrag von: eknori am 15.10.02 - 13:48:44
oder noch ein wenig kürzer mit

Function Split ( ImplodedStr$, StrDelimiter$) as variant
    Split = Evaluate(|@Explode("| & ImplodedStr & |";"| & StrDelimiter & |")|)
End function
Titel: Re:String zerlegen????
Beitrag von: dirk_2909 am 15.10.02 - 14:53:51
@eknori
Besten Dank! :D

Werde es mal probieren!
Titel: Re:String zerlegen????
Beitrag von: manuel am 16.10.02 - 08:46:30
Hallo

darf ich mal dazwischenpfuschen. Du hast gesagt bei deinem Feld sind Mehrfachwerte zugelassen. Du könntest eigentlich gleich den Feldinhalt in einen Array schreiben.

Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim inhalt As Variant

Set uidoc = ws.CurrentDocument
inhalt = uidoc.Document.GetItemValue("FELD")


Mit uidoc.Document wird auf das Backend zugegriffen. Die Methode GetItemValue gibt nicht wie FieldGetText einen String zurück, sondern den wirklichen Wert eines Feldes. Wenn es also ein Textfeld mit Mehrfachwerten ist, wird ein Stringarray zurückgegeben.

Zugreifen kannst du dann zB so:

For i = LBound(inhalt) To UBound(inhalt)

...

 .... inhalt(i) ...
...

Next


Schönen Gruß
Manuel
Titel: Re:String zerlegen????
Beitrag von: dirk_2909 am 16.10.02 - 15:39:14
@Manuell

Hast Recht. Habe zu kompliziert gedacht habe es jetzt so gelöst:

Set docO = source.Document
   Forall x In docO.zustKundenNr
      strKey = x
      Set doc = view.GetDocumentByKey(strKey)
      If doc Is Nothing Then
         Messagebox "Anzeige nicht möglich"
      Else
                ...........
                 ............
                End Forall


Hat mir sehr geholfen

Danke

Dirk