Страница 1 из 3

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

СообщениеДобавлено: 05.01.2011 14:10:19
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.

Что не так?

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

СообщениеДобавлено: 05.01.2011 14:44:40
coyot.rush
Код: Выделить всё
write(f, 'd.m.y');

Садись за книги о паскале и учи главу о типах :idea:
Примечание: паскаль не bash и в нем есть различия между строкой и целым числом
PS: См также IntToStr() в SysUtils

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

СообщениеДобавлено: 05.01.2011 16:48:51
Nik
Я бы вообще плясал от генерации даты в Unix-формате, и не заморачивался со сборкой строки из кусочков.

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


И всего делов-то :)

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

СообщениеДобавлено: 06.01.2011 11:01:58
Ravil
при компиляции выдаёт это:
rand1.pas(13,28) Error: Identifier not found "UnixTimeToDateTime"

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

СообщениеДобавлено: 06.01.2011 12:21:08
Vadim
Ravil писал(а):rand1.pas(13,28) Error: Identifier not found "UnixTimeToDateTime"

UnixToDateTime().

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

СообщениеДобавлено: 06.01.2011 12:47:23
Ravil
Тоже самое. Может какой модуль подключить надо. WinXP, Geany, fpc 2.4.2.

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

СообщениеДобавлено: 06.01.2011 13:39:32
Vadim
Ravil
DateUtils не забыли подключить?

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

СообщениеДобавлено: 06.01.2011 14:25:14
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"

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

СообщениеДобавлено: 06.01.2011 14:29:47
Padre_Mortius
Открывайте книжку по паскаль и начинайте его изучение по теме "Типы данных". Вы забыли преобразовать тип TDateTime к типу ShortString (делается это функцией DateToStr)

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

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

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

СообщениеДобавлено: 06.01.2011 15:32:40
Ravil
Спасибо. А в Turbo Pascal это будет работать?

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

СообщениеДобавлено: 06.01.2011 15:36:10
Vadim
Зачем Вам TurboPascal? Вы когда собираетесь пуститься в романтическое любовное приключение, разве выбираете тех женщин, кто уже давно лежат в могиле? :)

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

СообщениеДобавлено: 06.01.2011 16:53:49
Ravil
Увы это не я придумал, таковы требования - TP 7.

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

СообщениеДобавлено: 06.01.2011 17:04:56
Padre_Mortius
С UnixToDateTime точно не будет работать

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

СообщениеДобавлено: 06.01.2011 17:48:29
Vadim
Ravil
Не потакайте некрофилам. :)