Alex_Fomin

Program54.pas

Jan 10th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.18 KB | None | 0 0
  1. uses
  2.   System.IO;
  3.  
  4. const
  5.   SE_TXT_INPUT = 'input.txt';// Имя входного текстового файла
  6.  
  7. type
  8.   structure = record // Структура записи
  9.     params1: string[20];// Поле "Фамилия спортсмена"
  10.     params2: string[20];// Поле "Вид спорта"
  11.     params3: integer;// Поле "Возраст спортсмена"
  12.     params4: integer;// Поле "Продолжительность занятия спортом"
  13.   end;// The end structure
  14.  
  15. function Declension(x: byte): string;
  16. begin
  17.   var temp := x <= 9 ? #32 + x + #32 : IntToStr(x) + #32;
  18.   if x in [11..14] then Result := temp + 'лет'
  19.   else
  20.     case x mod 10 of
  21.       1: Result := temp + 'год';
  22.       2..4: Result := temp + 'года';
  23.       0, 5..9: Result := temp + 'лет';
  24.     end;
  25. end;
  26.  
  27. begin
  28.   try
  29.     var arr: array of structure := new structure[0];// Объявим массив для хранения данных
  30.     var file1 := OpenRead(SE_TXT_INPUT);// Открываем файл "SE_TXT_INPUT" для чтения
  31.     while not file1.Eof do
  32.     begin
  33.       var temp := file1.ReadlnString.Split(#44); // Считываем строку из файла "SE_TXT_INPUT" и формируем массив
  34.       SetLength(arr, Succ(arr.Length));// Выделяем память
  35.       with arr[Pred(arr.Length)] do// Разбиваем строку на поля
  36.       begin
  37.         params1 := temp[0];
  38.         params2 := temp[1];
  39.         params3 := StrToInt(temp[2]);
  40.         params4 := StrToInt(temp[3]);
  41.       end;
  42.     end;
  43.     file1.Close;// Закрываем файл "SE_TXT_INPUT"
  44.    
  45.     WriteLn(Информация);
  46.     for var i := Low(arr) to High(arr) do// Выведим на экран спортсменов, которые занимаются плаванием
  47.     begin
  48.       if arr[i].params2.ToLower = 'плавание' then
  49.         with arr[i] do
  50.           WriteLn(params1 + #9 + Declension(params3) + #9 + 'занимается ' + params2 + 'м ' + #9 + Declension(params4));
  51.     end;
  52.   except
  53.     on Exception do
  54.       writeln('Ошибка: Файл "' + SE_TXT_INPUT + '" не найден :(');
  55.   end;
  56. end.
Add Comment
Please, Sign In to add comment