![]() |
lib_jsr75 & files проблема
Мне надо read_byte() с одного файла и write_byte() в другой одновременно, тоесть не закрывая первый.
jsr75mf не умеет read_byte() и write_byte(). Есть какойто выход? |
Ответ: lib_jsr75 & files проблема
|
Ответ: lib_jsr75 & files проблема
Можно писать не прямо в файл, а в строку, а потом сохранить её, или загрузить файл в строку и читать из нее. Просто библиотеку Lib_jsr75mf переделать я могу, но когда - не знаю, сейчас очень большие проблемы со временем.
|
Ответ: lib_jsr75 & files проблема
а как это записать байт в строку? дай пример пожалуйста
|
Ответ: lib_jsr75 & files проблема
Если я ничего не путаю, то просто
S:=S+Byte; Дальше, когда записали все, просто сохраняем с помощью lib_jsr75. |
Ответ: lib_jsr75 & files проблема
Если не хочешь мучиться со строками (а скорее всего потом будут проблемы при чтении строки назад посимвольно), то используй специальную библиотеку Lib_bytes кажется называется. Там можно хранить информацию как массив байтов.
|
Ответ: lib_jsr75 & files проблема
ясно, спасибо. Буду пробовать :)
|
Ответ: lib_jsr75 & files проблема
vint, s:=s+byte(); или s:=s+byte; не работает. О_о
|
Ответ: lib_jsr75 & files проблема
возможен такой вариант (если конечно в J2ME возможно открытие 2х файлов одновременно )
1. берётся джава декомпайлер (например CAVAJ JAVA DECOMPILER) 2. открывается через него файл class библиотеки lib_jsr75i (lib_jsr75i.class) 3. копируется код библиотеки 4. создаётся библиотека с lib_jsr75if2 (например в jGRASP) вставляется копируемый код 5. переименовывается имя класса lib_jsr75i на lib_jsr75if2 6. компилируется библиотека lib_jsr75if2 7. lib_jsr75if2.class копируется в Lib Мидлет Паскаля 8. подключается библиотека lib_jsr75if2 в проекте далее в коде Мидлет Паскаля Lib_jsr75i.open_file("Файл 1"); Lib_jsr75if2.open_file("Файл 2"); ну и далее чтение из первого файла Lib_jsr75i.read_byte() и запись во второй файл Lib_jsr75if2.write_byte() |
Ответ: lib_jsr75 & files проблема
Цитата:
Должно работать примерно так: PHP код:
|
Ответ: lib_jsr75 & files проблема
снова БОЛЬШОЕ спс. буду пробовать
|
Ответ: lib_jsr75 & files проблема
vint, а ты уверен что если сохранить набор символов [s:=s+chr(b)] то получится файл? А то мне нужно сохранить png - я png filter делаю.
И как определить конец файла?? тоесть repeat a := read_byte; until a = что? или както по-другому сделать?? |
Ответ: lib_jsr75 & files проблема
По идее, самый надежный и быстрый (в смысле производительности) способ - прочитать файл полностью в строку потом выбирать из нее байты по очереди с помощью GetChar, переводить их из char в int помощью ord и обрабатывать. Это если файл не сильно большой.
|
Ответ: lib_jsr75 & files проблема
так мне так и не сказал... этот способ что выше будет работать на картинках?
И как опредилить конец??? пнг то ясно, а конец любого файла? |
Ответ: lib_jsr75 & files проблема
eof() вероятно
|
Ответ: lib_jsr75 & files проблема
тоесть
repeat a := read_byte; until a = EOF; правильно? а то я немогу протестить у меня jsr75 нет и еще fileopen := '/c:/a.pak'; // i - щетчик //----------------- //тута процес //----------------- 63строка - a1 := jsr75i.write_file(fileopen + i + '.png', nf[i]); пишет что ошибка error pngfilter.mpsrc63: identifier '(' is not a function, variable or constant name вроде все тут правильно....... что за фигня? |
Ответ: lib_jsr75 & files проблема
я даже незнаю о чем разговор - знаю только что почти на всех языках это команда eof (end of file)
но пойдее используя выдуманный мной только что синтаксис должно выглядит так Код:
file=loadfile("shit") |
Ответ: lib_jsr75 & files проблема
там в хелпе написано что возвращает EOF. просто мне надо чтобы тот кто точно знает написал, правильно ли
repeat a := read_byte; until a = EOF; а то вроде компилит, но не знаю, будет ли работать, я у себя проверить не могу. |
Ответ: lib_jsr75 & files проблема
В jsr75 Eof'а вроде нет.
Нужно читать в строку и обрабатывать её от начала до конца (фунция Length). |
Ответ: lib_jsr75 & files проблема
В общем, должно быть примерно так:
PHP код:
|
Ответ: lib_jsr75 & files проблема
Цитата:
так как ты говорил записать в файл то что из байтов сделал это должно быть write_file или может все таки write_file_a (без переобразований unicode - ASCII)?? |
Ответ: lib_jsr75 & files проблема
теперь собранный jar не хочет спрашивать доступ к фс...
вот прога: PHP код:
|
Ответ: lib_jsr75 & files проблема
^^^^^^^^Принцып работы - парсит файл, сравнивая каждый байт. если первые 3 байта совпали с первыми 3 байтами в базе то он начинает извлекать png или mid файл (зависимо от того, что выбрано в меню) извлекает пока не встретятся последние 3 байта. потом далее ищет png или mid в файле (пока не закончится файл).
|
Ответ: lib_jsr75 & files проблема
Какая-то проблема с функцией file_exists, если после нее поставить open:=1, то программа запрашивает доступ и выводит "Please wait...".
Можно попробовать использовать аналогичную функцию из jsr75ex. |
Ответ: lib_jsr75 & files проблема
решил сделать проверку через
jsr75ex.can_read дык оно не компилит - пишет "mp2.exe error приложение будит закрыто" и звук винды "пумц". пробовал раз 10 нифига... сделал без проверки на существование... но так стрьомновато((( |
Ответ: lib_jsr75 & files проблема
Чето я думал, что у меня в этой библиотке была функция file_exists, оказалось забыл сделать. В данном случае can_read даже лучше.
На счет вылета - это давно известный баг MP, иногда помогает установка режима совместимости с Win98. |
Ответ: lib_jsr75 & files проблема
------------------------------------------------
Дык это не просто вылет. На обычных вылетах нету звука винды "пумц" и при обычном вылете на 2-3раз компилит. А тут всегда вылетает когда jsr75ex ставить. не компилит вопше. скока раз не пробовал. ------------------------------------------------ а что за "установка режима совместимости с Win98"?? Это как делается? |
Ответ: lib_jsr75 & files проблема
Так, причина всетаки была в библиотеке, каким-то образом в архив попал поврежденный класс. Перекомпилил библиотеку, теперь не вылетает. Обновил в теме.
|
Ответ: lib_jsr75 & files проблема
что за "установка режима совместимости с Win98"??
|
Ответ: lib_jsr75 & files проблема
Установка режима совместимости с Win98, это эмуляция запуска приложения на конкретной OC.
Чтобы установить совместимость с ОС, нажми правой кнопкой на exe-файл, и выбери в контекстном меню снизу "Свойства". Далее, в новом окне переключись на вкладку "Совместимость", и поставь галочку на "Запустить программу в режиме совместимости с:" и выбери из списка "Windows 98 / Windows Me". |
Ответ: lib_jsr75 & files проблема
спс, анимон!
ViNT, там трабл с can_read. когда я проверял, как работает, набрал несуществующий файл. функция can_read вместо возвратить 0 возвратила 1 и создала какойто странный файл с введенным именем. оО Попробуй сделать file_exists в jsr75i, без нее очень не удобно (((((((( |
Ответ: lib_jsr75 & files проблема
Добавил функцию file_exists в jsr75ex.
|
Часовой пояс GMT +4, время: 16:20. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot