Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 148
от 30.03.2006, 18:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 164, Экспертов: 45
В номере:Вопросов: 1, Ответов: 1


Вопрос № 38452: Здравствуйте, уважаемые эксперты! Я задавал вопрос № 38346. Совершенно согласен с ответом sir henry,что вопрос сформулирован просто безобразно,но тем не менее решать надо. Подскожите пожалуйста как записать в файл день (1..31), месяц (1..12)...

Вопрос № 38.452
Здравствуйте, уважаемые эксперты!
Я задавал вопрос № 38346.
Совершенно согласен с ответом sir henry,что вопрос сформулирован просто безобразно,но тем не менее решать надо. Подскожите пожалуйста как записать в файл день (1..31), месяц (1..12), год (00..99),а затем его прочитать.
В приложении привожу свою попытку, но она не записывает числы в файл.
Заранее благодарен.

Приложение:

Отправлен: 25.03.2006, 00:09
Вопрос задал: Chanik (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Chanik!
1. Непонятно, каким принципом Вы руководствовались, выбирая в типе для даты именно массив. Логичнее будет просто применить тип запись с переменными типа байт (ведь значения дней месяцев и года не превышают именно байт) и ограничить их, в свою очередь, теми значениями, которые содержаться в днях, месяцах и годах:
Type
d31 = 1..31;
m12 = 1..12;
y99 = 0..99;
TMyDate = record
day: d31;
Month: m12;
Year: y99;
End;
2. Если Вы объявили тип для хранения даты, то совершенно естественным будет объявить файл такого типа, чтобы в нем хранить этот тип.
Var
CurrDate: TMyDate;
F: File of TMyDate;
i: integer;
Begin
Assign(F, 'filedata.dat');
Rewrite(F);
{Генерируем даты и записываем в файл}
Randomize;
For i:=0 To 9 Do
Begin
CurrDate.Day:=Random(31);
CurrDate.Month:=Random(12);
CurrDate.Year:=Random(99);
Write(F, CurrDate);
End;
Close(F);
Reset(F);
{Теперь последовательно читаем из файла}
While not Eof(F) Do
Begin
Read(F, CurrDate);
WriteLn(CurrDate.Day,'.', CurrDate.Month,'.', CurrDate.Year,' г.');
End;
Close(f);
End.
Над тем, как сделать вывод дат красивым, Вы подумайте сами.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 25.03.2006, 03:47


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.20 (beta) от 17.03.2006
Яндекс Rambler's Top100

В избранное