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
Anzeige
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. |
sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Access-Tools Vol.1 Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |