![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Brad Bellick |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Реальное имя: Bellick Репутация: ![]() ![]() ![]() |
Здравствуйте! С помощью добрых людей, по теории пытался доделать программу:
Информация про читателей библиотеки: регистрационный номер, имя, фамилия, серия и номер паспорта, количество взятых книг, дата сдачи книги(дата в формате: Деня.Месяц.Год, пример 12.02.2008). В программе нужно взять сегоднейшее число и на экран вывести, всех тех читателей кому надо было сдать книги до этого числа (сегоднейшего). Все это еще надо записать в файл. Но почему-то не получается записать информацию в файл. Вот что у меня вышло на данный момент: uses crt,dos; type Lib_TP=record reg_nomer:integer; imja:string[20]; familija:string[25]; pasport_serija, pasport_nr:integer; cislo_knig:integer; cislo, mesjac, god :integer; end; var ba:Lib_TP; ba_fail:FILE of Lib_TP; dg_fail:text; a:byte; y, m, d, dow : Word; procedure dolg; begin writeln('reg_nomer:',ba.reg_nomer); writeln(dg_fail,ba.reg_nomer); writeln('imja:',ba.imja); writeln(dg_fail,ba.imja); writeln('familija:',ba.familija); writeln(dg_fail,ba.familija); writeln('pasport_serija:',ba.pasport_serija); writeln(dg_fail,ba.pasport_serija); writeln('pasport_nr:',ba.pasport_nr); writeln(dg_fail,ba.pasport_nr); writeln('cislo_knig:',ba.cislo_knig); writeln(dg_fail,ba.cislo_knig); writeln('cislo:',ba.cislo); write(dg_fail,ba.cislo); writeln('mesjac:',ba.mesjac); write(dg_fail,'.',ba.mesjac); writeln('god:',ba.god); write(dg_fail,'.',ba.god); end; Begin clrscr; writeln('Ukazite deistvie:'); writeln('1 = dobavit zapis;'); writeln('2 = prosmotret zadoljenosti i pomestit v file.'); readln(a); assign(ba_fail,'4itateli.dat'); assign(dg_fail,'dolgi.dat'); rewrite(dg_fail); if a=1 then begin writeln('Vvedite reg_nomer:'); readln(ba.reg_nomer); writeln('Vvedite imja:'); readln(ba.imja); writeln('Vvedite familija:'); readln(ba.familija); writeln('Vvedite pasport_serija:'); readln(ba.pasport_serija); writeln('Vvedite pasport_nr:'); readln(ba.pasport_nr); writeln('Vvedite cislo_knig:'); readln(ba.cislo_knig); writeln('Vvedite cislo:'); readln(ba.cislo); writeln('Vvedite mesjac:'); readln(ba.mesjac); writeln('Vvedite god'); readln(ba.god); reset(ba_fail); write(ba_fail,ba); end else if a=2 then begin writeln('Dolgi'); GetDate(y,m,d,dow); reset(ba_fail); while not(eof(ba_fail)) do begin read(ba_fail,ba); if (ba.god<y) then dolg; if (ba.god=y)and(ba.mesjac<m) then dolg; if (ba.god=y)and(ba.mesjac=m)and(ba.cislo<=d) then dolg; end; readkey; end else writeln('Vi vveli nepravelnoe 4islo'); close(dg_fail); close(ba_fail); end. |
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
сколько раз можно говорить одно и то же - специальными тегами code пользуйтесь!
ну невозможно же такой код (хоть и зелененький) читать. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Brad Bellick |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Реальное имя: Bellick Репутация: ![]() ![]() ![]() |
Здравствуйте! С помощью добрых людей, по теории пытался доделать программу: Информация про читателей библиотеки: регистрационный номер, имя, фамилия, серия и номер паспорта, количество взятых книг, дата сдачи книги(дата в формате: Деня.Месяц.Год, пример 12.02.2008). В программе нужно взять сегоднейшее число и на экран вывести, всех тех читателей кому надо было сдать книги до этого числа (сегоднейшего). Все это еще надо записать в файл. Но почему-то не получается записать информацию в файл. Вот что у меня вышло на данный момент: uses crt,dos; type Lib_TP=record reg_nomer:integer; imja:string[20]; familija:string[25]; pasport_serija, pasport_nr:integer; cislo_knig:integer; cislo, mesjac, god :integer; end; var ba:Lib_TP; ba_fail:FILE of Lib_TP; dg_fail:text; a:byte; y, m, d, dow : Word; procedure dolg; begin writeln('reg_nomer:',ba.reg_nomer); writeln(dg_fail,ba.reg_nomer); writeln('imja:',ba.imja); writeln(dg_fail,ba.imja); writeln('familija:',ba.familija); writeln(dg_fail,ba.familija); writeln('pasport_serija:',ba.pasport_serija); writeln(dg_fail,ba.pasport_serija); writeln('pasport_nr:',ba.pasport_nr); writeln(dg_fail,ba.pasport_nr); writeln('cislo_knig:',ba.cislo_knig); writeln(dg_fail,ba.cislo_knig); writeln('cislo:',ba.cislo); write(dg_fail,ba.cislo); writeln('mesjac:',ba.mesjac); write(dg_fail,'.',ba.mesjac); writeln('god:',ba.god); write(dg_fail,'.',ba.god); end; Begin clrscr; writeln('Ukazite deistvie:'); writeln('1 = dobavit zapis;'); writeln('2 = prosmotret zadoljenosti i pomestit v file.'); readln(a); assign(ba_fail,'4itateli.dat'); assign(dg_fail,'dolgi.dat'); rewrite(dg_fail); if a=1 then begin writeln('Vvedite reg_nomer:'); readln(ba.reg_nomer); writeln('Vvedite imja:'); readln(ba.imja); writeln('Vvedite familija:'); readln(ba.familija); writeln('Vvedite pasport_serija:'); readln(ba.pasport_serija); writeln('Vvedite pasport_nr:'); readln(ba.pasport_nr); writeln('Vvedite cislo_knig:'); readln(ba.cislo_knig); writeln('Vvedite cislo:'); readln(ba.cislo); writeln('Vvedite mesjac:'); readln(ba.mesjac); writeln('Vvedite god'); readln(ba.god); reset(ba_fail); write(ba_fail,ba); end else if a=2 then begin writeln('Dolgi'); GetDate(y,m,d,dow); reset(ba_fail); while not(eof(ba_fail)) do begin read(ba_fail,ba); if (ba.god<y) then dolg; if (ba.god=y)and(ba.mesjac<m) then dolg; if (ba.god=y)and(ba.mesjac=m)and(ba.cislo<=d) then dolg; end; readkey; end else writeln('Vi vveli nepravelnoe 4islo'); close(dg_fail); close(ba_fail); end. program biblioteka; Добавлено через 1 мин. сколько раз можно говорить одно и то же - специальными тегами code пользуйтесь! ну невозможно же такой код (хоть и зелененький) читать. А вот так нормально? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата почему-то не получается записать информацию в файл. В какой именно файл? В текстовый все пишет прекрасно, а вот с типизированным проблема: будет все время перезаписываться первый элемент, поскольку ты открываешь файл, но не переводишь указатель на его конец... Добавь: reset(ba_fail);, тогда будут записываться и последующие читатели... Кстати, правило хорошего тона: что, если у пользователя еще нет файла '4itateli.dat'? Надо это проверить и создать его в таком случае, иначе рискуешь получить ошибку - открытые несуществующего файла. |
Brad Bellick |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Реальное имя: Bellick Репутация: ![]() ![]() ![]() |
В какой именно файл? В текстовый все пишет прекрасно, а вот с типизированным проблема: будет все время перезаписываться первый элемент, поскольку ты открываешь файл, но не переводишь указатель на его конец... Добавь: reset(ba_fail);, тогда будут записываться и последующие читатели... Кстати, правило хорошего тона: что, если у пользователя еще нет файла '4itateli.dat'? Надо это проверить и создать его в таком случае, иначе рискуешь получить ошибку - открытые несуществующего файла. Всеравно не записывает, да и в текстовый тоже нет |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата Всеравно не записывает Если бы я не проверял - то не сказал бы. У меня все прекрасно записывает, и типизированный файл, и текстовый. Хочешь - могу выслать и тот и другой. |
Brad Bellick |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Реальное имя: Bellick Репутация: ![]() ![]() ![]() |
Помогите пожалуйста, завтра здавать, не хо4ет он записывать ни в какой файл(даже если я его создаю). В чем именно проблема тогда? Я был бы рад если бы даже в текстовый только записало.
Добавлено через 1 мин. Если бы я не проверял - то не сказал бы. У меня все прекрасно записывает, и типизированный файл, и текстовый. Хочешь - могу выслать и тот и другой. ну давай Добавлено через 1 мин. Можешь тогда весь этот код выслать? А то я уже запутался |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Не записывает, говоришь? Ну, попробуй вот это:
![]() Удали свои DAT - файлы, и запусти мою программу. Два раза. Первый раз выбери 1, а второй - 2. И посмотри, выдает тебе должника или нет. Если выдает - то доделывай эту программу, а если нет - то виновата не программа, возможно все, что угодно... |
Brad Bellick |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 24 Пол: Мужской Реальное имя: Bellick Репутация: ![]() ![]() ![]() |
Не записывает, говоришь? Ну, попробуй вот это: ![]() Удали свои DAT - файлы, и запусти мою программу. Два раза. Первый раз выбери 1, а второй - 2. И посмотри, выдает тебе должника или нет. Если выдает - то доделывай эту программу, а если нет - то виновата не программа, возможно все, что угодно... ну создал, но у вас просто совсем по другому программа выгледит ![]() И чем вобще можно dat файл открыть? Добавлено через 12 мин. Вот мой примерно похожий вариант Добавлено через 2 мин. Добавлено через 12 мин. Вот мой примерно похожий вариант [/quote] но не записывает(ведь мне же надо сна4ало ввести нескольких читателей, а потом уже и выевить должников) Прикрепленные файлы ![]() |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 1:07 |