Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.029 c
1-1083490227
Schummi
2004-05-02 13:30
2004.05.23
Проблема с DLL!!!


11-1072006070
Revolter
2003-12-21 14:27
2004.05.23
Font.Size (VCL) = ? (KOL)


3-1083146032
samovar inc.
2004-04-28 13:53
2004.05.23
значение вставить в поле базы


14-1083741378
darkstalker
2004-05-05 11:16
2004.05.23
Создание нового документа в Экселе.


14-1083468735
mfender
2004-05-02 07:32
2004.05.23
Я вижу в нем "американский английский" ! :)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский