Domino 9 und frühere Versionen > Entwicklung

Trim Fulltrim, Leerzeichen werden nicht entfernt

(1/2) > >>

two7:
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)


--- Ende Code ---

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.

Driri:
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 ?

rar:
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)

--- Ende Code ---
y schaut dann so aus:

--- Code: ---y(0) = "11"
y(1) = "22"
--- Ende Code ---

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
--- Ende Code ---

HTH

Driri:
@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.

rar:
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

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln