Autor Thema: String zerlegen????  (Gelesen 1638 mal)

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
String zerlegen????
« 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
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:String zerlegen????
« Antwort #1 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
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re:String zerlegen????
« Antwort #2 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
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re:String zerlegen????
« Antwort #3 am: 15.10.02 - 14:53:51 »
@eknori
Besten Dank! :D

Werde es mal probieren!
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline manuel

  • Senior Mitglied
  • ****
  • Beiträge: 377
  • Geschlecht: Männlich
  • el pueblo unido
Re:String zerlegen????
« Antwort #4 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
V 5.0.2c | Windows 2000

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re:String zerlegen????
« Antwort #5 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
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz