![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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])). З.Ы. бедный хард, много ему придется головками шуршать... |
|
#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 комбинаций. После каждой запись на диск.
|
|
#9
|
|||
|
|||
|
без записи на диск ( вывод результатов в Memo1 ) программа аналогично загружает ПК и перестает отвечать , может быть виной всему 6 "циклов в цикле " .
|
|
#10
|
||||
|
||||
|
Цитата:
Честно говоря, не сильно понимаю, зачем это вообще нужно. Как потом используются эти 11 млн комбинаций? Если брутфорс паролей, то делается это несколько иначе, и его обсуждение выходит за правила форума. |