Генератор дат, нужна помощь

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Аватара пользователя
Ravil
новенький
Сообщения: 27
Зарегистрирован: 05.01.2011 12:54:46
Откуда: Стрежевой

Генератор дат, нужна помощь

Сообщение Ravil »

Пытаюсь написать генератор дат, нужна помощь.

Код: Выделить всё

Program gen;
Uses  crt;
const n=60;
Var  d, m, y : integer;
    i, a : integer;
   f : file of integer;
Begin
ClrScr;
randomize;
assign (f, 'd:\data.dat');
rewrite(f);
for i:=1 to n do
 begin
   d:=random(31);
   m:=random(12);
   y:=random(99);
  end;
  write(f, 'd.m.y');
close(f);
end.

Что не так?
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

Код: Выделить всё

write(f, 'd.m.y');

Садись за книги о паскале и учи главу о типах :idea:
Примечание: паскаль не bash и в нем есть различия между строкой и целым числом
PS: См также IntToStr() в SysUtils
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

Я бы вообще плясал от генерации даты в Unix-формате, и не заморачивался со сборкой строки из кусочков.

Код: Выделить всё

intDate:= Random(1294012800);
strDaye:=UnixTimeToDateTime(indDate);


И всего делов-то :)
Аватара пользователя
Ravil
новенький
Сообщения: 27
Зарегистрирован: 05.01.2011 12:54:46
Откуда: Стрежевой

Сообщение Ravil »

при компиляции выдаёт это:
rand1.pas(13,28) Error: Identifier not found "UnixTimeToDateTime"
Vadim
долгожитель
Сообщения: 4111
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Ravil писал(а):rand1.pas(13,28) Error: Identifier not found "UnixTimeToDateTime"

UnixToDateTime().
Аватара пользователя
Ravil
новенький
Сообщения: 27
Зарегистрирован: 05.01.2011 12:54:46
Откуда: Стрежевой

Сообщение Ravil »

Тоже самое. Может какой модуль подключить надо. WinXP, Geany, fpc 2.4.2.
Vadim
долгожитель
Сообщения: 4111
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Ravil
DateUtils не забыли подключить?
Аватара пользователя
Ravil
новенький
Сообщения: 27
Зарегистрирован: 05.01.2011 12:54:46
Откуда: Стрежевой

Сообщение Ravil »

Я не забыл - я не знал, я только начал изучение.

Код: Выделить всё

Program gen1;
Uses  crt, dateutils;
const n=60;
Var  intDate : integer;
      strDate : string;
   f : file of string;
Begin
ClrScr;
randomize;
assign (f, 'd:\date.dat');
rewrite(f);
intDate:= Random(4102358400);
strDate:=UnixToDateTime(intDate);
  write(f,  strDate);
close(f);
end.

теперь выдаёт это:
rand1.pas(13,10) Error: Incompatible types: got "TDateTime" expected "ShortString"
Padre_Mortius
энтузиаст
Сообщения: 1261
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

Открывайте книжку по паскаль и начинайте его изучение по теме "Типы данных". Вы забыли преобразовать тип TDateTime к типу ShortString (делается это функцией DateToStr)
Vadim
долгожитель
Сообщения: 4111
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Ravil
Вместе с FreePascal поставляется исчерпывающая документация. В файле /doc/rtl.pdf есть описания всех функций и процедур, какие типы параметров они требуют и какого типа результат они возвращают.
Мало того, Вам компилятор прямо написал, что нужен тип String, а Вы ему подсовываете TDateTime. Попробуйте чисто логическим путём выяснить, что Вы ещё забыли сделать. ;)
Аватара пользователя
Ravil
новенький
Сообщения: 27
Зарегистрирован: 05.01.2011 12:54:46
Откуда: Стрежевой

Сообщение Ravil »

Спасибо. А в Turbo Pascal это будет работать?
Vadim
долгожитель
Сообщения: 4111
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Зачем Вам TurboPascal? Вы когда собираетесь пуститься в романтическое любовное приключение, разве выбираете тех женщин, кто уже давно лежат в могиле? :)
Аватара пользователя
Ravil
новенький
Сообщения: 27
Зарегистрирован: 05.01.2011 12:54:46
Откуда: Стрежевой

Сообщение Ravil »

Увы это не я придумал, таковы требования - TP 7.
Padre_Mortius
энтузиаст
Сообщения: 1261
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

С UnixToDateTime точно не будет работать
Vadim
долгожитель
Сообщения: 4111
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

Ravil
Не потакайте некрофилам. :)
Ответить