Lise yıllarında (1998) Pascal’da yazdığım uninstall manager programı. Herşeyin kodla yapıldığı dönemlerde yazdığım umutsuz programlardan birisi daha. Ardı gelmedi. Gelemedi. Windows’a geçtik. Programın öne çıkan teknik özellikleri şöyle; tab ile kontrol edilebilen metin kutusu düğme ve dosya listeleme nesnesi. Dizin içeriği özetini dosya türlerine göre özetleme. Program çalışması mantığı şöyle. Mevcut bir dizini alt dizinleri ile beraber kaydettikten sonra, dizine eklenen yeni dosya ve dizinleri tespit ederek silinmesi için seçenek sunuyor. MSDOS işletimi sisteminiz yoksa programı çalıştırmak için DOSBox’a ihtiyacınız var.
umanager
[Yükleme bulunamadı.]

Diğer ödev programlar için eski siteme (okoca.cjb.net) bakabilirsiniz. Programın ana kod bloğu şöyle.

begin
btc(0,15);window(1,1,80,25);clrscr;
lowvideo;
rectang(50,5,65,22,'t');rectang(68,5,79,22,'t');
rectang(1,1,80,3,'t');rectang(1,4,47,22,'t');
gtxy(3,25);
highvideo;tc(15);write('F1');lowvideo;write('- Yardm');
highvideo;tc(15);write('   F2');lowvideo;write('- Gncelle');
highvideo;tc(15);write('   F3');lowvideo;write('- KarŸlaŸtr');
highvideo;tc(15);write('   ENTER');lowvideo;write('- Listele');
highvideo;tc(15);write('     ESC');lowvideo;write('- €kŸ');
highvideo;gtxy(50,4);write('Dosya');gtxy(68,4);write('Hacim');
gtxy(3,21);tc(7);write('UnInstall Menager v1.0      OK - EKIM 98');
privateKey:=[#27,#13];
privateKey0:=[#59,#60,#61,#77,#75,#72,#80];
for f1:=6 to 19 do begin fname[f1]:='';;fsize[f1]:=0;end;
getdir(0,path); path:=path+'\*.*';
repeat
cikis:=inputboxSTR(3,2,75,0,0,15,15,privateKey0,privateKey,path,path);
case cikis of
13:begin
boxclear;boxclear2;
coff;
degsifirla;
window(1,1,80,25);
ordinat:=6;
counter:=6;
findfirst(path,archive+hidden+readonly+systems,privates);
error:=DosError;
while error=0 do
begin
error:=DosError;
if keypressed then
begin
tus:=readkey;
if tus=#27 then exitprogram;
if tus in [#3,#8,#79] then error:=1;
end;
if counter>=21 then
begin
boxclear2;
btc(0,15);gtxy(5,6);write('Listeleniyor  .  .  .');
delay(25);
coff;
bc(1);window(51,6,64,21);clrscr;
window(69,6,78,21);clrscr;
window(1,1,80,25);
for f1:=6 to 21 do
begin
sizef:=fsize[f1];
if fsize[f1]=21 }
name:= privates.name;
size:= privates.size;
procount(name,size);
allsize:=allsize+privates.size;
findnext(privates);
counter:=counter+1;
if counter>21 then
begin
for f1:=7 to 21 do
begin
fname[f1-1]:=fname[f1];
fsize[f1-1]:=fsize[f1];
end;
fname[21]:=privates.name;
fsize[21]:=privates.size;
end { counter>21 then}
else
begin
fname[counter]:=privates.name;
fsize[counter]:=privates.size;
end; { counte>21 else}
end; { while do}
if fsize[7]=0 then
begin
tc(11);beep(510,510);
gtxy(51,6);write('Bulunamad...');
gtxy(77,6);write('-');
end
else
begin
if counter                  begin
boxclear2;
btc(0,15);gtxy(5,6);write('Listeleniyor  .  .  .');
delay(600);
bc(1);window(51,6,64,21);clrscr;
window(69,6,78,21);clrscr;
window(1,1,80,25);
for f1:=7 to counter do
begin
sizef:=fsize[f1];
if fsize[f1]                     else
begin
birim:=true;
sizef:=round(fsize[f1]/1000);
end;
tc(11);gtxy(51,f1-1);write(fname[f1]);
tc(10);gtxy(69,f1-1);write(sizef:8);
tc(11);if birim then write(' K')
else begin tc(15);write(' B');end;
end; { for f1 6 to 21}
end; { if counter<=21}
end;
boxclear2;
prowrite(allsize);
end;{ case cikis=13}
60:begin
savescreen(crt1);
btc(0,15);
effectrectang(10,2,70,15,15);
gtxy(13,4);write('Gncellenecek Olan:');
gtxy(16,6);write(path);
path2:=path;
for f1:=length(path2) downto 1 do
begin
if path2[f1]<>'\' then delete(path2,f1,1)
else f1:=1;
end;
btc(0,15);window(13,8,69,8);clrscr;
write(path2);
findfirst(path,archive+hidden+readonly+systems,privates);
coff;
dosay:=0;
dosize:=0;
doserror:=0;
btc(0,15);window(13+length(path2),8,69,8);clrscr;
error:=doserror;
recdeg0;
while error=0 do
begin
filename[dosay]:=privates.name;
filesize[dosay]:=privates.size;
error:=doserror;
dosay:=dosay+1;
if keypressed then
begin
tus:=readkey;
if tus in [#3,#8,#79,#27] then error:=1;
end;
dosize:=dosize+privates.size;
clrscr;write(privates.name);
findnext(privates);
end;
window(1,1,80,25);btc(0,15);
gtxy(16,10);
tc(15);write(dosay);
tc(11);write(' Adet Dosyada Toplam ');
tc(15);write(dosize);
tc(11);write(' Byte gncelleniyor');
recsave(path);
tc(7+16);gtxy(32,13);write('Bir tuŸa basn . . .');
repeat
tus:=readkey;
until tus<>#0;
getscreen(crt1);
end;
27:exitprogram;
end; {case cikis of }
until cikis=59;
end.

CEVAP VER