Команды SFK


    1        2        3        4        5        6        7        8        9        10    

Раздел 8. Development - Разработка
bin-to-src | fuzz | inst | make-random-file | patch | sample |


Help:   Рус   |   Eng        Refer:   Рус   |   Eng  

Команда: bin-to-src

Преобразование двоичных данных в исходный код Java или C++

sfk bin-to-src [...] infile outfile namePrefix

Создать исходный файл, содержащий двоичный блок данных. Исходный файл будет содержать определения переменных, начинающиеся с namePrefix

ПАРАМЕТРЫ

-java - создать вывод исходного кода java, по умолчанию C

-class - java: создать полностью компилируемый класс с коротким демонстрационным исходным кодом, показывающим, как записать данные в файл

-pack - исходный текст C: сжатие данных с помощью простой схемы RLE

-hex - исходный текст C: выдавать шестнадцатеричные числа вместо десятичных

-append - не перезаписывать вывод, а дополнять его

-recsize=n - java: Определите количество байтов на запись, используемую в необработанных данных. По умолчанию — 500. Чем выше значение, тем меньше записей, что может помочь, если во время компиляции Java вы получите ошибку «слишком большой код».

Дополнительные команды

sfk clipsrc преобразование текста буфера обмена в исходный код в стиле C

sfk clipphp конвертировать текст буфера обмена в исходный код в стиле PHP

sfk clipjava преобразование текста буфера обмена в исходный код в стиле Java ... добавить +toclip, чтобы скопировать преобразованный результат обратно в буфер обмена

ПРИМЕРЫ

sfk bin-to-src myimg.dat imgsrc.cpp img01 создать исходный код на языке C, из содержимого файла myimg.dat

sfk bin-to-src -java -class myimg.dat imgdata.java imgdata создать Java-класс "imgdata" из содержимого myimg.dat

Примеры на C++ с выводом
(сокращено на "...")

 #define pic01_BLOCK_SIZE 1105

   static unsigned char pic01_abRawBlock[1105] = {
   255,216,255,224,0,16,74,70,73,70,0,1,1,1,0,96,0,96,0,0,
   255,219,0,67,0,4,3,3,4,3,3,4,4,4,4,5,5,4,5,7,11,7,7,6,6,
   7,14,10,10,8,11,16,14,17,17,16,14,16,15,18,20,26,22,18,
   ...
   15,84,235,10,161,46,224,39,191,140,210,163,56,135,203,
   255,217,
   };

Примеры на Java с выводом:
(сокращено на "...")

public static int pic01_BlockSize = 1105;
   static String pic01_RawBlock[] = {
   "\uffd8\uffe0\u0010\u4a46\u4946\u0001\u0101 ...",
   "\u3f02\ue4a9\ud54a\u2a65\u84b4\u8dde\ud7d4 ...",
   "\u581b\u06e2\ua9f2\u64e7\u56ac\u840d\u8419 ...",
   };

   public static byte[] pic01_getBlock() {
      int iout=0, nblen=pic01_BlockSize;
      char atmp[] = new char[500];
      byte aout[] = new byte[nblen];
      for (int i=0; i> 8);
            byte blo = (byte)(c >> 0);
            aout[iout++] = bhi;
            if (iout < nblen)
               aout[iout++] = blo;
         }
      }
      return aout;
   }