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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 18:18   #1
Chief
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 29
По умолчанию Файлы,запись

Напечатать фамилии мальчиков,которые имеют вес больше,чем средний по классу.
Я напечатал фамилии через строку,а между ними пол и вес соответствующего ученика.Вот только понять не могу как считать с файла,фамилии в u.fam(u:ucenik(запись),fam(поле записи)),а вес и пол в u.ves,и в u.pol соответственно?
Код:
uses crt;
type ucenik=record;
            fam:string[15];
            ves:byte;
            pol:char;
var
      u:ucenik;
      f:file of ucenik;
      
begin
    assign(f,'spisok_ucen.pas');
    reset(f);
      while not eof(f) do
           ...
Chief вне форума Ответить с цитированием
Старый 28.05.2009, 21:27   #2
ponchikpk
Пользователь
 
Аватар для ponchikpk
 
Регистрация: 09.03.2009
Сообщений: 63
По умолчанию

можешь считать всю строку из файла а потом в ней посимвольно идти до пробела и записывать фамилию потом до следующего пробела вес и с полом соответственно
ponchikpk вне форума Ответить с цитированием
Старый 28.05.2009, 21:29   #3
Doholyan
Форумчанин
 
Регистрация: 26.04.2009
Сообщений: 270
По умолчанию

напиши функцию....прочитать( с файла, переменная)
readLn(F,ucenik);
и вывведи на екран
write(ucenik);
Doholyan вне форума Ответить с цитированием
Старый 28.05.2009, 21:49   #4
Chief
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 29
По умолчанию

Цитата:
Сообщение от ponchikpk Посмотреть сообщение
можешь считать всю строку из файла а потом в ней посимвольно идти до пробела и записывать фамилию потом до следующего пробела вес и с полом соответственно
так?
Код:
while not eof(f) do
           begin
              u.fam:='';
                  while c<>'_' do
                     begin
                        read(f,c);
                        u.fam:=u.fam+c
                     end;
он выдаёт ошибку на "с"(type mismatch),"с"=char;
Chief вне форума Ответить с цитированием
Старый 28.05.2009, 21:51   #5
Chief
Пользователь
 
Регистрация: 29.12.2008
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Doholyan Посмотреть сообщение
напиши функцию....прочитать( с файла, переменная)
readLn(F,ucenik);
и вывведи на екран
write(ucenik);
а как присвоить фамилий,вес,и пол,переменным?
Chief вне форума Ответить с цитированием
Старый 31.05.2009, 19:41   #6
diliana
Форумчанин
 
Аватар для diliana
 
Регистрация: 24.05.2009
Сообщений: 119
По умолчанию

Цитата:
Сообщение от Chief Посмотреть сообщение
Напечатать фамилии мальчиков,которые имеют вес больше,чем средний по классу.
Я напечатал фамилии через строку,а между ними пол и вес соответствующего ученика.Вот только понять не могу как считать с файла,фамилии в u.fam(u:ucenik(запись),fam(поле записи)),а вес и пол в u.ves,и в u.pol соответственно?
Код:
uses crt;
type ucenik=record;
            fam:string[15];
            ves:byte;
            pol:char;
var
      u:ucenik;
      f:file of ucenik;
      
begin
    assign(f,'spisok_ucen.pas');
    reset(f);
      while not eof(f) do
           ...
все это решается с помощью типизированного файла в который вам надо записать ваши данные
TypizFile=file of ucenik;
обьявили переменную f:TypizFile;
а далее как обычно
Код:
 begin
    assign(f,'spisok.dat');
    reset(f);
      while not eof(f) do begin
diliana вне форума Ответить с цитированием
Старый 31.05.2009, 19:47   #7
diliana
Форумчанин
 
Аватар для diliana
 
Регистрация: 24.05.2009
Сообщений: 119
По умолчанию

Цитата:
Сообщение от Chief Посмотреть сообщение
а как присвоить фамилий,вес,и пол,переменным?
а для этого создается массив записей
ну например
Код:
TMasUch=array [1..n] of uchenik;
обьявите переменную boy:TMasUch;
соответственно доступ к элементам массива будет boy[i].ves (вес мальчика)

Последний раз редактировалось diliana; 31.05.2009 в 19:50.
diliana вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Польская запись azl-8 Помощь студентам 0 06.05.2009 20:19
Запись и файлы Bek Помощь студентам 1 19.03.2009 09:12
запись CD chekanoff Общие вопросы Delphi 2 10.04.2008 00:04
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53