Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 5.05 KB | None | 0 0
  1. Program FindPas;
  2. Uses Dos,crt;
  3. Type
  4.    List = record
  5.            fName: string[20];
  6.            Date: string[10];
  7.            Hour: string;
  8.            Size: longint;
  9.            Attr: boolean;
  10.            Sc: integer;
  11.         end;
  12.  
  13. Var
  14. Date:DateTime;   {}
  15. Fil:SearchRec;   {}
  16. Plist: array [1..100] of List;
  17. Imya,StrI,c,im,pas,textF,nameFolder, nameFolderDel: string;
  18. Hour, Min, Sec: string;
  19. Day, Month, Year: string;
  20. I,j,m,l,s,p: integer;
  21. F: file;
  22. dir:dirstr;
  23. nam: namestr;
  24. ext: extstr;
  25. fText: text;
  26. SimvViv:char;
  27. ParamStr: pathstr;
  28. k: longint;
  29. key: char;
  30.  
  31.   function Menu(m: integer):integer;
  32.     Begin
  33.         ClrScr;
  34.         Writeln('F1 - ', '    ', 'F2 - Open a text document','        ',
  35.               'F3 - Create a text document', '      ', 'F4 - Delete a file', '              ',
  36.               'F5 - Delete empty directory','       ', 'F6 - Search for a file in a directory','    ',
  37.               'ESC - Exit');
  38.         Writeln;
  39.     End;
  40.  
  41. function I2S(i : integer):string;
  42. var
  43. l : string;
  44. begin
  45. I2S := '';
  46. str(i,l);
  47. I2S := l;
  48. end;
  49.  
  50. Procedure EntName(StrI: string);
  51.     Begin
  52.          {Poluchit put v tekusch katalog}
  53.  I:= length(nameFolder);
  54.  StrI:= nameFolder;
  55.  For j:=1 to i do
  56.    Begin
  57.      If StrI[j]='.' then
  58.        If (StrI[j+1]='p') or
  59.           (StrI[j+1]='e') or
  60.           (StrI[j+1]='b') or
  61.           (StrI[j+1]='d') or
  62.           (StrI[j+1]='s') or
  63.           (StrI[j+1]='t') or
  64.           (StrI[j+1]='*') then
  65.        Begin
  66.          Delete(StrI,j,5);
  67.          m:=j;
  68.          while StrI[m]<>'\' do
  69.          begin
  70.          m:=m-1;
  71.          Delete(StrI,m,1);
  72.          NameFolder:=StrI;
  73.          end;
  74.          Break;
  75.        End;
  76.      End;
  77.     End;
  78.    
  79. Procedure enterFolder(nameFolder:string);
  80.   Begin
  81.    {Vivod elementov dannoy directorii}
  82.    i:=0;
  83.    FindFirst (nameFolder+'*.*',Directory,Fil);
  84.    While DosError=0 do
  85.      Begin
  86.        i:=i+1;
  87.        FSplit(Fil.name, dir,nam,ext);
  88.        UnpackTime (Fil.Time,Date);
  89.        PList[i].fName:=nam+ext;
  90.    
  91.        If Date.Day <10 then
  92.             Day:='0'+I2S(Date.Day)
  93.        Else Day:=I2S(Date.Day);
  94.    
  95.        If Date.Month <10 then
  96.             Month:='0'+I2S(Date.Month)
  97.        Else Month:=I2S(Date.Month);
  98.    
  99.        Year:= I2S(Date.Year);
  100.    
  101.        PList[i].Date:=Day+'.'+Month+'.'+Year;
  102.    
  103.        If Date.Hour <10 then
  104.             Hour:='0'+I2S(Date.Hour)
  105.        Else Hour:=I2S(Date.Hour);
  106.    
  107.        If Date.Min <10 then
  108.             Min:='0'+I2S(Date.Min)
  109.        Else Min:=I2S(Date.Min);
  110.    
  111.        If Date.Sec <10 then
  112.             Sec:='0'+I2S(Date.Sec)
  113.        Else Sec:=I2S(Date.Sec);
  114.    
  115.        PList[i].Hour:=Hour+':'+Min+':'+Sec;
  116.        PList[i].Size:=Fil.Size;
  117.        PList[i].Sc:=PList[i].Sc+1;
  118.  
  119.        FindNext(Fil);
  120.        j:=i;
  121.      End;
  122.      Menu(m);
  123.      For i:=1 to j do
  124.        Begin
  125.        WriteLn(PList[i].fName:20, PList[i].Date:15, PList[i].Hour:10,PList[i].Size:10,' byte.');
  126.      End;
  127.   End;
  128.  
  129. Procedure createTextFile ();
  130.   Begin
  131.     Writeln('Im sozd');
  132.     Readln(Im);
  133.     Im:=nameFolder+'\'+Im;
  134.     Assign(FText,Im);
  135.     Rewrite(FText);
  136.     Writeln('Vv text');
  137.     Readln(TextF);
  138.     Writeln(FText,TextF);
  139.     Close(FText);
  140.     Writeln('sozd');
  141.   End;
  142.  
  143. Procedure enterTextF();
  144.   Begin
  145.     Im:=nameFolder+'\'+Plist[m-3].fname;
  146.     assign (FText,im);
  147.     reset(FText);
  148.     While not eof(FText) do
  149.       begin
  150.         read(FText,SimvViv);
  151.         write(SimvViv);
  152.       end;
  153.     close(FText);
  154.   End;
  155.  
  156. BEGIN
  157.  TextBackGround (3);
  158.  Textcolor(5);
  159.  GotoXY(1,1);
  160.  ClrScr;
  161.  
  162.  m:=1;
  163.  nameFolder:='C:\';
  164.  enterFolder(nameFolder);
  165.  
  166.  Repeat
  167.  key:= ReadKey;
  168.  Case key of
  169.         #50:
  170.             Begin
  171.                 M:=m+1; write(m);
  172.                 GotoXY(1,m);
  173.                                 If Key=chr(13)then
  174.                                     Begin
  175.                                         NameFolder:= nameFolder + Plist[m-3].fname+'\';
  176.                                         EnterFolder(nameFolder);WriteLn(nameFolder);
  177.                                         m:=3;
  178.                                     End;                               
  179.             End;
  180.        
  181.         #56:
  182.             Begin
  183.                 M:=m-1;
  184.                 GotoXY(1,m);
  185.                 If Readkey=chr(13) then
  186.                     Begin
  187.                         NameFolder:= nameFolder + Plist[m-3].fname+'\';
  188.                         EnterFolder(nameFolder);
  189.                         m:=3;
  190.                     End;
  191.             End;
  192.  
  193.         #49: {Open a text document. 1}
  194.             Begin
  195.                 ClrScr;
  196.                 Writeln(PList[m-3].fname);
  197.                 Writeln;
  198.                 enterTextF();
  199.                 Writeln;
  200.                 Writeln('To exit, click BackSpace.');
  201.                 EntName(nameFolder);
  202.                 If Readkey = chr(8) then
  203.                         enterFolder(nameFolder);
  204.                 m:=3;
  205.             End;
  206.            
  207.         #61: {Create a text document. F3}   {Ne menyat}
  208.             Begin
  209.                 Writeln(nameFolder);
  210.                 CreateTextFile();
  211.                 enterFolder(nameFolder);
  212.             End;
  213.  
  214.         #51: {Delete a file. F4}
  215.             Begin
  216.                 Im:=nameFolder+Plist[m-3].fname;
  217.                 Assign(f,Im);
  218.                 Erase(f);
  219.                 enterFolder(nameFolder);
  220.             End;
  221.  
  222.         #52: {Delete empty Directory}
  223.             Begin
  224.                 NameFolderDel:=nameFolder+PList[m-3].fname;
  225.                 RmDir(nameFolderDel);
  226.                 EnterFolder(nameFolder);
  227.             End;
  228.  
  229.         #53: {Search for a file in a directory}
  230.             Begin
  231.                 Writeln('Enter the name and extension of the file you want to find in this directory.');
  232.                 Readln(Imya);
  233.                 nameFolder:=nameFolder+'\'+Imya;
  234.                 enterFolder (nameFolder);
  235.                 Readln;
  236.                 EntName(nameFolder);
  237.                 EnterFolder(nameFolder);
  238.                 Writeln(nameFolder);
  239.             End;
  240.  End;
  241.  Until key=сhr(27);
  242. End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement