Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 20000 рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.03.2021, 21:17   #1
Dextex
Новичок
Джуниор
 
Регистрация: 09.03.2021
Сообщений: 3
По умолчанию Работа с текстовым файлом

Нужно, чтобы программа помимо вывода в результирующий файл среднего возраста и роста студентов, выводила фамилию и имя студентов, проживающих в городе, название которого будет введено с клавиатуры.
Anketnye_dannye (2).txt
Код:
const
  g = 2021;
  inpname = 'Anketnye_dannye.txt';
  outname = 'Result.txt';
var
  tr, tw, n, errg, errr: integer;
  r, w: real;
  s: string;
  f: text;
 
begin
  assign(f, inpname);
  reset(f);
  for n := 1 to 3 do readln(f);
  n := 0;
  while not eof(f) do
    begin
      readln(f, s);
      val(copy(s, length(s) - 5, 3), tr, errr);
      val(copy(s, pos('.', s) + 4, 4), tw, errg);
      if errr + errg = 0
        then begin
          inc(n);
          r := r + tr;
          w := w + g - tw
        end
        else break
    end;
  close(f);
  if (errr + errg = 0) and (n > 0)
    then begin
      r := r / n;
      w := w / n;
      assign(f, outname);
      rewrite(f);
      writeln(f, 'Средний рост студентов: ', r:0:2);
      writeln(f, 'Средний возраст студентов: ', w:0:2);
      close(f);
      write('Результат записан в файл ', outname)
    end
    else write('Входной файл ', inpname, ' имеет неверный формат');  
end.
Dextex вне форума Ответить с цитированием
Старый 10.03.2021, 11:12   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 3,378
По умолчанию

Тут зависит от того - когда введено название города. Если до чтения файла, то в обработке каждой строки дополнительно проверять на совпадение. Иначе придётся второй раз заново читать файл. Я бы организовал массив строк - сначала чтение файла, потом - обработка.
Поиск - просто: все родились, надеюсь, в этом тысячелетии? Ищем подстроку '.20', отступаем вперёд сколько надо (мне считать лень) и копируем остаток строки до пробела. И - вот вам ваш Сыктывкар.
digitalis вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовым файлом Roberttt Общие вопросы C/C++ 1 10.06.2018 16:32
работа текстовым файлом erorai 1990 Помощь студентам 2 11.02.2012 21:09
Работа с текстовым файлом DavioN Помощь студентам 13 08.02.2012 14:10
Работа с текстовым файлом lavnikov1 Помощь студентам 2 29.06.2011 19:29
Работа с текстовым файлом Mashul'ka Помощь студентам 1 03.06.2009 22:26


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS