Domino 9 und frühere Versionen > Entwicklung
Trim Fulltrim, Leerzeichen werden nicht entfernt
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