Команда: 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;
}