Пакет расширения с утилитами (Utilities). Работа с бинарными файлами (BinaryFiles).
Утилитами принято называть небольшие программы, в основном вспомогательного назначения. Они предназначены чаще всего для работы с файлами и памятью компьютера. Ряд таких утилит включен в пакет расширения Utilities, знакомству с которым и посвящен данный небольшой раздел.
В подпакете BinaryFiles имеются типовые функции для работы с бинарными файлами:
- OpenReadBinary [ "filename" ] – открытие файла для считывания бинарных данных;
- OpenWriteBinary["filename"] – открытие файла для записи бинарных данных;
- OpenAppendBinary ["filename"] – открытие файла для добавления данных в конец;
- ReadBinary [stream, type] – считывает бинарные данные из потока;
- ReadBinary [ stream, expr ] – считывает из потока бинарные данные, типы которых определяются выражением ехрг.
ФункцииReadListBinary[filename,type], ReadListBinary[stream,type, n], ReadListBinary[stream,type] оперируют с данными в виде списков, а функция WriteBinary [stream, data] записывает данные в поток в бинарной форме.
Примеры применения этих функций представлены ниже:
<< Utilities`BinaryFiles` data = N[Table[10^n, {n, -10, 10}]] {1.x 10-10, 1.x 10-9, 1.x 10-8, 1.x 10-7, 1.x 10-6, 0.00001, 0.0001, 0.001, 0.01, 0.1, 1., 10., 100.-, 1000., 10000., 100000., 1.x 106, 1.x 107, 1.x 108, 1.x 109, 1.x 1010} stream = OpenWriteBinary["binarytest"] OutputStream["binarytest", 4] WriteBinary[stream, data] Close[stream] binarytest ReadListBinary["binarytest", Double] {1.x10-10, 1 .xlO-9, 1 .x10-8, 1.x 10-7, 1.x 10-6, 0.00001, 0.0001, 0.001, 0.01, 0.1, 1., 10., 100., 1000., 10000., 100000., 1.x 106, 1.x 107, l.xl08, 1.x 109, 1.x 1010} ReadListBinary["binarytest", Signedlntl6, 5] {15835, 31967,-9769, -16965, 15889}Для конвертирования выражений ехрг в байтовый формат служат функции ТоBytes[expr] и ToBytes[expr, type].
Например:
ToBytes[-34.3421435] {192, 65, 43, 203, 91, 128, 0, 0} ToBytes[-34.3421435, CString] {45, 51, 52, 46, 51, 52, 50, 49, 52, 51, 53, 0}