Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2008, 20:01   #1
rainbow
Форумчанин
 
Регистрация: 06.09.2008
Сообщений: 156
По умолчанию Помогите сделать программу генерирующую файл

Помогите сделать программу, которая по нажатию определенной кнопки генерирует текстовые файлы в них должны быть строки из 5 и 6 латинских букв или цифр:
Это должно быть представлено в текстовом файле в следующем виде:
Код:
00000
00001
00002
00003
00004
00005
00006
00007
00008
00009
0000a
0000b
........ (и так далее до)
zzzzz
И из 6 цифр или букв
Код:
000000
000001
000002
000003
000004
000005
000006
000007
000008
000009
00000a
00000b
........(и так далее до)
zzzzzz
Ужас, как я устал от тупизны...
rainbow вне форума Ответить с цитированием
Старый 22.09.2008, 20:15   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Не совсем понял... Ну с цифрами понятно,
Format('%.*d', [5 или 6, значение плюс один]);
а Символы?
По второму кругу после
00000a
00000b
должно быть
0000aa
0000ab?
_SERGEYX_ вне форума Ответить с цитированием
Старый 23.09.2008, 06:11   #3
rainbow
Форумчанин
 
Регистрация: 06.09.2008
Сообщений: 156
По умолчанию

По второму кругу должно быть
000010
000011
000012
000013
000014
000015
000016
000017
000018
000019
00001a
.........
00001z
По третьему
000020
000021
000023
.........
00002z
и т.д.
Последняя запись в файле должна быть
zzzzzz
Т.е сначало цифры от 0 до 9, затем буквы от a до z
Ужас, как я устал от тупизны...

Последний раз редактировалось rainbow; 23.09.2008 в 06:14.
rainbow вне форума Ответить с цитированием
Старый 23.09.2008, 11:10   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Этакая 36-тиричная система счисления (26 букв + 10 цифр). Можно в лоб 6-ю циклами, но в любом случае файл получится размеров 2 176 782 336 байт не считая символы #10#13. Вы уверены, что нужен файл размером более 2 гигобайт?
eoln вне форума Ответить с цитированием
Старый 23.09.2008, 14:09   #5
rainbow
Форумчанин
 
Регистрация: 06.09.2008
Сообщений: 156
По умолчанию

eoln
Мне нужен не файл, а исходный код программы, которая это делает.
Символы не надо, надо только цифры и маленькие латинские буквы.
И строки не должны состоять более чем из 6 букв или цифр.
Ужас, как я устал от тупизны...

Последний раз редактировалось rainbow; 23.09.2008 в 14:13.
rainbow вне форума Ответить с цитированием
Старый 23.09.2008, 16:34   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Я ошибся с подсчётом, 2 176 782 336 это не байт а вариантов, в байтах это будет столько 13 060 694 016
Итак, вот вам исходный код как заполнять, но в вашем случае замените
Код:
const
  n = 6; //длина "слова"
  m = 2; //система счисления
  mn: array[1..m] of char = '0a';
на
Код:
const
  n = 6; //длина "слова"
  m = 36; //система счисления
  mn: array[1..m] of char = 
'0123456789abcdefghijklmnopqrstuvwxyz';
Для двоичной системы счисления
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
  n = 6; //длина "слова"
  m = 2; //система счисления
  mn: array[1..m] of char = '0a';
var    
  i: byte;
  s: string[n];
  r: array[1..n] of byte;
begin
  //массив с номерами символов из массива mn
  for i := 1 to n do r[i] := 1;
  repeat //бесконечный цикл
  s := '';
  for i := 1 to n do s := s + mn[r[i]];//построение слова
  richedit1.Lines.Add(s);//вывод готового слова
  inc(r[n]);//увеличение младшего разряда
  for i := n downto 1 do
  begin
    //если значение разряда не переполнено, то всё норм
    if r[i] <= m then break; 
    if i = 1 then exit; //старший разряд заполнен - всему конец
    r[i] := 1;//сброс при переполнении
    inc(r[i-1])//и увеличение более старшего разряда
  end;
  until false  
end;
eoln вне форума Ответить с цитированием
Старый 23.09.2008, 16:39   #7
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Гг, бешенный словарь для брута?
пыщь
JTG вне форума Ответить с цитированием
Старый 23.09.2008, 17:59   #8
rainbow
Форумчанин
 
Регистрация: 06.09.2008
Сообщений: 156
По умолчанию

eoln Спасибо большое, я тоже думал сделать через массив только как не додумался.
Только RichEdit пришлось на Memo заменить, с RichEdit просто не видно как прога работает, и можно подумать что она повисла.
Цитата:
Сообщение от JTG Посмотреть сообщение
Гг, бешенный словарь для брута?
Да нет, у меня задание такое тупое.
Ужас, как я устал от тупизны...

Последний раз редактировалось rainbow; 23.09.2008 в 18:24.
rainbow вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать тестирущую программу по эконометрике Esenin Фриланс 8 19.04.2008 17:51
Помогите сделать bat файл. p1vorak Помощь студентам 3 12.01.2008 19:02
помогите сделать программу - чат (Indy UDP) dr_Lev Помощь студентам 2 02.12.2007 14:49
Помогите сделать курсовую через программу Delphi Рина8807 Помощь студентам 6 18.10.2007 10:58
Как сделать программу чтоб отсылала файл по FTP. Kenifer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 15.08.2007 20:58