home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / forum16.lzh / SOFTWARE / C / HEXED / hexed.doc < prev    next >
Text File  |  1991-03-25  |  3KB  |  75 lines

  1.  
  2. 'hexed' dient zum Editieren von Dateien mit binaeren Daten.
  3.  
  4. In der Regel arbeiten die mir bekannten Hex-Editoren direkt auf
  5. Disk-Sektoren oder nur mit Modulen (also nicht beliebigen binaeren
  6. Dateien); allen gemeinsam ist, dass sie nur "patchen" koennen, also
  7. keine Daten einfuegen oder loeschen koennen. Diesem Manko soll
  8. 'hexed' abhelfen.
  9.  
  10. Grundidee von 'hexed' ist es, fuer die Editierarbeit einen beliebigen
  11. Texteditor zu benutzen, um nicht die gesamte Bildschirmsteuerung und
  12. Datenverwaltung noch einmal neu zu erfinden. Dazu besteht 'hexed' im
  13. wesentlichen aus drei Teilen:
  14.  
  15.   - Erzeugung der Hexdump-Datei(en) aus den Binaerdatei(en),
  16.   - Editieren der Hexdump-Datei(en) mittels eines Texteditors unter
  17.     Beachtung gewisser Regeln fuer die Hexdump-Zeilen,
  18.   - Ruecktransformation der Hexdump-Datei(en).
  19.  
  20. Nachteil dieser Vorgehensweise ist sicher, dass z.B. beim Aendern der
  21. Hex-Repraesentation eines Bytes sich die ASCII-Darstellung nicht mit-
  22. aendert. Weiterhin muss ein bestimmtes Format der Dump-Zeilen eingehalten
  23. werden, damit die Ruecktransformation einwandfrei ablaeuft. Auch ist
  24. diese Vorgehensweise nicht sehr schnell, da erst der Dump generiert
  25. und spaeter wieder rueckuebersetzt werden muss; zudem wird jede Datei
  26. als Dump circa um den Faktor 5 groesser.
  27.  
  28. Von Vorteil ist jedoch, dass man mit dem gewohnten Texteditor arbeiten
  29. kann und sich nicht wieder neue Kommandos merken muss.
  30.  
  31. 'hexed' wird mit mindestens einem Filenamen aufgerufen. Es wird dann die
  32. Dump-Datei mit dem gleichen Filenamen plus Suffix ".hd" in einem
  33. Temp-Directory erzeugt. Der Default fuer dieses Directory ist "/r0", ist
  34. aber mit der Option "-t=<dir>" aenderbar. Anschliessend wird der Editor
  35. (per Default "vi" (siehe Forum 13) ohne Optionen) mit allen ".hd"-Datei(en)
  36. aufgerufen. Ein anderer Editor kann mit der Option "-e=<editor>" gewaehlt
  37. werden, evtl. gewuenschte Editoroptionen mit "-eo=<opts>".
  38. Nach dem Beenden des Editors werden alle ".hd"-Dateien rueckuebersetzt.
  39. Wird dabei ein fehlerhaftes Format in der Dumpzeile erkannt, wird der
  40. Editor mit der entsprechenden Dump-Datei und -sofern vorhanden- mit einer
  41. "goto line"-Option erneut aufgerufen, um Korrekturen zu ermoeglichen.
  42. Diese "goto line"-Option ist (fuer den "vi") per Default "+", kann aber
  43. mit der "-eg=<goto-opt>" modifiziert werden.
  44. Alle Defaults sind im Sourcecode aenderbar in den #defines:
  45.   TEMPDIR_DEFAULT, EDITOR_DEFAULT, EDOPTS_DEFAULT und EDGOTO_DEFAULT .
  46.  
  47. Der Dumpteil von 'hexed' erzeugt einen Hexdump und rechts daneben die
  48. ASCII-Repraesentation der Daten, sofern moeglich.
  49.  
  50. Zum Rueckuebersetzen sind zwei Formate moeglich, die beim Editieren
  51. beachtet werden muessen:
  52.  
  53.   1) Dumpzeile:
  54.      - optionale Hexnummer (i.a. Bytecount), mindestens aber ein Blank,
  55.      - Hex-Bytes (jeweils aus einem oder zwei Hexdigits bestehend),
  56.        getrennt durch Blank(s),
  57.      - Semikolon, gefolgt von beliebigem Text als Kommentar (i.a. ASCII-
  58.        Darstellung).
  59.  
  60.   2) ASCII-Zeile:
  61.      - die zwei Zeichen ".a" als erste Zeichen der Zeile,
  62.      - beliebige Anzahl von Blank(s) (auch 0 Blanks),
  63.      - beliebiges Zeichen != Blank als Delimiter,
  64.      - beliebiger ASCII-Text (ohne Delimiter) fuer die Uebernahme
  65.        in die Binaerdatei,
  66.      - optional Delimiter und Kommentartext.
  67.  
  68. Beispiele:
  69.  
  70. 0070  12 34 56  ; affe        -->  12 34 56
  71.  12 34 56 7 89 0a             -->  12 34 56 07 89 0a
  72. .a?affe?emil                  -->  61 66 66 65
  73. .a  /123                      -->  31 32 33
  74.  
  75.