Benutzer mit den meisten Antworten
Nichtdruckbare Zeichen Per SQL Befehl aus String entfernen

Frage
-
Hallo Forum,
ich habe hier eine Anwendung die kommt nicht mit Nichtdruckbaren Zeichen ala Zeilenumbruch Tab usw zurecht.
kann ich irgendwie per SQL Statement bei der abfrage dne String so manipulieren das alle nicht druckbaren zeichen mit einem leerzeichen ersetzt werden?
danke und TIA
Michael
Antworten
-
Hallo Michael,
ich habe hier eine Anwendung die kommt nicht mit Nichtdruckbaren Zeichen ala Zeilenumbruch Tab usw zurecht.
Zum anderen sind Zeilenumbruch, Tab, ... nicht unbedingt "nichtdruckbare" Zeichen. Es wird zwar für diese Zeichen nichts schwarzes (oder buntes^^) aufs Papier gebracht, für den Druck selbst sind die aber wichtig. Es gibt andere Steuerzeichen, die bestimmte Befehle im Drucker auslösen, die stehen aber im Normalfall nicht in einem Textfeld in einer Datenbank.
kann ich irgendwie per SQL Statement bei der abfrage dne String so manipulieren das alle nicht druckbaren zeichen mit einem leerzeichen ersetzt werden?
Mit SQL direkt IMHO nicht. Man könnte per CLR Methode und Regex alles filtern, was nicht gewünscht wird. Aber dafür müsstest Du eine .NET Assembly im SQL Server hinterlegen oder alternativ eine VBScript Funktion aufrufen können.
Einzig der manuelle Weg (jedes einzelne Zeichen des Strings nehmen und dann schauen, ob der Charcode in den gewünschten Bereichen [die aber sehr vielfältig sein können] liegt und falls nicht, durch ein Leerzeichen ersetzen) wäre denkbar. Aber das willst Du nicht, da bin ich mir ganz sicher :)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Als Antwort markiert Michael Brockhoff Donnerstag, 28. April 2011 19:42
Alle Antworten
-
hi,
du suchst wohl nach REPLACE():
http://msdn.microsoft.com/de-de/library/ms186862(v=sql.90).aspx
Microsoft MVP Office Access
https://mvp.support.microsoft.com/profile/Stefan.Hoffmann -
hi,
Nö. Macht ja auch keinen Sinn, da es ja immer von deiner speziellen Anwendung und gegebenenfalls vom Drucker abhängt, welche Zeichen "druckbar" sind oder nicht.
Microsoft MVP Office Access
https://mvp.support.microsoft.com/profile/Stefan.Hoffmann -
Hallo Michael,
ich habe hier eine Anwendung die kommt nicht mit Nichtdruckbaren Zeichen ala Zeilenumbruch Tab usw zurecht.
Zum anderen sind Zeilenumbruch, Tab, ... nicht unbedingt "nichtdruckbare" Zeichen. Es wird zwar für diese Zeichen nichts schwarzes (oder buntes^^) aufs Papier gebracht, für den Druck selbst sind die aber wichtig. Es gibt andere Steuerzeichen, die bestimmte Befehle im Drucker auslösen, die stehen aber im Normalfall nicht in einem Textfeld in einer Datenbank.
kann ich irgendwie per SQL Statement bei der abfrage dne String so manipulieren das alle nicht druckbaren zeichen mit einem leerzeichen ersetzt werden?
Mit SQL direkt IMHO nicht. Man könnte per CLR Methode und Regex alles filtern, was nicht gewünscht wird. Aber dafür müsstest Du eine .NET Assembly im SQL Server hinterlegen oder alternativ eine VBScript Funktion aufrufen können.
Einzig der manuelle Weg (jedes einzelne Zeichen des Strings nehmen und dann schauen, ob der Charcode in den gewünschten Bereichen [die aber sehr vielfältig sein können] liegt und falls nicht, durch ein Leerzeichen ersetzen) wäre denkbar. Aber das willst Du nicht, da bin ich mir ganz sicher :)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Als Antwort markiert Michael Brockhoff Donnerstag, 28. April 2011 19:42
-
Naja auf die Anwendung hab ich keine Einfluss (source liegt nicht vor), die validiert halt den String den ich ihr aus einer Datenbank gegeben habe,
und scheinbar ist in dieser validierung so etwas wie "IsChar".
Damit das halt nicht in der Anwendung zu Problemen führt wollt ich den String direkt schon aufbereitet aus der Datenbank liefern.
Aber der tipp per RegEx und VBScript werde ich aufgreifen der scheint am praktikabelsten sein.
Eine Riesige Replace verkettung im SQL Satement ist mir tatsächlich zu umständlich...
Gruß
Michael
-
hi,
Verkettung ist nicht notwendig. Siehe
Microsoft MVP Office Access
https://mvp.support.microsoft.com/profile/Stefan.Hoffmann