Advertisement
Guest User

Untitled

a guest
Mar 15th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.23 KB | None | 0 0
  1. program cursach;
  2.  
  3. { C:\Users\Данила\Desktop\Курсовой проект\Test.txt }
  4. uses
  5.     System.SysUtils;
  6.  
  7. Type
  8.     TLettersBox = array of string;
  9.  
  10. Var
  11.     TestStr: string;
  12.     ArrStr: TLettersBox;
  13.     Size, TestI, TestScorer: integer;
  14.     TestFile: TextFile;
  15.  
  16. procedure OpenFileToStr(Var AnyString: string);
  17. Var
  18.     buff, FilePath: string;
  19.     Archiv: TextFile;
  20. begin
  21.     writeln('Укажите путь к файлу');
  22.     readln(FilePath);
  23.     AssignFile(Archiv, FilePath);
  24.     Reset(Archiv);
  25.     while not EOF(Archiv) do
  26.     begin
  27.         readln(Archiv, buff);
  28.         AnyString := AnyString + buff;
  29.     end;
  30.     CloseFile(Archiv);
  31. end;
  32.  
  33. procedure LettersTable(Var AnyStr: string;
  34.     Var ArrOfStr: TLettersBox; Var SizeOfArr: integer);
  35. Var
  36.     i, j, k, LengthOfStr, LetAmount, RealLength: integer;
  37.     Symble, SymbleCmp: Char;
  38.     flag: boolean;
  39. begin
  40.     SetLength(ArrOfStr, Length(AnyStr));
  41.     LengthOfStr := Length(AnyStr);
  42.     SizeOfArr := LengthOfStr;
  43.     i := 0;
  44.     k := 0;
  45.     RealLength := Length(AnyStr);
  46.     WHILE i <= RealLength do
  47.     begin
  48.         i := 1;
  49.         j := i;
  50.         LetAmount := 0;
  51.         flag := True;
  52.         Symble := AnyStr[i];
  53.         while (j <= RealLength) and flag do
  54.         begin
  55.             if Symble = AnyStr[j] then
  56.             begin
  57.                 inc(LetAmount);
  58.                 Delete(AnyStr, j, 1);
  59.                 Dec(j, 2);
  60.             end;
  61.             inc(j);
  62.             RealLength := Length(AnyStr);
  63.             if (j > RealLength) or (j < 0) or (RealLength = 0)
  64.             then
  65.                 flag := false
  66.         end;
  67.         RealLength := Length(AnyStr);
  68.         if Symble = ' ' then
  69.             ArrOfStr[k] := '[space] ='
  70.         else
  71.             ArrOfStr[k] := '[' + Symble + '] =';
  72.         inc(k);
  73.         ArrOfStr[k] := IntToStr(LetAmount);
  74.         inc(k);
  75.         LetAmount := 0;
  76.     end;
  77.     i := 0;
  78.     flag := True;
  79.     while (i <= SizeOfArr) and flag do
  80.     begin
  81.         if ArrOfStr[i] = '' then
  82.         begin
  83.             SetLength(ArrOfStr, i);
  84.             SizeOfArr := i;
  85.             flag := false;
  86.         end;
  87.         inc(i);
  88.     end;
  89.  
  90. end;
  91.  
  92. begin
  93.     OpenFileToStr(TestStr);
  94.     LettersTable(TestStr, ArrStr, Size);
  95.     AssignFile(TestFile,
  96.         'C:\Users\Данила\Desktop\Курсовой проект\Results.txt');
  97.     Rewrite(TestFile);
  98.     TestScorer := 0;
  99.     for TestI := 0 to Size - 1 do
  100.     begin
  101.         inc(TestScorer);
  102.         write(TestFile, ArrStr[TestI]);
  103.         if TestScorer = 2 then
  104.         begin
  105.             write(TestFile, '; ');
  106.             TestScorer := 0;
  107.         end;
  108.     end;
  109.     CloseFile(TestFile);
  110.     readln;
  111.  
  112. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement