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

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

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

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

Сообщение Ravil » 05.01.2011 14:10:19

Пытаюсь написать генератор дат, нужна помощь.
Код: Выделить всё
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.

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

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

Сообщение coyot.rush » 05.01.2011 14:44:40

Код: Выделить всё
write(f, 'd.m.y');

Садись за книги о паскале и учи главу о типах :idea:
Примечание: паскаль не bash и в нем есть различия между строкой и целым числом
PS: См также IntToStr() в SysUtils
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

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

Сообщение Nik » 05.01.2011 16:48:51

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

Код: Выделить всё
intDate:= Random(1294012800);
strDaye:=UnixTimeToDateTime(indDate);


И всего делов-то :)
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

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

Сообщение Ravil » 06.01.2011 11:01:58

при компиляции выдаёт это:
rand1.pas(13,28) Error: Identifier not found "UnixTimeToDateTime"
Аватара пользователя
Ravil
новенький
 
Сообщения: 27
Зарегистрирован: 05.01.2011 13:54:46
Откуда: Стрежевой

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

Сообщение Vadim » 06.01.2011 12:21:08

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

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

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

Сообщение Ravil » 06.01.2011 12:47:23

Тоже самое. Может какой модуль подключить надо. WinXP, Geany, fpc 2.4.2.
Аватара пользователя
Ravil
новенький
 
Сообщения: 27
Зарегистрирован: 05.01.2011 13:54:46
Откуда: Стрежевой

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

Сообщение Vadim » 06.01.2011 13:39:32

Ravil
DateUtils не забыли подключить?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение Ravil » 06.01.2011 14:25:14

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

Код: Выделить всё
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"
Аватара пользователя
Ravil
новенький
 
Сообщения: 27
Зарегистрирован: 05.01.2011 13:54:46
Откуда: Стрежевой

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

Сообщение Padre_Mortius » 06.01.2011 14:29:47

Открывайте книжку по паскаль и начинайте его изучение по теме "Типы данных". Вы забыли преобразовать тип TDateTime к типу ShortString (делается это функцией DateToStr)
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

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

Сообщение Vadim » 06.01.2011 14:33:27

Ravil
Вместе с FreePascal поставляется исчерпывающая документация. В файле /doc/rtl.pdf есть описания всех функций и процедур, какие типы параметров они требуют и какого типа результат они возвращают.
Мало того, Вам компилятор прямо написал, что нужен тип String, а Вы ему подсовываете TDateTime. Попробуйте чисто логическим путём выяснить, что Вы ещё забыли сделать. ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение Ravil » 06.01.2011 15:32:40

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

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

Сообщение Vadim » 06.01.2011 15:36:10

Зачем Вам TurboPascal? Вы когда собираетесь пуститься в романтическое любовное приключение, разве выбираете тех женщин, кто уже давно лежат в могиле? :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение Ravil » 06.01.2011 16:53:49

Увы это не я придумал, таковы требования - TP 7.
Аватара пользователя
Ravil
новенький
 
Сообщения: 27
Зарегистрирован: 05.01.2011 13:54:46
Откуда: Стрежевой

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

Сообщение Padre_Mortius » 06.01.2011 17:04:56

С UnixToDateTime точно не будет работать
Padre_Mortius
энтузиаст
 
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

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

Сообщение Vadim » 06.01.2011 17:48:29

Ravil
Не потакайте некрофилам. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

След.

Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 2

Рейтинг@Mail.ru