Создание/запись/чтение файлов
Через блокнот файл выглядит вот так:
hello world hello world А через hex редактор: FFFE680065006C006C006F00090077006F0072006C0064000D000A00 680065006C006C006F00090077006F0072006C0064000D000A00 те в начале файла запись FFFE, и дальше идут буквы 68-h, два нуля снова буква и тд. enter-это,0D000A00 Вопрос как создавать файл и записать побайтно информацию, который выглядел также. |
Ответ: Создание/запись/чтение файлов
Это, как я понял, юникод. Библиотеки для работы с ФС пишут в ASCII, так что нужно составлять таблицу символов юникода (по 2 байта на символ) и вручную побайтно записывать данные. Точно так же побайтно прописывать FFFE и 0D000A00.
|
Ответ: Создание/запись/чтение файлов
Нашёл библиотеку jsr75i. Она запишет байты. Но как быть с юникод, библиотеку сложно написать?
вот и 1000 набежала) |
Ответ: Создание/запись/чтение файлов
Там библиотека не нужна. Заводим два массива, в них вручную прописываем коды символов (в первый массив - первый байт, во второй - второй) естественно, массивы нужно построить так, чтобы индекс соответствовал коду символа ASCII. То есть, например, символ имеет номер N и код AABB, тогда в первом массиве под индексом N должно быть AA, во втором - BB. Дальше все просто
Код:
for i := 1 to Length(S)-1 do Хотя, наверное есть какой-нибудь алгоритм пересчета из ASCII в юникод, но потом опять же придется результат на байты резать, тоже лишние телодвижения. |
Ответ: Создание/запись/чтение файлов
Появилась новая проблема. При использовании функций read_byte и reset приложение виснет (jsr75i). Созданный файл нормально создается и читается. Но отрываться никак не может. В чём проблема?
PHP код:
|
Ответ: Создание/запись/чтение файлов
Вероятно проблема в том, что файл не закрывается после создания, поэтому программа не может его открыть.
|
Ответ: Создание/запись/чтение файлов
Вставил в код:
PHP код:
|
Ответ: Создание/запись/чтение файлов
То, что не выводит - во-первых, нет repaint, без него ничего не выведет, во-вторых, если в коде он есть, то может не выводить из-за зависания потока.
|
Ответ: Создание/запись/чтение файлов
Как же я забыл про repaint. Добавил close_file и удалил reset. И заработало:-D
|
Часовой пояс GMT +4, время: 10:21. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot