Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Byte Interpreter - Bytes sinnvoll einsetzen (https://www.delphipraxis.net/179069-byte-interpreter-bytes-sinnvoll-einsetzen.html)

NickelM 12. Feb 2014 16:06

Byte Interpreter - Bytes sinnvoll einsetzen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammmen,

Ideeherkunft : (wenn man das so nennen kann :-D)
Hattet ihr das auch schonmal? Ihr wollt die Dateistruktur verstehen, d.h. wissen wie bei einem Dateiformat z.b. die Bytes zu interpretieren sind?
Man öffnet die Datei dan mit z.b. PSPad Hexeditor und versucht zu verstehen, wie die Bytes zusammen gehören und schreibt dieses das dann irgendwie auf
damit man dann ein Programm schreiben könnte, das dieses Format dan liest? Ich hatte dieses Problem schon oft, da ich mich sehr für Dateiformate oder Datenverkehr von Server/Client Anwendung interessiere.
Also dachte ich mir ich schreib mir ein Programm, womit ich genau dieses machen kann.
Nun, da ich mir dachte, ich könnte euch dieses Programm auch anbieten stell ichs mal hier rein.

Version : 0.0.1 (Erste Vorhab version, diese ist noch nicht in vollem Masse inder Praxis getestet worden, bitte meldet mir Fehler, DANKE :oops:)

Features:
- Bytes als einzelne Typen anzeigen lassen (Byte,Char(AnsiChar),WChar(WideChar),Int16,UInt16, Int32,UInt32,Single(32bit Kommazahl),Int64,UInt64,Double(64bit Kommazahl),String(AnsiString),WString(WideString))
- Direkte Eingabe als Hexcode
- Dateien darstellbar
- Die Anzahl von Bytes, die auf einmal angezeigt werden, wird anhand der Größe des Fensters berechnet.
- Wenn die Datei größer ist als die anzeigbaren Bytes, kann man mit der Scrollbar durch die Datei scrollen.
- Schematik : Alle Festgelegeten Typen können gespeichert/geladen werden. Es wird die Position und die Typinformationen gespeichert.

Features die noch in der Überlegung sind (ich würde mich um Feedback wegen der Ideen freuen):
- Stringlängen von Zahlentypen (z.b. Int16) abhängigmachen. D.h. der String wird dynamisch von der Länge her gelesen, anhand des Zahlenwertes.

Ich hoffe, das Programm wird für ein paar Leute eine Hilfe sein.
And hoffe auf viel Feedback :-D
P.S. : Es ist kein Sourcecode dabei.

Gruß NickelM

Aphton 12. Feb 2014 16:33

AW: Byte Interpreter - Bytes sinnvoll einsetzen
 
Interessantes Projekt mit Potential!
Ich hätt da ein paar Kritiken, hoffe du verkraftest es:
- es ist nirgends erklärt, wie "Schematiken" funktionieren
- momentan unterscheidet es sich nicht wirklich viel von nem mageren Hexeditor
- ich weiß nicht, inwiefern das machbar wäre, aber wäre es nicht schön, wenn du XML DTDs verwerten und dann den Inhalt von Daten durch das DTD farblich hervorheben könntest? vlt reicht aber auch deine "Schematik" ^_^

Verbesserungsvorschläge
- Anstatt bei den Offsets mit der Nummerierung bei 1 zu beginnen, fang lieber bei 0 an
- gib die Offsets als Hexwert an, nicht dezimal!
- "xxGG" wird als 0-0 erkannt

Edit: Lob
- die App scheint selbst >4gb (konkret 15gb) Daten zu verkraften.

Edit2: Ahh ok. es gibt ein Kontextmenü xD

Edit3: Ok, ist eig. recht interessant.
Weißt du, was die App um einiges mächtiger machen würde? Wenn man komplexe Datentypen (~records) definieren und angeben könnte, wann und wie oft (evt. abhängig von einem Feld) dieser komplexe Datensatz vorkommt:

Beispiel:
Datentyp T1 = [bool][int32][PascalString]
Bytestrom = 5[T1][T1][T1][T1][T1]
Man sagt nun, an Offset 0, wo die 5 steht, ist die Int32 Zahl, die angibt, wie oft der Datentyp T1 hintereinander vorkommt.

Bin auf Neuerungen gespannt!
Es heißt übrigens Interpreter :P

Desmulator 12. Feb 2014 17:42

AW: Byte Interpreter - Bytes sinnvoll einsetzen
 
Zitat:

Zitat von Aphton (Beitrag 1247616)
Edit3: Ok, ist eig. recht interessant.
Weißt du, was die App um einiges mächtiger machen würde? Wenn man komplexe Datentypen (~records) definieren und angeben könnte, wann und wie oft (evt. abhängig von einem Feld) dieser komplexe Datensatz vorkommt:

Dann aber auch direkt ein Parser der die Headerdateien von einigen Programmiersprachen auslesen kann. Sonst okay.

EWeiss 12. Feb 2014 17:47

AW: Byte Interpreter - Bytes sinnvoll einsetzen
 
Was hat diese Anwendung mit App zu tun?
Dieser App Trip nervt nur.

Zitat:

Es heißt übrigens Interpreter
Jo aber sicherlich nicht App

gruss

Aphton 12. Feb 2014 19:55

AW: Byte Interpreter - Bytes sinnvoll einsetzen
 
App kurz für Application, was soviel wie Anwendung oder auch Programm bedeutet!
Auch wenn "App" (m.M.n.-) fälschlicherweise als Smartphone-Apps verstanden wird..

EWeiss 13. Feb 2014 04:54

AW: Byte Interpreter - Bytes sinnvoll einsetzen
 
Zitat:

Zitat von Aphton (Beitrag 1247653)
Auch wenn "App" (m.M.n.-) fälschlicherweise als Smartphone-Apps verstanden wird..

OT:
Ok! Dann sorry.. hatte es auch so verstanden.

gruss

pustekuchen 13. Feb 2014 07:09

AW: Byte Interpreter - Bytes sinnvoll einsetzen
 
Super Programm!

Es wäre schön, wenn man ..
- eine feste Breite für die Zeile angeben könnte.
- Interpretieren von Steuerzeichen wie z.B. Carriage Return/new line (0x13, 0x10), etc..
- Definieren von Strukturen
- Markieren von mehreren Feldern
- Drucken
- Wenn man Swap Endian macht, dies auch besonders markieren (Zeichen in der Ecke, oder Farbe)
- Bereich einer Zeile angeben (Wie in Hex editoren)

Schonmal ein paar Vorschläge :)

NickelM 28. Feb 2014 17:40

AW: Byte Interpreter - Bytes sinnvoll einsetzen
 
Danke für das Feedback bisher.

Antworten zu ein paar Fragen/Anregungen:
Zitat:

Zitat von pustekuchen (Beitrag 1247682)
- eine feste Breite für die Zeile angeben könnte.

Meinst du eine bestimmte Anzahl von Bytes pro Zeile einstellbar machen?
Zitat:

Zitat von pustekuchen (Beitrag 1247682)
- Interpretieren von Steuerzeichen wie z.B. Carriage Return/new line (0x13, 0x10), etc..

Ist im Datentyp String/Char bzw. WideString/WideChar mit enthalten. Die Werte werden fett angezeigt und als die Entsprechende bezeichnung angezeigt. Meinst du ich solle es zu einem eigenen Typ machen?
Zitat:

Zitat von pustekuchen (Beitrag 1247682)
- Drucken

Warum?! Bzw. wie sollte man sowas ausdrucken? Mich würde interessieren, wie du dir so etwas im groben vorstellst.
Zitat:

Zitat von pustekuchen (Beitrag 1247682)
- Wenn man Swap Endian macht, dies auch besonders markieren (Zeichen in der Ecke, oder Farbe)

An Farben hab ich allgemeint gedacht, dass verschiedene Typen verschiedene Farben haben. Vielleicht sogar einstellbar sind. Wenn sie fixed sind, weiß ich noch nicht welche ich nehmen, will keine "Augenkrebs" Farben verwenden.
Zitat:

Zitat von Aphton (Beitrag 1247616)
Edit3: Ok, ist eig. recht interessant.
Weißt du, was die App um einiges mächtiger machen würde? Wenn man komplexe Datentypen (~records) definieren und angeben könnte, wann und wie oft (evt. abhängig von einem Feld) dieser komplexe Datensatz vorkommt:

Beispiel:
Datentyp T1 = [bool][int32][PascalString]
Bytestrom = 5[T1][T1][T1][T1][T1]
Man sagt nun, an Offset 0, wo die 5 steht, ist die Int32 Zahl, die angibt, wie oft der Datentyp T1 hintereinander vorkommt.

Hm, darüber habe ich auch nachgedacht, nur dafür müsste ich mir einen Parser für eine eigenen recht einfache Struktur ausdenken. Dies wird denke ich aber noch dauern, da ich vielleicht eher eine GUI, statt einen Parser machen will und sowas auszudenken ist recht komplex und nicht grad einfach.
Zitat:

Zitat von Aphton (Beitrag 1247616)
- ich weiß nicht, inwiefern das machbar wäre, aber wäre es nicht schön, wenn du XML DTDs verwerten und dann den Inhalt von Daten durch das DTD farblich hervorheben könntest? vlt reicht aber auch deine "Schematik" ^_^

Hm, tut mir leid, aber dies soll halt kein XML-Viewer sein. Es sollen damit Binär-Dateien in für Programmierer verständlichen Typen dargestellt werden. Vielleicht als Plugin/Erweiterung/Extra wäre es eine Überlegung, aber dies wäre das erst viel später :wink:
Zitat:

Zitat von Aphton (Beitrag 1247616)
Edit: Lob
- die App scheint selbst >4gb (konkret 15gb) Daten zu verkraften.

Das war auch der Sinn dahinter :-D . Sonst wäre der Sinn meiner Meinung nach etwas verfehlt.

Ich werde demnächst ein paar Ideen versuchen umzusetzen, kann aber nicht sagen wann ich dazukomme, da ich recht beschäftigt bin die letzen Tage.

Gruß NickelM

pustekuchen 10. Mär 2014 15:17

AW: Byte Interpreter - Bytes sinnvoll einsetzen
 
Zitat:

Zitat von NickelM (Beitrag 1250061)
Danke für das Feedback bisher.

Antworten zu ein paar Fragen/Anregungen:
Zitat:

Zitat von pustekuchen (Beitrag 1247682)
- eine feste Breite für die Zeile angeben könnte.

Meinst du eine bestimmte Anzahl von Bytes pro Zeile einstellbar machen? Ja, Genau.
Zitat:

Zitat von pustekuchen (Beitrag 1247682)
- Interpretieren von Steuerzeichen wie z.B. Carriage Return/new line (0x13, 0x10), etc..

Ist im Datentyp String/Char bzw. WideString/WideChar mit enthalten. Die Werte werden fett angezeigt und als die Entsprechende bezeichnung angezeigt. Meinst du ich solle es zu einem eigenen Typ machen?
Ahh, okay. Kann so bleiben. Lediglich der Inhalt sollte auch komplett lesbar sein, bei mir ist in den 2 Bytes nur "String: C" und noch ein halbes R zu lesen.
Zitat:

Zitat von pustekuchen (Beitrag 1247682)
- Drucken

Warum?! Bzw. wie sollte man sowas ausdrucken? Mich würde interessieren, wie du dir so etwas im groben vorstellst.
Zum Debuggen ;) Manchmal besser aufm Papier. Es wäre dann z.B. nur der dargestellte Bereich ausdruckbar.
Zitat:

Zitat von pustekuchen (Beitrag 1247682)
- Wenn man Swap Endian macht, dies auch besonders markieren (Zeichen in der Ecke, oder Farbe)

An Farben hab ich allgemeint gedacht, dass verschiedene Typen verschiedene Farben haben. Vielleicht sogar einstellbar sind. Wenn sie fixed sind, weiß ich noch nicht welche ich nehmen, will keine "Augenkrebs" Farben verwenden.

:) Gut so

Neutral General 19. Sep 2014 11:27

AW: Byte Interpreter - Bytes sinnvoll einsetzen
 
Hab mir das Projekt mal runtergeladen und finde es auch ganz gut! Ist ne gute Idee :)

Hast du seitdem nochmal was daran gemacht? Wäre sicher auch ganz nett wenn schon die Schemata für einige Dateitypen mitgeliefert wären. Es wäre vielleicht auch sehr hübsch wenn man Bereiche farbig umranden könnte. ("Das blaue ist der Bitmap Header"). Es gibt ja einige Datentypen die aus mehreren Headern bestehen. Dann müsste man diese Bereiche benennen können und eventuell müsste man einzelne Felder (String/Integer/usw) auch benennen können. Wäre zumindest ganz nett.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:39 Uhr.
Seite 1 von 2  1 2      

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