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

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

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

 
 Ответить  Открыть новую тему 
> Адресная книга
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


Привет всем. Не могу добить задачу. Чета в ней не работает: толи запись в файл, толи вывод данных из файла.
Вот:
Program address_book;
uses crt;
type
book=record
fam:string[25];
name:string[15];
otch:string[25];
street:string[30];
n_h, n_at,n_ph:integer;
end;
var
s:array[1..100] of book;
f:file of book;
i,n,a:integer;
b:book;
begin
repeat
clrscr;
writeln('Menu');
writeln;
writeln('1 - Vvesti dannie v adresnui-o knigy');
writeln('2 - Prosmotret adresnyi-o knigu');
writeln('3 - Exit');
readln(a);
case a of
1: begin
clrscr;
assign(f,'file_');
rewrite(f);
write('Vvedite kol-vo zapisei: '); readln(n);
for i:=1 to n do
with s[i] do
begin
writeln;
write(i:2,' ');
write('Familiya: '); readln(fam);
write(' Name: '); readln(name);
write(' Otchestvo: '); readln(otch);
write(' Nazvanie ylici: '); readln(street);
write(' N doma: '); readln(n_h);
write(' N kvartiri: '); readln(n_at);
write(' N telephona: '); readln(n_ph);
write(f,s[i]);
end;
close(f);
end;
2: begin
assign(f,'file_');
reset(f);
while not eof(f) do
read(f,s[i]);
with s[i] do
begin
writeln(fam);
writeln(name);
writeln(otch);
writeln(street);
writeln(n_h);
writeln(n_at);
writeln(n_ph);
end;
end;
end;
until a=3;
repeat until keypressed;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


Файл создается, данные в него пишутся. Ошибка в выводе на экран.
while not eof(f) do
begin // тут забыл поставить, иначе у тебя только последнюю запись покажет
read(f,s[i]);
with s[i] do
begin
writeln(fam);
writeln(name);
writeln(otch);
writeln(street);
writeln(n_h);
writeln(n_at);
writeln(n_ph);
end;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

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


Благодарю, все робит.
Кстати можно еще readln поставить между end'ами, а то у меня с такой скоростью данные отобрадает на экране, что я не успеваю их просмотреть, такое ощущение, что программа вообще ниче не отображает smile.gif.
Спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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