Autor Thema: [erledigt] Suchen von rechts nach erste "+" Zeichen -LS-  (Gelesen 4275 mal)

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Hallo,

wie kann ich mit LS in einem Textfeld von recht nach erste "+" suchen und nur diese ersetzen wie z.b:

Original:
+Blintext+Blintext+BlintextBlintext+Blintext

ersetzt:
+Blintext+Blintext+BlintextBlintext-Blintext

Gruss

Maldus
« Letzte Änderung: 04.06.09 - 12:45:44 von Ozan »

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #1 am: 03.06.09 - 10:41:26 »
Die Forumssuche ist gut - bringt glatt:

http://atnotes.de/index.php?board=11%3Baction=display%3Bthreadid=12267

Viel Erfolg.

CU,
Axel

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #2 am: 03.06.09 - 10:51:20 »
Hallo,

Ich wuerde mir auch einmal

StrRightBack, StrRight, StrLeftBack und StrLeft

zu diesem Zwecke ansehen.


Andreas

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #3 am: 04.06.09 - 10:41:42 »
Jetzt habe ich mir eine andere Lösung erarbeitet, ich zerlege diese TextFeld mir folgendes:

 Dim stringList As String, delimiter As String
 Dim resultArray( )  As Variant
 Dim StringToArray As Variant
 delimiter="+"
 stringList=xmldoc.titel(0)
 Dim elementCount As Integer
 elementCount = -1
  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
 elementCount = elementCount + 1
 Redim Preserve resultArray( elementCount ) As Variant
 resultArray( elementCount ) = Trim$( stringList )
 StringToArray = resultArray( )


klappt auch hervorragend. Jetzt möchte ich diese Array in mehrere(Feldname+ArrayCount) Felder abspeichern:
 
For k = Lbound( resultArray ) To Ubound( resultArray )
  xmldoc.titel(k)=resultArray(k)
 Next

hier hängt der mit folgende Fehlermeldung:

"Attemt to access uninitialized dynamic array"

ich glaube dass Lbound und Ubound für diese Array nicht funktioniert.
Hat jemand eine Idee?

Gruss

Ozan

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #4 am: 04.06.09 - 10:50:28 »
Hallo,

Warum fuer das Zerlegen in einen Array nicht die Split-Funktion verwenden?

Was willst Du mit dieser Zeile denn erreichen.
Code
Redim Preserve resultArray( elementCount ) As Variant

Code
Dim resultArray As Variant
Dim Count as Integer

resultArray = Split(xmldoc.Title(0), "+")

If Not IsArray(resultArray) Then Exist Sub   'kein Array

For Count = LBound(resultArray) To UBound(resultArray)
   ' Dein Code
Next


Und Das Feld "Titel" im xmldoc ist hoffentlich ein Feld fuer Mehrfachwerte.

Andreas
« Letzte Änderung: 04.06.09 - 10:55:50 von ascabg »

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #5 am: 04.06.09 - 10:55:17 »
Am ende kann ich durch die elementCount das letzte Feld ermitteln und entsprechend umsetzten, ich glaube dass das zerlegen auch für spätere Verarbeitung der Daten eine wichtige rolle spielt, z.b sortieren, bzw katalogisieren etc.

BigWim

  • Gast
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #6 am: 04.06.09 - 10:56:41 »
Zitat
Jetzt möchte ich diese Array in mehrere(Feldname+ArrayCount) Felder abspeichern:
 
For k = Lbound( resultArray ) To Ubound( resultArray )
  xmldoc.titel(k)=resultArray(k)
 Next

und mit "xmldoc.titel(k)" legst Du aber nicht mehrere "Felder" an, sondern bestenfalls (im Erfolgsfall) ein "Feld" mit mehreren Einträgen (Textliste).

Wenn Du die Werte in einzelne "Felder" haben möchtest, versuche entweder a) NotesItem oder b) ReplaceItemValue aus NotesDocument

Markus

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #7 am: 04.06.09 - 10:59:12 »
Hallo,

Ich zielte eigentlich darauf hin ab, dass bei einem

Zitat
Redim Preserve ... kein Datentyp mehr angegeben wird.

Also

Redim Preserve resultArray(elementCount)

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #8 am: 04.06.09 - 11:21:01 »
Feld "Titel" im xmldoc ist nicht ein Feld fuer Mehrfachwerte. Der beinhaltet

+blidtext+blintext+blidtext+blintext+blidtext+blintext

Mit der Array Zerlegung kann ich das schön aufteilen, bis dahin alles paletti, nur das dann an ensprechend mehrere Felder zu speichern ist mein problem.

Wie kann ich jetzt resultArray loopen und die Werte von [1],[2],...,[n] in mehrere Felder verteilen?

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #9 am: 04.06.09 - 11:43:21 »
Versuch mal das

Code
For k = LBound(resultArray) To UBound(resultArray)

  Call xmldoc.ReplaceItemValue("Titel" & CStr(k), resultArray(k)

Next

Andreas

BigWim

  • Gast
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #10 am: 04.06.09 - 11:46:25 »
Wenn Du alle Einträge im Array prüfen mußt, kannst Du Dir auch mal ForAll ansehen.

Markus

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #11 am: 04.06.09 - 11:53:59 »
@Andreas

Fehler bei :

For k = LBound(resultArray) To UBound(resultArray)

Meldung:

"Attemt to access uninitialized dynamic array"

muss der vielleicht anders deklariert werden?

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #12 am: 04.06.09 - 12:14:37 »
Versuch doch einfach mal meinen vorherigen Code mit dem Split-Befehl und dann die For-Schleife mit dem ReplaceItemValue.

Andreas

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Re: Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #13 am: 04.06.09 - 12:45:22 »
Hervorragend, funktioniert jetzt, Danke.

Gruss

Ozan

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: [erledigt] Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #14 am: 04.06.09 - 12:47:28 »
Mit was funktioniert es denn jetzt?


Andreas

Offline Ozan

  • Senior Mitglied
  • ****
  • Beiträge: 277
Re: [erledigt] Suchen von rechts nach erste "+" Zeichen -LS-
« Antwort #15 am: 04.06.09 - 12:53:01 »
hier:

Dim stringList As String, delimiter As String
Dim resultArray( )  As Variant
Dim StringToArray As Variant
delimiter="+"
stringList=xmldoc.titel(0)
Dim elementCount As Integer
elementCount = -1
 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
elementCount = elementCount + 1
Redim Preserve resultArray( elementCount ) As Variant
resultArray( elementCount ) = Trim$( stringList )
StringToArray = resultArray( )
         
For k = 1 To elementcount
 Call xmldoc.ReplaceItemValue("Titel" & Cstr(k), StringToArray(k))
Next

« Letzte Änderung: 04.06.09 - 12:54:35 von Ozan »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz