IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Записи с вариантами, Обращение к вариантному полю.
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 55
Пол: Женский
Реальное имя: АнЯ

Репутация: -  0  +


В общем есть такая программка, в типизированный файл заносит определенное количество вариантных записей, при чем вариантные поля у каждой записи могут быть различны. За тем вторая процедура считывает из файла данные по определенному (заданному пользователем) признаку. Обращение идет через поле признака (значение 1 или 2 в операторе выбора case). Вопрос такой- каким еще способом можно осуществить вывод на экран записей с определенным признаком (с тем вариантным полем, которое нас интересует). Предполагаю - что мой способ самый простой.
Заранее спасибо)) rolleyes.gif

Program failo_reco;
Uses crt;
Type rec=record
A:real;
B:integer;
case c:integer of
1: (as:string);
2: (bs:char;cs:string);
end;
var r:rec;
f:file of rec;
n,i:integer;
q:char;
Procedure vvod_v_fail;
begin
assign(f,'1.dat');
rewrite(f);
for i:=1 to 5 do
begin
clrscr;
with r do
begin
writeln('Введите вещественное значение '); readln (a);
writeln('Введите целое значение '); readln (b);
writeln('Выберите 1 или 2'); readln©;
case c of
1:begin writeln('Введите строку ');
readln (as); end;
2: begin
writeln('Введите символ '); readln (bs);
writeln('Введите строку '); readln (cs); end;
end; {конец case}
write(f,r);
end;
end;
close(f);
end;
Procedure read_po_priz;
begin
clrscr;
writeln('Выберите 1 или 2');
readln(n);
assign(f,'1.dat');
reset(f);
for i:=1 to filesize(f) do begin
read (f,r);
if r.c = n then begin
with r do
begin
write(' a=',a:2:2);
write(' b=',b);
case c of
1: write(' as=',as);
2: begin write(' bs=',bs);write(' cs=',cs);end;
end;
writeln;
end;
end;
end;
end;

Begin

clrscr;
q:=readkey;
case q of
'1': vvod_v_fail;
'2': read_po_priz;
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.04.2024 13:56
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name