Форум: "KOL";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
Вниз
а так можно? почему-то ошибка 216 выскакивает Найти похожие ветки
← →
zetta (2002-07-25 12:44) [0]
procedure BGProc;
var ll:word;
begin
readstr; //читает строчку из файла в s, вызывает w.ProcessMessages;
if eoff then
begin
exit;
end;
if s[1] = "%" then
begin
if not tr then
begin
if findL("%AI5_TargetResolution:") then
begin
s := tr_n;
wrstr1;
tr := true;
end
else
wrstr1; //пишет строчку в файл из s, вызывает w.ProcessMessages;
end
else
wrstr1;
end
else
begin
ll := length(s);
if ll > 3 then
begin
if (s[ll] = "r") and (s[ll - 1] = "A") then
begin
s := ar_n;
wrstr1;
end
else
wrstr1
end
else
wrstr1;
end;
if totread > breaking then
begin
while totread >= breaking do
begin
breaking := breaking + breakst;
pix := pix + pixst;
end;
end;
end;
procedure onclosewin(sender:pobj;var accept:boolean);
begin
eoff:=(msgbox("Terminate program?",MB_YESNO)=ID_YES);
accept:=eoff;
end;
begin //основная программа
Applet := NewApplet( " " );
Applet.Visible := False;
W := NewForm( Applet, "zetta window" ).SetSize( 240, 99 );
W.CanResize := False;w.hascaption:=true;
w.style:=WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or WS_THICKFRAME or WS_MINIMIZEBOX;
W.CenterOnParent; w.OnClose:=TOnEventAccept( MakeMethod( nil, @onclosewin ) );
if Applet = nil then
Applet := W;
a := max;
b1 := 0;
rsp := 0;
wsn1 := 1;
wsp1 := 1;
rsn := 0;dialog1:=newopensavedialog("","",[OSFileMustExist,OSHideReadonly]);
dialog1.Title:="Open source file";
dialog1.opendialog:=true;
dialog1.filter:="Illustrator files (*.ai;*.eps;*.ps)|*.ai;*.eps;*.ps|All files|*.*";
if not dialog1.execute then exit;
s:=dialog1.filename;
n:=length(s);l:=n;m:=0;
while (n>0) and (m=0) do begin if s[n]="." then m:=n;n:=n-1; end;
outname:=s;if m<>0 then setlength(outname,m-1);
outname:=outname+" 2400dpi";
if m<>0 then
for n:=m to l do outname:=outname+s[n];
dialog1.Title:="Save result as";
dialog1.opendialog:=false;dialog1.filter:="All files|*.*";dialog1.options:=[OSHideReadonly,OSOverwritePrompt,OSNoReadonlyReturn];
dialog1.filename:=outname;
if not dialog1.execute then exit;
outname:=dialog1.filename;
assignfile(f1,s);
reset(f1,1);
if inoutres<>0 then err("Can""t open file "+s);
i:=0;
str(dpin, tr_n);
ar_n := " Ar";
strcat(ar_n, tr_n, ar_n);
strcat(tr_n, "%AI5_TargetResolution: ", tr_n);
eoff := false;
fsz:=filesize(s);
totread := 0;
checkfile;
filemode:=1;
assignfile(f2,outname);
rewrite(f2,1);
if inoutres<>0 then err("Can""t create file "+outname);
total1 := 0;
a := 0;
pix := 0;
if fsz > bars then
begin
pixst := 1;
breakst := fsz div bars;
end
else
begin
breakst := 1;
pixst := fsz div bars;
end;
breaking := breakst - 1;
Applet.Visible := False;
W.Show;
while not eoff do bgproc;
if b1 <> 0 then begin c:=b1;
BlockwRite(f2,wrbuf1,b1,b1);end;
Close(f2);
Close(f1);
end.
как вообще правильно?
← →
HekTo (2002-07-25 13:48) [1]> procedure onclosewin(sender:pobj;var accept:boolean);
procedure onclosewin( dummy: pointer; sender:pobj;var accept:boolean);
Это как минимум. А вообще трудно понять что и как в таком листинге...
← →
zetta (2002-07-25 14:07) [2]за dummy: pointer; спасибо.
но еще помимо 216 вылетает 255 ошибка.
readstr и wrstr1 работают с буфером.
запрашивается имя входного, выходного файла, настраивается окошко, открываются файлы, запускается цикл и закрываются файлы.
← →
HekTo (2002-07-26 01:38) [3]Прогони эту программу при помощи F7/F8 и посмотри где конкретно вылетает ошибка - так будет проще понять что не так...
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c