Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 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
Сообщений: 4,546
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


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