Страница 1 из 3
Генератор дат, нужна помощь
Добавлено: 05.01.2011 13: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 13:44:40
coyot.rush
Садись за книги о паскале и учи главу о типах

Примечание: паскаль не bash и в нем есть различия между строкой и целым числом
PS: См также IntToStr() в SysUtils
Re: Генератор дат, нужна помощь
Добавлено: 05.01.2011 15:48:51
Nik
Я бы вообще плясал от генерации даты в Unix-формате, и не заморачивался со сборкой строки из кусочков.
Код: Выделить всё
intDate:= Random(1294012800);
strDaye:=UnixTimeToDateTime(indDate);
И всего делов-то

Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 10:01:58
Ravil
при компиляции выдаёт это:
rand1.pas(13,28) Error: Identifier not found "UnixTimeToDateTime"
Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 11:21:08
Vadim
Ravil писал(а):rand1.pas(13,28) Error: Identifier not found "UnixTimeToDateTime"
UnixToDateTime().
Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 11:47:23
Ravil
Тоже самое. Может какой модуль подключить надо. WinXP, Geany, fpc 2.4.2.
Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 12:39:32
Vadim
Ravil
DateUtils не забыли подключить?
Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 13: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 13:29:47
Padre_Mortius
Открывайте книжку по паскаль и начинайте его изучение по теме "Типы данных". Вы забыли преобразовать тип TDateTime к типу ShortString (делается это функцией DateToStr)
Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 13:33:27
Vadim
RavilВместе с FreePascal поставляется исчерпывающая документация. В файле /doc/rtl.pdf есть описания всех функций и процедур, какие типы параметров они требуют и какого типа результат они возвращают.
Мало того, Вам компилятор прямо написал, что нужен тип String, а Вы ему подсовываете TDateTime. Попробуйте чисто логическим путём выяснить, что Вы ещё забыли сделать.

Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 14:32:40
Ravil
Спасибо. А в Turbo Pascal это будет работать?
Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 14:36:10
Vadim
Зачем Вам TurboPascal? Вы когда собираетесь пуститься в романтическое любовное приключение, разве выбираете тех женщин, кто уже давно лежат в могиле?

Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 15:53:49
Ravil
Увы это не я придумал, таковы требования - TP 7.
Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 16:04:56
Padre_Mortius
С UnixToDateTime точно не будет работать
Re: Генератор дат, нужна помощь
Добавлено: 06.01.2011 16:48:29
Vadim
RavilНе потакайте некрофилам.
