Главная страница
    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.48 MB
Время: 0.033 c
8-1078845098
incm
2004-03-09 18:11
2004.05.23
Как рисовать на TIcon


14-1083547372
MPS
2004-05-03 05:22
2004.05.23
Задачка по информатике...


1-1084039313
studentRSU
2004-05-08 22:01
2004.05.23
Слайд-шоу


14-1083833901
pasha_golub
2004-05-06 12:58
2004.05.23
SPAM. Месть начинается.


4-1081091618
Wiz@rd
2004-04-04 19:13
2004.05.23
WH_KEYBOARD





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский