VB Express String in Datei schreiben unterschiedl Zeichenanzahl
Hallo,
Suche hat leider nix gebracht.
Also ich schreibe ein Programm, in dem ich so erstmal zwei Var habe.
tmp_1 As String tmp_2 As String
tmp_1 enthält Daten, die ich verschlüsseln will.
tmp_2 enthält zufällige Zeichen 224 * Rnd() + 31 (Damit will ich keine Steuerzeichen drin haben)
Dann verschlüssele ich einfach, indem ich die Zeichenwerte addiere und das entstandene Zeichen in eine andere Variable schreibe.
Das geht auch.
Im Programm sind beide "noch" 32 Zeichen lang. (Per Length ermittelt)
Wenn ich diese dann per fso in eine Datei schreibe, dann passt das aber nicht mehr.
Dann ist der eine 46 der andere 58 Zeichen lang?????????????
Oder auch andere Werte.
Kann mir einer sagen was da nicht passt.
Ich krieg das dann nämlich nicht mehr entschlüsselt!
Ach ja, ich benutze ChrW() um das entstandene Zeichen zu ermitteln.
Freue mich auf Antworten!!!
florengray
Suche hat leider nix gebracht.
Also ich schreibe ein Programm, in dem ich so erstmal zwei Var habe.
tmp_1 As String tmp_2 As String
tmp_1 enthält Daten, die ich verschlüsseln will.
tmp_2 enthält zufällige Zeichen 224 * Rnd() + 31 (Damit will ich keine Steuerzeichen drin haben)
Dann verschlüssele ich einfach, indem ich die Zeichenwerte addiere und das entstandene Zeichen in eine andere Variable schreibe.
Das geht auch.
Im Programm sind beide "noch" 32 Zeichen lang. (Per Length ermittelt)
Wenn ich diese dann per fso in eine Datei schreibe, dann passt das aber nicht mehr.
Dann ist der eine 46 der andere 58 Zeichen lang?????????????
Oder auch andere Werte.
Kann mir einer sagen was da nicht passt.
Ich krieg das dann nämlich nicht mehr entschlüsselt!
Ach ja, ich benutze ChrW() um das entstandene Zeichen zu ermitteln.
Freue mich auf Antworten!!!
florengray
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 92415
Url: https://administrator.de/contentid/92415
Ausgedruckt am: 25.11.2024 um 08:11 Uhr
16 Kommentare
Neuester Kommentar
Hallo florengray!
Leichter nachvollziehbar wird's grundsätzlich, wenn Code nicht nur beschrieben, sondern auch gepostet wird ...
Versuch es einmal mit
Damit entstehen dann auf jeden Fall Zeichen mit einem Code >= 256, welche dann jeweils 2 Byte für die Speicherung benötigen.
Grüße
bastla
Leichter nachvollziehbar wird's grundsätzlich, wenn Code nicht nur beschrieben, sondern auch gepostet wird ...
Versuch es einmal mit
Int(256 * Rnd()) + 256
Grüße
bastla
Hallo florengray!
Ziel sollte es sein, einheitlich Zeichen mit einem Code >= 256 zu erzeugen. Dies kannst Du erreichen, indem Du entweder, wie oben vorgeschlagen, das ZufallsPW in einen entsprechenden Bereich bringst, oder jeweils beim Verschlüsseln in den Zeilen 39 und 42 zB zusätzlich 256 addierst (und beim Entschlüsseln natürlich wieder subtrahierst).
Grüße
bastla
In was für einem Format werden Dateien denn gelesen, wenn man ein fso benutzt? ASCII nehme ich an.
Das kannst Du als 4. Parameter (nach Dateiname, E/A-Modus und Erstellen) beim Öffnen angeben (True = Unicode, False bzw keine Angabe = ASCII).Ziel sollte es sein, einheitlich Zeichen mit einem Code >= 256 zu erzeugen. Dies kannst Du erreichen, indem Du entweder, wie oben vorgeschlagen, das ZufallsPW in einen entsprechenden Bereich bringst, oder jeweils beim Verschlüsseln in den Zeilen 39 und 42 zB zusätzlich 256 addierst (und beim Entschlüsseln natürlich wieder subtrahierst).
Grüße
bastla
Hallo Florengray!
Grundsätzlich sollte (allerdings ungetestet) mit den folgenden Codezeilen das Schreiben bzw Einlesen eines Textes über ein Array im Unicode-Format zu bewerkstelligen sein:
Grüße
bastla
Grundsätzlich sollte (allerdings ungetestet) mit den folgenden Codezeilen das Schreiben bzw Einlesen eines Textes über ein Array im Unicode-Format zu bewerkstelligen sein:
Dim fso ' FileSystemObject
fso = CreateObject("Scripting.FileSystemObject")
'Schreiben des Arrays Read_Line
fso.OpenTextFile(Filename, 2, True, True).Write Join(Read_Line, vbCrLF)
'Einlesen in das Array Read_Line
Read_Line = Split(fso.OpenTextFile(Filename, 1, True, True).ReadAll, vbCrLF)
bastla
Hallo florengray!
Die Verwendung des Arrays in meinem Beispiel ergab sich aus Deinem geposteten Einlesealgorithmus, in welchem Du ja ebenfalls ein (dynamisches) Array einsetzt - meine Zeile 8 ersetzt nur Deine Zeilen 5 bis 16 ...
... aber wenn es tatsächlich nur eine Zeile sein soll, ist natürlich "ReadLine/WriteLine" ausreichend.
Grüße
bastla
Die Verwendung des Arrays in meinem Beispiel ergab sich aus Deinem geposteten Einlesealgorithmus, in welchem Du ja ebenfalls ein (dynamisches) Array einsetzt - meine Zeile 8 ersetzt nur Deine Zeilen 5 bis 16 ...
... aber wenn es tatsächlich nur eine Zeile sein soll, ist natürlich "ReadLine/WriteLine" ausreichend.
Grüße
bastla
Hallo florengray!
Die gesuchten Parameter findest Du hier: OpenTextFile Method (bzw ausgehend von der FSO-Doku).
Grüße
bastla
Die gesuchten Parameter findest Du hier: OpenTextFile Method (bzw ausgehend von der FSO-Doku).
Grüße
bastla