Помощь - Поиск - Пользователи - Календарь
Полная версия: Randomize и маски
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Jill
Подскажите, плз, как случайным образом сформировать запись с учетом ограничений (например, номер телефона, дату и т.д.)

Вот, собственно, и сабж
F.I.A.T.
И в чем проблема? Не знаем, как генерировать 8 чисел (ну, или скольки значный там номер телефона?) в интервале 1 - 9?

С датами: сгенерировать номер месяца (1 - 12), и уже зная его - год (число в заданном интервале) и число даты (сначала - год, для того, чтобы определить его високосность). Где именно проблема?
Jill
Проблема в выводе.

Допустим, сформировали эти самые 12 (именно12) чисел. Каким макаром их вывести в формате маски (напр 8-375-16-245632)?
мисс_граффити
var S:string;
.....
S:='8'+random(900)+'-'+random(90); //получим что-то вроде 8-375-12
Edit1.Text:=S;
Malice
Цитата(мисс_граффити @ 29.03.2006 18:05) *

S:='8'+random(900)+'-'+random(90); //получим что-то вроде 8-375-12


Неочень хорошо, т.к. random(900) может быть <3 знаков, так может и 8-1-0 получится.
klem4
Можно вот так попробовать

   randomize;
ord(s[0]) := 255;
s[1] := '8';
for i := 2 to 12 do s[i] := chr(ord('0') + random(10));
insert('-', s, 2);
insert('-', s, 6);
insert('-', s, 10);
insert('-', s, 13);


Вроде номера мобильника.
мисс_граффити
Цитата(Malice @ 29.03.2006 21:55) *

Неочень хорошо, т.к. random(900) может быть <3 знаков, так может и 8-1-0 получится.

хорошо. пусть это будет (random(800)+100).

только я в том варианте IntToStr забыла - а это необходимо.
Jill
Всем спасибо. Разобралась smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.