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 38.854 mal aufgerufen.
Anzeige
![]() ![]() ![]() (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. |
vb@rchiv CD Vol.6 ![]() ![]() Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats TOP! Unser Nr. 1 ![]() Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
||||||||||||||||
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. |