Uninstall Manager programı Pascal kaynak kodları

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.

Yazar: Özgür Koca

Yazar - Tankado.com

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.