|
Основной форум Сюда все проблемы связанные с программированием. |
05.03.2009, 21:43
|
#16
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: 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
вроде все тут правильно....... что за фигня?
Последний раз редактировалось Doctor Drive, 05.03.2009 в 22:13.
|
(Offline)
|
|
05.03.2009, 22:07
|
#17
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: lib_jsr75 & files проблема
я даже незнаю о чем разговор - знаю только что почти на всех языках это команда eof ( end of file)
но пойдее используя выдуманный мной только что синтаксис должно выглядит так
file=loadfile("shit")
while not eof(file)
read_byte()
wend
|
(Offline)
|
|
05.03.2009, 22:51
|
#18
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: lib_jsr75 & files проблема
там в хелпе написано что возвращает EOF. просто мне надо чтобы тот кто точно знает написал, правильно ли
repeat
a := read_byte;
until a = EOF;
а то вроде компилит, но не знаю, будет ли работать, я у себя проверить не могу.
|
(Offline)
|
|
06.03.2009, 00:18
|
#19
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: lib_jsr75 & files проблема
В jsr75 Eof'а вроде нет.
Нужно читать в строку и обрабатывать её от начала до конца (фунция Length).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.03.2009, 00:35
|
#20
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: lib_jsr75 & files проблема
В общем, должно быть примерно так:
program jsr75tst; uses jsr75; var i,byte:Integer; s:string; begin s:=jsr75.read_file('/c:/other/file'+integertostring(i)+'.png'); for i:=0 to Length(S)-1 do begin byte:=ord(GetChar(S,i)); //обработка S:=SetChar(S,CHR(Byte),i); end; jsr75.write_file('/c:/other/file.png',s); end.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.03.2009, 00:42
|
#21
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: lib_jsr75 & files проблема
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
вроде все тут правильно....... что за фигня?
|
я уже разобрался, там же public static void было
так как ты говорил записать в файл то что из байтов сделал это должно быть write_file или может все таки write_file_a (без переобразований unicode - ASCII)??
|
(Offline)
|
|
06.03.2009, 14:34
|
#22
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: lib_jsr75 & files проблема
теперь собранный jar не хочет спрашивать доступ к фс...
вот прога:
program MediaFilter; uses jsr75i; var a1, open, i, n, fs, m1, m2, mgsi, byte, ii, inf: integer; stop: boolean; nf: array[0..50] of string; b1: array[0..1] of integer; b2: array[0..1] of integer; b3: array[0..1] of integer; b4: array[0..1] of integer; b5: array[0..1] of integer; b6: array[0..1] of integer; fileopen, endd, ss: string; ok, exit, back, gtc: command; begin b1[0] := 137; b2[0] := 80; b3[0] := 78; b4[0] := 66; b5[0] := 96; b6[0] := 130; b1[1] := 77; b2[1] := 84; b3[1] := 104; b4[1] := 255; b5[1] := 47; b6[1] := 00; repeat showmenu('PNG Filter', CH_IMPLICIT); m1 := menuAppendString('PNG Filter'); m2 := menuAppendString('MID Filter'); ok := createcommand('Ok', CM_OK, 1); exit := createcommand('Exit', CM_EXIT, 1); addcommand(ok); addcommand(exit); repeat gtc := getclickedcommand; until (gtc = ok) or (gtc = exit); clearform; removecommand(ok); removecommand(exit); if gtc = ok then begin mgsi := menugetselectedindex; if mgsi = 0 then endd := '.png'; if mgsi = 1 then endd := '.mid'; i := 0; ii := -1; showform; repeat a1 := formAddTextField('Open File', '/c:/', 70, TF_ANY); addcommand(ok); repeat until getclickedcommand = ok; formremove(fs); removecommand(ok); open := 0; fileopen := formgettext(a1); open := file_exists(fileopen); if open <> 1 then begin fs := formaddstring('Error! File not found...'); addcommand(ok); repeat until getclickedcommand = ok; removecommand(ok); clearform; end; until open = 1; a1 := 0; clearform; fs := formaddstring('Please wait...'); ss:=jsr75i.read_file('/c:/other/file'+integertostring(i)+'.png'); repeat stop := false; ii := ii + 1; a1:=ord(GetChar(ss,ii)); if a1 = b1[mgsi] then begin nf[i] := SetChar(nf[i],CHR(Byte),inf); ii := ii + 1; inf := inf + 1; a1:=ord(GetChar(ss,ii)); if a1 = b2[mgsi] then begin nf[i] := SetChar(nf[i],CHR(Byte),inf); ii := ii + 1; inf := inf + 1; a1:=ord(GetChar(ss,ii)); if a1 = b3[mgsi] then begin repeat nf[i] := SetChar(nf[i],CHR(Byte),inf); ii := ii + 1; inf := inf + 1; a1:=ord(GetChar(ss,ii)); if a1 = b4[mgsi] then begin nf[i] := SetChar(nf[i],CHR(Byte),inf); ii := ii + 1; inf := inf + 1; a1:=ord(GetChar(ss,ii)); if a1 = b5[mgsi] then begin nf[i] := SetChar(nf[i],CHR(Byte),inf); ii := ii + 1; inf := inf + 1; a1:=ord(GetChar(ss,ii)); if a1 = b6[mgsi] then begin stop := true; nf[i] := SetChar(nf[i],CHR(Byte),inf); i := i + 1; inf := 0; end; end; end; until stop = true; end; end; end; until ii = Length(ss)-1; for n := 0 to i do begin jsr75i.write_file_a(fileopen + integertostring(i) + endd, nf[i]); end; clearform; fs := formaddstring('Extracted ' + integertostring(i) + 'files.'); addcommand(ok); repeat until getclickedcommand = ok; end; until gtc = exit; end.
Последний раз редактировалось Doctor Drive, 06.03.2009 в 17:17.
|
(Offline)
|
|
06.03.2009, 17:34
|
#23
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: lib_jsr75 & files проблема
^^^^^^^^Принцып работы - парсит файл, сравнивая каждый байт. если первые 3 байта совпали с первыми 3 байтами в базе то он начинает извлекать png или mid файл (зависимо от того, что выбрано в меню) извлекает пока не встретятся последние 3 байта. потом далее ищет png или mid в файле (пока не закончится файл).
|
(Offline)
|
|
06.03.2009, 19:17
|
#24
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: lib_jsr75 & files проблема
Какая-то проблема с функцией file_exists, если после нее поставить open:=1, то программа запрашивает доступ и выводит "Please wait...".
Можно попробовать использовать аналогичную функцию из jsr75ex.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.03.2009, 21:57
|
#25
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: lib_jsr75 & files проблема
решил сделать проверку через
jsr75ex.can_read дык оно не компилит - пишет "mp2.exe error приложение будит закрыто" и звук винды "пумц". пробовал раз 10 нифига...
сделал без проверки на существование... но так стрьомновато(((
|
(Offline)
|
|
07.03.2009, 00:09
|
#26
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: lib_jsr75 & files проблема
Чето я думал, что у меня в этой библиотке была функция file_exists, оказалось забыл сделать. В данном случае can_read даже лучше.
На счет вылета - это давно известный баг MP, иногда помогает установка режима совместимости с Win98.
|
(Offline)
|
|
07.03.2009, 01:07
|
#27
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: lib_jsr75 & files проблема
------------------------------------------------
Дык это не просто вылет.
На обычных вылетах нету звука винды "пумц" и при обычном вылете на 2-3раз компилит.
А тут всегда вылетает когда jsr75ex ставить. не компилит вопше. скока раз не пробовал.
------------------------------------------------
а что за "установка режима совместимости с Win98"??
Это как делается?
Последний раз редактировалось Doctor Drive, 07.03.2009 в 01:33.
|
(Offline)
|
|
07.03.2009, 15:46
|
#28
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: lib_jsr75 & files проблема
Так, причина всетаки была в библиотеке, каким-то образом в архив попал поврежденный класс. Перекомпилил библиотеку, теперь не вылетает. Обновил в теме.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
07.03.2009, 19:16
|
#29
|
Нуждающийся
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение (для 2 участников)
|
Ответ: lib_jsr75 & files проблема
что за "установка режима совместимости с Win98"??
Последний раз редактировалось Doctor Drive, 07.03.2009 в 19:23.
|
(Offline)
|
|
07.03.2009, 20:27
|
#30
|
AnyKey`щик
Регистрация: 20.12.2008
Сообщений: 13
Написано 4 полезных сообщений (для 12 пользователей)
|
Ответ: lib_jsr75 & files проблема
Установка режима совместимости с Win98, это эмуляция запуска приложения на конкретной OC.
Чтобы установить совместимость с ОС, нажми правой кнопкой на exe-файл, и выбери в контекстном меню снизу "Свойства". Далее, в новом окне переключись на вкладку "Совместимость", и поставь галочку на "Запустить программу в режиме совместимости с:" и выбери из списка "Windows 98 / Windows Me".
__________________
Use a music as a weapon
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 08:39.
|