Показать сообщение отдельно
Старый 06.03.2009, 14:34   #22
Doctor Drive
Нуждающийся
 
Аватар для Doctor Drive
 
Регистрация: 28.01.2009
Сообщений: 65
Написано одно полезное сообщение
(для 2 участников)
Ответ: lib_jsr75 & files проблема

теперь собранный jar не хочет спрашивать доступ к фс...
вот прога:




program MediaFilter;
uses jsr75i;
var 
a1openinfsm1m2mgsibyteiiinfinteger;
stopboolean;
nf: array[0..50of string;
b1: array[0..1of integer;
b2: array[0..1of integer;
b3: array[0..1of integer;
b4: array[0..1of integer;
b5: array[0..1of integer;
b6: array[0..1of integer;
fileopenenddssstring;
ok, exit, backgtccommand;
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_OK1);
exit := 
createcommand('Exit'CM_EXIT1);
addcommand(ok);
addcommand(exit);
repeat gtc := getclickedcommanduntil (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';

 
:= 0;
ii := -1;
showform;
repeat
a1 
:= formAddTextField('Open File''/c:/'70TF_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[mgsithen begin
    
       nf
[i] := SetChar(nf[i],CHR(Byte),inf);
       
ii := ii 1;
       
inf := inf 1;
           
a1:=ord(GetChar(ss,ii));
             if 
a1 b2[mgsithen begin
                 nf
[i] := SetChar(nf[i],CHR(Byte),inf);
                 
ii := ii 1;
               
inf := inf 1;
                     
a1:=ord(GetChar(ss,ii));
                       if 
a1 b3[mgsithen begin
                         repeat
                            nf
[i] := SetChar(nf[i],CHR(Byte),inf);
                            
ii := ii 1;
                          
inf := inf 1;
                                  
a1:=ord(GetChar(ss,ii));
                                  
                                  if 
a1 b4[mgsithen begin
                                   nf
[i] := SetChar(nf[i],CHR(Byte),inf);
                                   
ii := ii 1;
                                  
inf := inf 1;
                                    
a1:=ord(GetChar(ss,ii));
                                      if 
a1 b5[mgsithen begin
                                           nf
[i] := SetChar(nf[i],CHR(Byte),inf);
                                           
ii := ii 1;
                                                                            
inf := inf 1;
                                                                       
a1:=ord(GetChar(ss,ii));
                                                                     if 
a1 b6[mgsithen begin
                                                                                stop 
:= true;
                                                                                
nf[i] := SetChar(nf[i],CHR(Byte),inf);
                                                                                
:= 1;
                                                                                
inf := 0;
                                                                     
end;
                                                                
end;
                                                        
end;
                                  
                                  
                                  
                                  
                         
until stop true;
                                   
                       
end;
             
end;
    
end;

until ii Length(ss)-1;
for 
:= 0 to i do begin
    jsr75i
.write_file_a(fileopen integertostring(i) + enddnf[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)
 
Ответить с цитированием