 |
Основной форум Сюда все проблемы связанные с программированием. |
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, время: 21:01.
|