Sonderzeichen und Leerzeichen

Hallo User,

ich habe ein Problem :smile:))) Ich möchte zwei Tabellen miteinander vergleichen. Ich möchte wissen, welche Kunden von mir bei den Anderen Umsätze machen. Ich habe Name,Firma, Wohnort, Straße usw in einem String zusammengefasst bzw. verkettet.
Nun möchte ich, dass er alle Sonderzeichen (z.B. „“ , . !) und Leerzeichen weg lässt. Mit der Funktion TRIM(string) lässt er die Leerzeichen leider nicht weg. Gibt es eine andere Variante oder Funktion, welches dies erfüllt.

Danke im Voraus !!!

Hi!
Nimm doch :
public function dings (strBums)
dim strNeu as String
strNeu = strBums
strNeu = Replace(1, strNeu, " ")
strNeu = Replace(1, strNeu, „■“)
’ usw. usw
dings = strNeu
end function

Gruß.Timo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Bediene dich einfach der Funktion Replace.
Du ersetzt einfach in der zeichenfolge x das Sonderzeichen y durch „“.
Die Leerzeichen am ende und Anfang bekommst du mit Trim weg.

Solltest du nun null Folgen am ende haben, so bekommst du sie mit der Funktion StripNull weg.

Diese schreibe dir selber fix, folgendermassen

Private Function StripNull(ByVal strText As String) As String 
On Error resume next
 If InStr(strText, Chr$(0)) \> 0 Then strText = Left$(strText, InStr(strText, Chr$(0)) - 1)
 StripNull = RTrim$(strText)
End Function 

Ein kleines Beispiel.
Der text der überprüft werden soll istx, das sonderzeichen ist y

x$=Trim(Replace(stripnull(x),y,""))

MFG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

'entfernen von selbsdefinierten Sonderzeichen in einem String
Function fnk_entf_Sonderzeichen(Name As String) As String
'Variablen - Deklarationen
Dim Sonderzeichen(0 To 8) 'deklariert ein array mit 9 Feldern
'enthält die später definierten Sonderzeichen
Dim n As Integer 'zählvariable für die For-Next Schleife
'Variablen - Wertezuweisung
Sonderzeichen(0) = „“
Sonderzeichen(1) = „/“
Sonderzeichen(2) = „:“
Sonderzeichen(3) = „*“
Sonderzeichen(4) = „?“
Sonderzeichen(4) = „“"" 'übergiebt den Wert "
Sonderzeichen(6) = „“
Sonderzeichen(8) = „|“
For n = 0 To 8
Do
'überprüfen ob das aktuelle Sonderzeichen enthalten ist
If InStr(Name, Sonderzeichen(i)) = 0 Then 'Nein
Exit Do 'DO-LOOP Schleife verlassen
Else 'Ja
'sonderzeichen entfernen
Name = Mid(Name, 1, InStr(Name, Sonderzeichen(i)) - 1) _
& Mid(Name, InStr(Name, Sonderzeichen(i)) + 1, Len(Name))
End If
Loop
Next n
entf_Sonderzeichen = Name
End Function

Hallo Inne,

warum mit kanonen auf spatzen schiessen?
Replace erledigt das auf einen Ritt.
Ist schneller und weniger schreibarbeit :smile:

MFG Alex