Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.12.2014, 20:47
glozigor glozigor вне форума
Прохожий
 
Регистрация: 16.12.2014
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
Восклицание Помощь с типизированным файлом

В анкетах сотрудников некоторого учреждения имеются следующие сведения: фамилия, имя, отчество,год рождения, должность(мастер, инженер, рабочий), стаж, образование. Вывести фамилии, имена и отчества мастеров с высшим образованием и вычислить их средний стаж.
Ввод файла нужен из блокнота:
Ivanov Igor Bor 1970 master 20 vishee
Petrov Sergey Ser 1966 master 3 vishee
Но чтобы я не вводил, результат одинаковый: Нет мастеров с высшим образованием.
В чем ошибка?
Вот программа:
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;
type sved=record     {zapis}
       fam:string[10];     {polia zapisi}
       im:string[10];
       ot:string[10];
       god:word;
       dol:string[10];
       staj:real;
       obr:string[10];
     end;
var b:sved;                     {peremen tipa zapis}
    k:integer;           {kol}
    sr:real;              {sred staj }
    f:file of sved;    {tipizip file }
    imf:string[25];          {imia file}
begin                       {glav progr}
  writeln('Vvedite imia file');
  readln(imf);                         {vvod imia file}
  assignfile(f,imf);                       {svias fil peremen s imen file}
  {$I-}
 reset(f);
   {$I+}
 if ioresult=2 then             {result prover suchestv file}
  writeln('File net')
  else
  begin
  k:=0;
  sr:=0;
 
  while not eof (f) do        {poka net konca file}
    begin
     read (f,b);              {chiraem zapis is file}
     with b do
     begin
    if (dol='master') and (obr='vishee') then       {prover uslov}
    begin
        k:=k+1;                       {kol udovl uslov}
        sr:=sr+staj;                  {summ staj udovl uslov}
        Writeln(fam:10,im:10,ot:10);   {vivod udovl uslov}
     end;
     end;
   end;
     if k=0 then
  writeln('Net masterov s vishim obrazov')
     else
     begin
  writeln('Kol-vo masterov s vishim obrazov=',k);
  sr:=sr/k;                                  {sred staj udovl uslov}
  writeln('Sred staj masterov s vishim obrazov=',sr:6:2);
   end;
   end;
   closefile(f);
   readln;
   end.
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 16.12.2014 в 20:50.
Ответить с цитированием
  #2  
Старый 16.12.2014, 21:17
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Можно всю строчку проверить на if Pos('vishee', s) > 0
Ответить с цитированием
  #3  
Старый 16.12.2014, 21:33
glozigor glozigor вне форума
Прохожий
 
Регистрация: 16.12.2014
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Я не понял
Ответить с цитированием
  #4  
Старый 16.12.2014, 21:42
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Есть просто подозрение что obr = string[10], а при сравнении obr = 'vishee' т.е. string[6]
Ответить с цитированием
  #5  
Старый 16.12.2014, 21:52
glozigor glozigor вне форума
Прохожий
 
Регистрация: 16.12.2014
Сообщения: 5
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Я проверил. Не помогает.
Ответить с цитированием
  #6  
Старый 16.12.2014, 21:55
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Покажите пжлст "файл из блокнота" для проверки
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025