Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Приветсвую всех, и снова генератор...   Найти похожие ветки 

 
IronHawk ©   (2004-05-07 19:11) [0]

Пишу в самый популярный раздел!
Есть массив знаков, и цифр и букв размером 34 разных символа, трабла в том, что надо счётчик который сгенерит строки таким способом:
%%%%%-%%%%%-%%%%%-%%%%%-%%%%%
где % символы из массива, вот как бы так чтоб в этих 25 символах в строке, между каждыми 5-ю вставлять "-"?


 
reticon ©   (2004-05-07 19:16) [1]

а не проще сначала генерировать всю последовательность, а потом вставлять "-" через каждые 5 символов?


 
MBo ©   (2004-05-08 07:42) [2]

А в чем проблема-то? Нечто подобное не устроит?
j:=1;
for i:=1 to 34 do
 if (i mod 6)=0 then
  s:=s+"-"
 else begin
  s:=s+символ[j];
  Inc(j);
 end;


 
SergP ©   (2004-05-08 09:46) [3]

Эт че такое будет.... Рег. код какой-то проги брутфорсом хочешь найти?
:=)))


 
VID ©   (2004-05-10 17:23) [4]

reticon ©   (07.05.04 19:16) [1]

а не проще сначала генерировать всю последовательность, а потом вставлять "-" через каждые 5 символов?


Действительно !


 
evvcom ©   (2004-05-10 19:04) [5]


> SergP ©   (08.05.04 09:46) [3]

А это тут при чем? Все реги внутри прог безо всяких "-" вычисляются. Так что мимо.


 
IronHawk ©   (2004-05-11 11:14) [6]


> reticon ©   (07.05.04 19:16) [1]

Можно конечно, но это 2-ы пробегать всю генерацию, хотя если это всё записать в файл, а потом через каждые 5 символов вставить "-", тогда да.

> MBo ©   (08.05.04 07:42) [2]

Идея, но я не совсем понял...
Хотя сейчас, разберусь.


 
IronHawk ©   (2004-05-11 11:50) [7]


> MBo ©   (08.05.04 07:42) [2]

Спасибо, устраивает, вот только он нет ограничения на 25 символов в строку("-" не в счёт), он весь массив штампует :), и не перебирает, а просто выстраивает :)


 
MBo ©   (2004-05-11 16:49) [8]

>IronHawk
Вопрос невнятный. Сформулируй поточнее. Возможно, вместо константы 34 достаточно будет использовать длину твоей входной  строки:
s:="";
for i:=1 to Length(InputStr) do begin
s:=s+InputStr[i];
if (i mod 5)=0 then
 s:=s+"-";
end;


 
IronHawk ©   (2004-05-11 17:29) [9]

Я это подкорректировал сразу, но тут не тот случай, мне нужно пребрать все 34 символа и чтоб строка была из 25 символов и между каждыми 5-ю был знак "-",
я задачу прекрасно понимаю, скажем так нагенерённые гначения от
00000-00000-00000-00000-00000
до
00000-00000-00000-00000-0ZZZZ
в файле 42Мб, следовательно ...-ZZZZZ будет 1428Мб
А что поделаешь, надо!


 
HSolo ©   (2004-05-11 18:27) [10]

Кто ж спорит, надо - значит, надо :)
Давайте код генерации строки


 
Игорь Шевченко ©   (2004-05-11 23:31) [11]


> IronHawk ©   (11.05.04 17:29)


Сизиф тебе обзавидовался


 
Polevi ©   (2004-05-11 23:34) [12]

ну надо так надо :)


 
OlegGashev ©   (2004-05-11 23:34) [13]

IronHawk ©   (07.05.04 19:11)  

Поставь Asprotect и будет тебе счастье.


 
IronHawk ©   (2004-05-12 11:26) [14]

Ну как всегда один MBo© реально помог, кодом, остальные даже "наводящей воды" не налили, молодцы, молодцы, как всегда нечего сказать...
MBo ©   (11.05.04 16:49) [8]
Формулирую точнее:
const WorkArray: array[0..33] of Char = ("0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V" ,"W","X","Y","Z");
const one: array[0..25] of Char = "00000-00000-00000-00000-0";
var b,c,d,e: integer;
s: string;
begin
Memo1.Visible:=false;
while Gauge1 do begin
 for b:=1 to 34 do begin
  for c:=1 to 34 do begin
   for d:=1 to 34 do begin
    for e:=1 to 34 do begin
     s:=one+{WorkArray[a]+}WorkArray[b]+WorkArray[c]+WorkArray[d]+WorkArray[e];
     Memo1.Lines.Add(s);
   end
  end
 end
end
end;


 
evvcom ©   (2004-05-12 11:42) [15]


> IronHawk ©   (12.05.04 11:26) [14]

Все это пишется гораздо проще. Не проверял, но что типа этого:

type
 TWorkChar = ("0".."9", "A".."Z");
const
 one = "00000-00000-00000-00000-0";
var b,c,d,e: TWorkChar;
s: string;
begin
Memo1.Visible:=false;
while Gauge1 do
for b:=Low(TWorkChar) to High(TWorkChar) do
 for c:=Low(TWorkChar) to High(TWorkChar) do
  for d:=Low(TWorkChar) to High(TWorkChar) do
   for e:=Low(TWorkChar) to High(TWorkChar) do begin
    s:=one+b+c+d+e;
    Memo1.Lines.Add(s);
   end;


 
evvcom ©   (2004-05-12 11:49) [16]

Кстати, s: string тоже можно убрать.



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
11-1072443366
xtz
2003-12-26 15:56
2004.05.23
Ув мастера помогите разобратся с использыванием VMHSyntaxEdit


3-1083005641
kdv1977
2004-04-26 22:54
2004.05.23
фильтр в *.dbf


3-1082955112
SerKom
2004-04-26 08:51
2004.05.23
Ошибка FreeReport в Win XP: "Can t load package .. FREEREP5.bpl


1-1084121162
Soldier
2004-05-09 20:46
2004.05.23
TMemo


7-1081684430
DADUD
2004-04-11 15:53
2004.05.23
Как изменить дату и время папкам например arhiv . и arhiv ..