Autor Thema: Trim Fulltrim, Leerzeichen werden nicht entfernt  (Gelesen 3158 mal)

Offline two7

  • Aktives Mitglied
  • ***
  • Beiträge: 116
Trim Fulltrim, Leerzeichen werden nicht entfernt
« 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.

« Letzte Änderung: 25.06.07 - 21:15:37 von two7 »

Driri

  • Gast
Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
« Antwort #1 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 ?

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
« Antwort #2 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
« Letzte Änderung: 26.06.07 - 09:41:32 von rar »
†090620141300

Driri

  • Gast
Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
« Antwort #3 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.

Offline rar

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 856
  • Geschlecht: Männlich
  • Des passt scho
    • click
Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
« Antwort #4 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
†090620141300

Driri

  • Gast
Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
« Antwort #5 am: 26.06.07 - 10:17:13 »
Ehrlich gesagt, ich habs eben auch lieber noch mal ausprobiert  ;)

Offline two7

  • Aktives Mitglied
  • ***
  • Beiträge: 116
Re: Trim Fulltrim, Leerzeichen werden nicht entfernt
« Antwort #6 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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz