forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   lib_jsr75 & files проблема (http://forum.boolean.name/showthread.php?t=7924)

Doctor Drive 04.03.2009 23:26

lib_jsr75 & files проблема
 
Мне надо read_byte() с одного файла и write_byte() в другой одновременно, тоесть не закрывая первый.
jsr75mf не умеет read_byte() и write_byte(). Есть какойто выход?

NitE 04.03.2009 23:55

Ответ: lib_jsr75 & files проблема
 
Мне надо одновременно съесть колбасу и сыр. У меня нет ни того ни другого, что делать ? ы

ViNT 05.03.2009 01:33

Ответ: lib_jsr75 & files проблема
 
Можно писать не прямо в файл, а в строку, а потом сохранить её, или загрузить файл в строку и читать из нее. Просто библиотеку Lib_jsr75mf переделать я могу, но когда - не знаю, сейчас очень большие проблемы со временем.

Doctor Drive 05.03.2009 01:46

Ответ: lib_jsr75 & files проблема
 
а как это записать байт в строку? дай пример пожалуйста

ViNT 05.03.2009 01:51

Ответ: lib_jsr75 & files проблема
 
Если я ничего не путаю, то просто
S:=S+Byte;

Дальше, когда записали все, просто сохраняем с помощью lib_jsr75.

odd 05.03.2009 01:56

Ответ: lib_jsr75 & files проблема
 
Если не хочешь мучиться со строками (а скорее всего потом будут проблемы при чтении строки назад посимвольно), то используй специальную библиотеку Lib_bytes кажется называется. Там можно хранить информацию как массив байтов.

Doctor Drive 05.03.2009 02:05

Ответ: lib_jsr75 & files проблема
 
ясно, спасибо. Буду пробовать :)

Doctor Drive 05.03.2009 02:18

Ответ: lib_jsr75 & files проблема
 
vint, s:=s+byte(); или s:=s+byte; не работает. О_о

ru_aSa_45 05.03.2009 07:58

Ответ: 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()

ViNT 05.03.2009 13:06

Ответ: lib_jsr75 & files проблема
 
Цитата:

Сообщение от Doctor Drive (Сообщение 99590)
vint, s:=s+byte(); или s:=s+byte; не работает. О_о

Так и знал, что перепутаю...

Должно работать примерно так:

PHP код:

var
 
b:integer;
 
s:string;

begin
 b
:=read_byte;
 
//обработка
 
...
 
s:=s+chr(b);
 
 
//после обработки всего файла
 
write_file('output.bin',s); 


Doctor Drive 05.03.2009 17:23

Ответ: lib_jsr75 & files проблема
 
снова БОЛЬШОЕ спс. буду пробовать

Doctor Drive 05.03.2009 18:05

Ответ: lib_jsr75 & files проблема
 
vint, а ты уверен что если сохранить набор символов [s:=s+chr(b)] то получится файл? А то мне нужно сохранить png - я png filter делаю.

И как определить конец файла??
тоесть

repeat
a := read_byte;
until a = что? или както по-другому сделать??

ViNT 05.03.2009 19:55

Ответ: lib_jsr75 & files проблема
 
По идее, самый надежный и быстрый (в смысле производительности) способ - прочитать файл полностью в строку потом выбирать из нее байты по очереди с помощью GetChar, переводить их из char в int помощью ord и обрабатывать. Это если файл не сильно большой.

Doctor Drive 05.03.2009 20:13

Ответ: lib_jsr75 & files проблема
 
так мне так и не сказал... этот способ что выше будет работать на картинках?

И как опредилить конец??? пнг то ясно, а конец любого файла?

NitE 05.03.2009 21:20

Ответ: lib_jsr75 & files проблема
 
eof() вероятно


Часовой пояс GMT +4, время: 23:59.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot