![]() |
Wo kommt die $33 her?
Hallo zusammen,
ein aktuelles Datum soll (ohne den Punkt dazwischen) nach HEX konvertiert und in eine Textdatei geschrieben werden. Im ersten Schritt wird das aktuelle Datum in einen String transferiert mit
Delphi-Quellcode:
Im zweiten Schritt erfolgt die Umwandlung nach Hex via
var DTStr: string;
begin DateTimeToString(DTStr, 'ddmmyyyyhhmmss', Now)
Delphi-Quellcode:
und im letzten Schritt wird DTStr in eine Textdatei geschrieben
DTStr:= StrToHex(DTStr);
Delphi-Quellcode:
Ausgehend vom heutigen Datum (14.01.2009) sehe ich in der Datei, wenn ich sie mit einem Texteditor öffne (Windows Editor, TextPad, MED) die Zeile:
{$I-}
System.AssignFile(FOut, FILENAME); System.Rewrite(FOut); {$I+} if System.IOResult = 0 then begin System.Writeln(FOut, DTStr); System.CloseFile(FOut); end; 3134303132303039 Besser lesbar: 31 34 30 31 32 30 30 39 Passt. Schaue ich mir hingegen die Inhalt der Textdatei mit einem Hex-Editor (HexEdit) an, sehe ich dort: 33313334333033313332333033303339 Besser lesbar: 33 31 33 34 33 30 33 31 33 32 33 30 33 30 33 39 Fragen: 1) Woher kommt immer diese 33? 2) Kann man das "Dazwischenschreiben" der 33 unterbinden? Dank vorab und Gruß, Carsten |
Re: Wo kommt die $33 her?
Hallo,
das sieht mir erstmal so aus, als würde das Unicode geschrieben. Jedes Zeichen belegt vier Byte? |
Re: Wo kommt die $33 her?
Warum konvertierst du das Datum in einen String, um es zu speichern?
|
Re: Wo kommt die $33 her?
Zitat:
ganz einfach: ASCII-Code für "3" ist hex 33 (für "4" hex 34 usw.). Also belegt eine "3" im Text in der Datei ein Byte mit hex 33 (in Delphi $33). Ist schon seit 50 Jahren so und hat mit Unicode nix zu tun. Also:
Delphi-Quellcode:
Wenn du Dateien hex lesen willst, brauchst du eine ASCII-Tabelle, aber die meisten Hex-Editoren zeigen alternativ ASCII-Text an.
Besser lesbar:
ASCII hex 33 31 33 34 33 30 33 31 33 32 33 30 33 30 33 39 Text 3 1 3 4 3 0 3 1 3 2 3 0 3 0 3 9 Gruss Reinhard Edit: Scheissfont - geändert in Code zur Tabellierung |
Re: Wo kommt die $33 her?
wenn du strtohex verwendest werden die binär information
31 34 30 31 32 30 30 39 ^- hexcodes vom string: 14012009 in Zahlen um gewandelt. was du in deinen hexeditor siehts ist genau die ascii code welche das oben ergeben. 33 31 33 34 33 30 33 31 33 32 33 30 33 30 33 39 ist in string Darstellung: 3 1 3 4 3 0 3 1 3 2 3 0 3 0 3 9 also alles so wie es sein sollte bzw wie du es programmiert hast. vieleicht erklärst du uns nochmal dein ziel. was möchtest du mit der hex zahl erreichen? |
Re: Wo kommt die $33 her?
Zitat:
3134303132303039 Wie könnte ich das - wenn überhaupt - erreichen? Gruß, Carsten |
Re: Wo kommt die $33 her?
Hallo,
Zitat:
Gruß xaromz |
Re: Wo kommt die $33 her?
Dein Formatstring passt nicht!
Delphi-Quellcode:
muss heißen
DateTimeToString(DTStr, 'ddmmyyyyhhmmss', Now)
Delphi-Quellcode:
Die Minuten werden mit n bzw. nn angesprochen, mm ist schon für den Monat reserviert.
DateTimeToString(DTStr, 'ddmmyyyyhhnnss', Now)
|
Re: Wo kommt die $33 her?
Zitat:
:wall: :wall: :wall: |
Re: Wo kommt die $33 her?
Zitat:
Zitat:
|
Re: Wo kommt die $33 her?
Zitat:
Zitat:
wie dem Auch sei, entweder ist das im Ausgangspost richtig, oder dieses hier
Delphi-Quellcode:
PS: das 33313334333033313332333033303339 im Ausgangspost ist die Hexadezimale Darstellung der Hexadezimalen Dastellung des Datumsstrings.
procedure TForm1.FormCreate(Sender: TObject);
var DTStr: string; FOut: TextFile; begin DateTimeToString(DTStr, 'ddmmyyyyhhmmss', Now); System.AssignFile(FOut, 'test.txt'); System.Rewrite(FOut); if System.IOResult = 0 then begin System.Writeln(FOut, DTStr); System.CloseFile(FOut); end; schau dir die datei doch mal mit einem Texteditor an und nicht mit 'nem Hexeditor
Code:
33313334333033313332333033303339
3 1 3 4 3 0 3 1 3 2 3 0 3 0 3 9 3134303132303039 1 4 0 1 2 0 0 9 14012009 |
Re: Wo kommt die $33 her?
Zitat:
Gruß, Carsten |
Re: Wo kommt die $33 her?
Zitat:
|
Re: Wo kommt die $33 her?
Zitat:
ES IST IMMER BINÄR - COMPUTER KÖNNEN NIX ANDERES!!! Kommt nur darauf an, wie man es interpretiert;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 Uhr. |
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