vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Dateisystem · Dateien lesen/schreiben   |   VB-Versionen: VB615.02.01
Ersetzen von nicht druckbaren Zeichen

Eine Universalroutine, um nicht druckbare Zeichen (z.B. CarriageReturn, Tabulator, ...) in einem Textstring zu ersetzen.

Autor:   Matthias KozlowskiBewertung:     [ Jetzt bewerten ]Views:  37.809 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Ist es Ihnen nicht auch schon einmal passiert, daß beim Einlesen gespeicherter Zeichenketten aus einer Textdatei, diese entweder nicht korrekt oder nicht vollständig eingelesen wurde? Wenn ja, lag das vielleicht daran, daß die Zeichenkette nicht druckbare Zeichen enthielt, z.B. Zeilenumbrüche, Tabulatoren oder Anführungsstriche. Die VB-Funktionen Input# oder Line Input# verwenden diese Zeichen nämlich selbst als Steuerzeichen. Deswegen sollten solche Zeichen vor dem Speichern in eine Datei ersetzt werden.

Unser nachfolgender Tipp zeigt Ihnen, wie's geht: Die Funktion ReplaceForSaving ersetzt alle vorhandenen Steuerzeichen (nicht druckbare Zeichen) durch bestimmte Zeichenkombinationen. Die Umkehrfunktion hierzu (das Entschlüsseln), welche nach dem Einlesen die ursprünglichen Zeichen wieder einsetzt heißt ReplaceForShowing.

Public Function ReplaceForSaving(psText As String) As String
  ' Ersetzt in der übergebenen Zeichenkette nicht
  ' druckbare Zeichen, wie Zeilenumbruch oder Tabulator
  ' durch druckbare Zeichen wie /n
  ' Umkehrfunktion ReplaceForShowing
  ' 
  ' Ersetzungstabelle:
  ' Wagenrücklauf (vbCr)      ->  /c
  ' Zeilenumbruch (vbLf)      ->  /l
  ' Tabulator (vbTab)         ->  /t
  ' Anführungszeichen (")     ->  /q
 
  Dim sText As String
  sText = psText
 
  ' Zuerst vorhandene Slash-Zeichen durch
  ' /s ersetzen
  sText = Replace(sText, "/", "/s")
 
  ' dann eigentliche Ersetzung
  sText = Replace(sText, vbCr, "/c")
  sText = Replace(sText, vbLf, "/l")
  sText = Replace(sText, vbTab, "/t")
  sText = Replace(sText, Chr(34), "/q")
 
  ReplaceForSaving = sText
End Function
 
Public Function ReplaceForShowing(psText As String) As String
  ' Ersetzt in der übergebenen Zeichenkette nicht
  ' druckbare Zeichen, wie Zeilenumbruch und Tabulator
  ' durch druckbare Zeichen wie /n
  ' Umkehrfunktion ReplaceForSaving
  ' 
  ' Ersetzungstabelle:     
  ' /c    -> Wagenrücklauf (vbCr)
  ' /l    -> Zeilenumbruch (vbLf)
  ' /t    -> Tabulator (vbTab)
  ' /q    -> Anführungszeichen (")
 
  Dim sText As String
  sText = psText
 
  sText = Replace(sText, "/c", vbCr)
  sText = Replace(sText, "/l", vbLf)
  sText = Replace(sText, "/t", vbTab)
  sText = Replace(sText, "/q", Chr(34))
 
  ' Jetzt wieder ursprünglich vorhandene Slashes einsetzen
  sText = Replace(sText, "/s", "/")
 
  ReplaceForShowing = sText
End Function

Beispiel:

sText = "a" & vbCr & "b" & vbTab & "/c"
ReplaceForSaving(sText)
' Ausgabe: a/cb/t/sc
 
sText = "a/cb/t/sc"
ReplaceForShowing(sText)
' Ausgabe: a b   /c  -> a<Wagenrücklauf>b<Tabulator>/c

Dieser Tipp wurde bereits 37.809 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel