![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброго времени суток посетители форума .
Возник вопрос по поводу записи результатов полного перебора символов в текстовый файл . Программа выводит результаты перебора в Memo1 , не могу переделать под вывод в файл , присутствует "подпрограмма" вывода слова "Hello" в файл ( набросок ) . В комментариях выразил свою идею по реализации . Собственно код программы : Код:
procedure TForm1.Button1Click(Sender: TObject); var Abc : array [1..15] of char; a,b,c,d,e,f,g,h,i,j: integer; // думаю сдесь надо myFile:TextFile; инициализировать переменную text:string; begin Abc[1]:='k'; Abc[2]:='a'; Abc[3]:='r'; Abc[4]:='i'; Abc[5]:='0'; Abc[6]:='1'; Abc[7]:='2'; Abc[8]:='3'; Abc[9]:='4'; Abc[10]:='5'; Abc[11]:='6'; Abc[12]:='7'; Abc[13]:='8'; Abc[14]:='9'; Abc[15]:='n'; for a:= 1 to 15 do for b:= 1 to 15 do begin Memo1.Lines.Add(Abc[a]+Abc[b]); // сдесь присвоить значение text:='c:\Test.txt' ; вышеуказанной переменной AssignFile(myFile,text); переменной (Abc[a]+Abc[b]) ReWrite(myFile); Append(myFile); WriteLn(myFile,'hello'); // вывести значение переменной в файл CloseFile(myFile); end; end; Заранее спасибо ))) Последний раз редактировалось RussianBoy, 12.09.2013 в 20:09. |
#2
|
||||
|
||||
![]() Код:
Memo1.SaveToFile('hello.txt'); |
#3
|
|||
|
|||
![]() Цитата:
Нужна не запись из Memo1 в файл , Memo1 как раз-таки нужно убрать . Т.е. по нажатию кнопки программа перебирает символы ( комбинации ) и записывает их в блокнот . |
#4
|
||||
|
||||
![]() Не в блокнот, а в файл. Стоит отличать одну из тысячи программ для просмотра текстовых файлов от самих файлов.
Записывать как написано: AssignFile, Rewrite, в цикле WriteLn, потом CloseFile. Соединить abc[a] и abc[b] в строку, и записать строку в текстовый файл (WriteLn(file, Abc[a]+Abc[b])). З.Ы. бедный хард, много ему придется головками шуршать... jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
|||
|
|||
![]() Еще можно в цикле засунуть в TStringList вместо TMemo, а потом методом saveToFile
|
#6
|
|||
|
|||
![]() Кстати.
Если хотите пользоваться именно TextFile и.т.д то либо ReWrite(myFile); // эта процедура создаёт новый пустой файл, а если файл уже существовал, то он будет стёрт. либо Append(myFile); // эта процедура открывает существующий файл, устанавливает позицию записи на конец файла. поэтому, как повелось со времён Turbo 3.0 Код:
text:='c:\Test.txt' ; AssignFile(myFile,text); {$I-} // вот такое волшебное слово, // отключаем Exception при ошибке ввода-вывода Append(myFile); // открываем файл для дописывания в конец if IoResult <>0 then // проверяем, что открылся {$I+} // а теперь включаем Exception при ошибке ввода-вывода // поскольку всё равно ничего поделать не можем ReWrite(myFile); // это ещё оператор if !! WriteLn(myFile,Abc[a]+Abc[b]); // пишем CloseFile(myFile);// закрываем но открытие и закрытие файла лучше делать вне цикла, а внутри цикла делать только WriteLN |
#7
|
|||
|
|||
![]() Цитата:
Что правда , то ПК грузится очень сильно при выполнении программы . Спасибо за ответ ! Цитата:
Программа заработала , все записалось в файл , постараюсь понять ( изучить ) принцип работы . Спасибо Огромное за такой емкий ответ !!! если можно обьясните пожалуйста почему программа перебора ( на 6 символов , написанная по такому же сценарию )так сильно загружает ПК , причем перебирает примерно минуту , самое начало , и перестает отвечать , приходится закрывать программу . А как написать аналогичную программу ( не цикл в цикле ) чтобы сильно не загружала проц пока не знаю , смотрел в интернете , не знаю с чего начать . Последний раз редактировалось M.A.D.M.A.N., 15.09.2013 в 18:16. |
#8
|
||||
|
||||
![]() 6 символов, 15 вариантов = 15^6 = 11390625 комбинаций. После каждой запись на диск.
jmp $ ; Happy End! The Cake Is A Lie. |
#9
|
|||
|
|||
![]() без записи на диск ( вывод результатов в Memo1 ) программа аналогично загружает ПК и перестает отвечать , может быть виной всему 6 "циклов в цикле " .
|
#10
|
||||
|
||||
![]() Цитата:
Честно говоря, не сильно понимаю, зачем это вообще нужно. Как потом используются эти 11 млн комбинаций? Если брутфорс паролей, то делается это несколько иначе, и его обсуждение выходит за правила форума. jmp $ ; Happy End! The Cake Is A Lie. |