Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Chr liefert Müll (https://www.delphipraxis.net/113183-chr-liefert-muell.html)

Nuclear-Ping 4. Mai 2008 21:34

Re: Chr liefert Müll
 
1.) Kannst du nicht garantieren, dass kein #0 drin ist. Oder doch?
2.) Ist das ja auch korrekt, da Zeichen von #0-#32 Steuerzeichen sind. -> http://www.danshort.com/ASCIImap/

Muetze1 4. Mai 2008 21:35

Re: Chr liefert Müll
 
Da du es hier selber umwandelst und Probleme mit den Ergebnissen hast, werfe ich nochmal die beiden von der VCL angebotenen Funktionen rein: Delphi-Referenz durchsuchenHexToBin() und Delphi-Referenz durchsuchenBinToHex().

marabu 4. Mai 2008 21:39

Re: Chr liefert Müll
 
Zitat:

Zitat von Nuclear-Ping
Bei der Funktion da oben, wenn er damit einen String "decodieren" will, der eigentlich ein binärer Datenstrom ist (und so klang's mir), wird er mit String als Rückgabewert imho nicht glücklich.

Glück ist relativ - es wird unmittelbar kein Fehler auftreten. Wenn es später irgendwann schief läuft, dann aus den von mir schon beschriebenen Gründen.

Ein AnsiString kann alles aufnehmen, da er eine Längeninformation mit sich herumträgt. Das aus Kompatabilitätsgründen zu C-Strings dahinter stehende NUL-Zeichen bleibt davon unberührt. Man muss halt wissen, was man tut.

Gute Nacht

ddcool 4. Mai 2008 21:46

Re: Chr liefert Müll
 
Hi,

HexToBin habe ich ebenfalls versucht. Funktioniert alles nichts. Ich verzweifel hier noch :wall:
Problem ist, dass eine Verschlüsselung halt alle ASCII-Zeichen (incl. Steuerzeichen) benutzt.

marabu 4. Mai 2008 22:05

Re: Chr liefert Müll
 
Zitat:

Zitat von ddcool
Ja nur genau das ist eben nicht der Fall,
ich übergebe ein HexString der eine gerade länge hat und zwar: C8DCC34404C32C2C606769BE4F4201
Bekomme aber bei 04 und 01 anstatt eines Zeichens nur ein #4 und #1 in den String geschrieben (so zeigt es mir der Debugger).

Ist doch genau richtig.

Teste mal deinen eigenen Code, indem du dir noch die Umkehrfunktion schreibst:

Delphi-Quellcode:
var
  s: string;
begin
  s := 'C8DCC34404C32C2C606769BE4F4201';
  if StrToHex(HexToStr(s)) = s
    then ShowMessage('eureka')
    else ShowMessage('rats');
end;

Muetze1 4. Mai 2008 23:42

Re: Chr liefert Müll
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich habe nun mal zur Veranschaulichung und aus ein wenig Langweile ein kleines Kommandozeilentool geschrieben, welches eine übergebene Datei als Hexdump in eine andere Textdatei wandelt und zurück.

ddcool 5. Mai 2008 10:46

Re: Chr liefert Müll
 
Okay ich habe jetzt meinen Fehler gefunden. Ich verschlüssele eine Datei per Blowfish und nehme dann die Hexwerte der Datei um diese wiederum in einen String zu wandeln und per DecryptStr zu Entschlüsseln. Blöde sache weil EncryptStream und EncryptStr arbeiten ganz unterschiedlich. EncryptStr nimmt nämlich nur darstellbare Zeichen, währen EncryptStream alles nimmt. :wall:

Danke trotzdem für die Aufklärung und Hilfe

Grüße ddcool


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz