Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: two7 am 25.06.07 - 20:09:45

Titel: Trim Fulltrim, Leerzeichen werden nicht entfernt
Beitrag von: two7 am 25.06.07 - 20:09:45
Hallo,

sitze hier vor einem wohl recht kleinen Problem, dass mich wahnsinnig macht.
In einem Dokument habe ich ein Textfeld, in dem Telefonnummern eingetragen werden. Warum Textfeld, na weil das Format der Nummer folgendermaßen aussieht: 0123 56 78 90

mittels einem button übergebe ich diesen wert an ein neues dokument. der code hierzu (ausschnitt)

Code
Dim newws As New NotesUIWorkspace
Dim newuidoc As NotesUIDocument
Dim newdoc As NotesDocument
	
Set newdoc = New NotesDocument(db)
Set newuidoc =newws.ComposeDocument	( "", "", "sms" )
Set newdoc = newuidoc.Document
	
newdoc.empfaenger = thisdoc.handy(0)


Die Nummer wird in dem neuen Dokument ebenfalls in ein Textfeld hinterlegt. Allerdings brauche ich für die weitere Verarbeitung nur die reine Nummer, also 0123567890. So da dachte ich einfach, dass ich da mit Trim oder Fulltrim ran geh, aber keine Chance. Da tut sich nichts. Danach habe ich mal im Internet und auch hier, nach ähnlichen Problemen gesucht ..... aber eben nichts gefunden, welches mir weitergeholfen hat.

Erst dachte ich, dass es wohl am Typ des Feldes liegt, dass die Leerzeichen nicht erkannt werden, hab dann mal den String mit Ubound umgewandelt ... hat aber auch nichts geholfen.

Weiterhin probierte ich es mit der Formelsprache, auch keinen Chance. Witzig ist aber, wenn ich z.b. mit Left bis zu einem StrLeftBack bis zu einem Leerzeichen laufe, erhalte ich einen korrekten Rückgabe wert.
Da ich aber nie weiss, wieviele Leerzeichen vorhanden sind .... ist hier der Ansatz mit StrLeftBack / Right ein bisschen zu kompliziert, da ich ja erst mal den String nach der Häufigkeit der Leerzeichen absuchen müsste ...

Vielleicht denk ich aber auch viel zu kompliziert und ihr habt ne schnelle Hilfe.

Danke.
Thx two7


EDIT:
hab mit Evaluate() die funktion @ReplaceSubstring in ls übernommen und es geht ... tja manchmal sieht man einfach die leichtesten ansätze nicht.

Titel: Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
Beitrag von: Driri am 26.06.07 - 08:36:54
Trim schneidet nur Leerzeichen am Anfang oder Ende des Strings weg (ebenso LTrim bzw. RTrim, da eben jeweils Anfang oder Ende). Für das Entfernen von Leerzeichen im String mußt Du Fulltrim benutzen.

Hast Du es wirklich mit Fulltrim ausprobiert ?
Titel: Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
Beitrag von: rar am 26.06.07 - 09:13:03
Trim macht aus "Hallo     ich        bin      ein     Text" -> "Hallo ich bin ein Text"
Es entfernt überflüssige Leerzeichen. Fultrim arbeitet da genau so.
Der Unterschied zu Fulltrim ist, dass Fulltrim aus Arrays leere Elemente entfernt...
z.B.:
Code
Dim x(4) As String
Dim y As Variant
x(0) = "11"
x(1) = ""
x(2) = "22"
x(3) = ""
y = Fulltrim(x)
y schaut dann so aus:
Code
y(0) = "11"
y(1) = "22"

Für dein Beispiel wäre es angebracht mit @ReplaceSubstring die " " durch "" zu ersetzen. Oder mit einer ähnlichen Funktion...
Code
Function ReplaceSubstring(inputStr As String, fromStr As String, toStr As String) As String
     Dim newStr As String
     Dim position As Integer
     newStr = inputStr
     While Instr(newStr, fromStr) > 0
          position = Instr(newStr, fromStr)
          newStr = Left$(newStr, position - 1) + toStr + Right$(newStr, Len(newStr) - (position + Len(fromStr) - 1))
     Wend
     ReplaceSubstring = newStr
End Function

HTH
Titel: Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
Beitrag von: Driri am 26.06.07 - 09:27:39
@Rar :

Das ist nicht korrekt, wobei auch ich mich vertan habe.  ;)

Trim entfernt nur Leerzeichen am Anfang und am Ende eines Strings.
Fulltrim entfernt darüber hinaus noch mehrfache Leerzeichen und dies auch in Arrays.

D.h. mit den Trim-Funktionen kommt man hier wirklich nicht weiter.
Titel: Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
Beitrag von: rar am 26.06.07 - 09:47:02
Das kommt davon, wenn man es nicht austestet, bevor man was schreibt. Ich habe die Funktionalität von Trim mit der von @Trim verwechselt.  :-[

Aber 2 mal die halbe Wahrheit ist einmal die ganze.  ;D

lG
-daniel
Titel: Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
Beitrag von: Driri am 26.06.07 - 10:17:13
Ehrlich gesagt, ich habs eben auch lieber noch mal ausprobiert  ;)
Titel: Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
Beitrag von: two7 am 26.06.07 - 10:29:19
Hallo zusammen,

vielen Dank nochmal für die Infos zu Trim und Fulltrim.
Ich hab nun noch testhalber die ReplaceSubstring funktion probiert und es funktioniert mit dieser problemlos.

... und schon wieder was dazu gelernt.

thx. two7