home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 109 / EnigmaAmiga109CD.iso / software / varie / envhex13 / english / rexx / deletebyte.rexx next >
Encoding:
OS/2 REXX Batch file  |  1999-12-11  |  3.0 KB  |  129 lines

  1. /* ©1996 Dietmar Eilert. Empty GoldED macro */
  2.  
  3. OPTIONS RESULTS                             /* enable return codes     */
  4.  
  5. if (LEFT(ADDRESS(), 6) ~= "GOLDED") then    /* not started by GoldEd ? */
  6.     address 'GOLDED.1'
  7.  
  8. 'LOCK CURRENT RELEASE=4'                    /* lock GUI, gain access   */
  9.  
  10. if (RC ~= 0) then
  11.     exit
  12.  
  13. OPTIONS FAILAT 6                            /* ignore warnings         */
  14.  
  15. SIGNAL ON SYNTAX                            /* ensure clean exit       */
  16.  
  17. /* ------------------------ INSERT YOUR CODE HERE: ------------------- */
  18. /* $VER: 1.3, ©1999 Wolfgang Morgeneier */
  19.  
  20. parse arg sprache
  21. if sprache = "d" then do
  22.    R1B= "Wirklich ein Byte löschen?|Programmdateien werden dadurch unbrauchbar!"
  23.    R1T= "Achtung"
  24.    R1X= "OK|!Abbrechen"
  25.    R2P= "Der Cursor muß sich im Hexbereich innerhalb eines Bytes befinden"
  26.    R3P= "Löschen des letzten Bytes ist nicht möglich"
  27. end
  28. else do
  29.    R1B= "Really delete a byte?|Program files will not be useable any more!"
  30.    R1T= "Attention"
  31.    R1X= "OK|!Cancel"
  32.    R2P= "The cursor must be in the hex area at a byte"
  33.    R3P= "You cannot delete the last byte"
  34. end
  35.  
  36. 'REQUEST Body="' || R1B || '" Title="' || R1T || '" Button="' || R1X || '"'
  37. if Result = 0 then do
  38.    'UNLOCK'
  39.    exit
  40. end
  41.  
  42. 'QUERY Name=Column Var=Spalte'
  43. 'QUERY Name=Code Var=Zeichen'
  44. if Spalte<11 | Spalte>45 | Zeichen=32 then do
  45.    'REQUEST Problem="' || R2P || '"'
  46.    'UNLOCK'
  47.    exit
  48. end
  49.  
  50. 'QUERY Name=Line Var=Zeile'
  51. 'QUERY Name=Lines Var=GesZeilen'
  52.  
  53. 'GOTO Line=' || GesZeilen
  54. 'GOTO Column=11'
  55. 'QUERY Name=Buffer Var=Inhalt'
  56. Zeile1= compress(substr(Inhalt, 11, 35))
  57. AnzByte= length(Zeile1) % 2
  58.  
  59. if GesZeilen=1 & AnzByte=1 then do
  60.    'REQUEST Problem="' || R3P || '"'
  61.    'UNLOCK'
  62.    exit
  63. end
  64.  
  65. Zeile1= compress(substr(Inhalt, 11, 35))
  66. Start= ((Spalte-11)-((Spalte-11)%9)) % 2
  67. Zeile1x= left(Zeile1, 2)
  68. if Zeile~=GesZeilen then do
  69.    if length(Zeile1) = 2 then do
  70.       'DELETE Line'
  71.       'GOTO Column=11'
  72.    end
  73.    else do
  74.       Zeile1=substr(Zeile1, 3, 32)
  75.       'HEXKEY KEYL="' || Zeile1 || '"'
  76.       'UP'
  77.       'GOTO Column=11'
  78.    end
  79.  
  80.    if Zeile<GesZeilen-1 then do
  81.       do i=GesZeilen-1 to Zeile+1 by -1
  82.          'QUERY Name=Buffer Var=Inhalt'
  83.          Zeile1= compress(substr(Inhalt, 11, 35))
  84.          Zeile2x= left(Zeile1, 2)
  85.          Zeile1= right(Zeile1, 30) || Zeile1x
  86.          Zeile1x= Zeile2x
  87.          'HEXKEY KEYL="' || Zeile1 || '"'
  88.          'UP'
  89.          'GOTO Column=11'
  90.       end
  91.    end
  92. end
  93.  
  94. 'QUERY Name=Buffer Var=Inhalt'
  95. Zeile1= compress(substr(Inhalt, 11, 35))
  96.  
  97. if Zeile=GesZeilen then    Zeile1x=""
  98.  
  99. if Start > 0 then do
  100.    if Start<15 then do
  101.       Zeile1= left(Zeile1, 2*Start) || substr(Zeile1, 2*Start+3, 30-2*Start) || Zeile1x
  102.    end
  103.    else do
  104.       Zeile1= left(Zeile1, 30) || Zeile1x
  105.    end
  106. end
  107. else do
  108.    Zeile1= substr(Zeile1, 3, 30) || Zeile1x
  109. end
  110. if Zeile=GesZeilen then   Zeile1= Zeile1 || "  "
  111.  
  112. 'HEXKEY KEYL="' || Zeile1 || '"'
  113.  
  114. 'GOTO Line=' || Zeile || ' Column=' || Spalte
  115. 'HEXKEY'
  116.  
  117. 'UNLOCK'
  118. exit
  119.  
  120. /* ---------------------------- END OF YOUR CODE --------------------- */
  121.  
  122. SYNTAX:
  123.  
  124. SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-("
  125.  
  126. 'UNLOCK'
  127.  
  128. exit
  129.