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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2015, 12:11   #11
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

а что будет если без делит? Не пробовал пока что

тогда в этом коде надо поправить
Код:
procedure TForm1.Button1Click(Sender: TObject);
 var
 list:tstringlist;
 s,a:string;
 i:integer;
  begin
 list:=tstringlist.Create;
 list.LoadFromFile('1.txt');
 list.LoadFromFile('2.txt');
 list.LoadFromFile('3.txt');
 Edit1.Text:=UpperCase(Edit1.Text);
 for I := 0 to List.Count - 1 do
 begin
 s:=list[0]; 
 List.Delete(0); 
 a:=MD5DigestToStr(MD5String(s));
 if a=edit1.Text then 
 begin
 Edit2.Text:=s; 
 break;
 end;
 end;
 end;
 end. и написать вот так:
procedure TForm1.Button1Click(Sender: TObject);
 var
 list:tstringlist;
 s,a:string;
 i:integer;
  begin
 list:=tstringlist.Create;
 list.LoadFromFile('1.txt');
 list.LoadFromFile('2.txt');
 list.LoadFromFile('3.txt');
 Edit1.Text:=UpperCase(Edit1.Text);
 for I := 0 to List.Count - 1 do
 begin
 s:=list[I]; 
 a:=MD5DigestToStr(MD5String(s));
 if a=edit1.Text then 
 begin
 Edit2.Text:=s; 
 break;
 end;
 end;
 end;
 end.
???

Последний раз редактировалось Stilet; 10.09.2015 в 12:14.
komra2 вне форума Ответить с цитированием
Старый 10.09.2015, 13:32   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
и написать вот так:
Код:
 list.LoadFromFile('1.txt');
 list.LoadFromFile('2.txt');
 list.LoadFromFile('3.txt');
 Edit1.Text:=UpperCase(Edit1.Text);
Вы меня, наверное, не поняли. или пропустили первую часть моего прошлого поста.

Так писать БЕССМЫСЛЕНО.
это всё равно, что написать просто один раз:
Код:
 list.LoadFromFile('3.txt');
если Вам нужно прочитать только один текстовый файл '3.txt', тогда уберите бессмысленные строчки, где Вы читаете два других файла.
Всё равно у Вас в list остаётся только содержимое одного, последнего прочитанного файла.

Так понятней?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.09.2015, 13:53   #13
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

ну а что мне делать если мне надо не один а 100 штук load сделать, мне один знакомый сказал что сделать цикл надо, но как лучше будет?
komra2 вне форума Ответить с цитированием
Старый 11.09.2015, 11:33   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

да, чтобы прочитать все текстовые файлы в заданной папке лучше использовать цикл.
пример цикла я Вам уже написал в пост #3 в этой теме. там только вместо memo1 нужно написать ваш list и всё!


А без цикла загрузка файлов 1.txt, 2.txt, 3.txt будет выглядеть так:

Код:
 var
   list, templist : TStringList;
   s, sfind, a:string;
    i:integer;
  begin
    list := TStringList.Create;
    templist := TStringList.Create;
    templist.LoadFromFile('1.txt'); // прочитали содержимое текстового файла
    list.Text:=list.Text+#13+templist.Text; // добавили содержимое файла к list

    templist.LoadFromFile('2.txt'); // прочитали содержимое текстового файла
    list.Text:=list.Text+#13+templist.Text; // добавили содержимое файла к list

    templist.LoadFromFile('3.txt'); // прочитали содержимое текстового файла
    list.Text:=list.Text+#13+templist.Text; // добавили содержимое файла к list

    FreeAndNil(templist); // очистим память, выделенную под временный объект, куда читали файлы

    sfind := UpperCase(Edit1.Text); // переменную для поиска берём из Edit1
    Edit2.Text := 'не найдено';  // пока пишем, что ничего не найдено

    for i := 0 to list.Count - 1 do //далее цикл код обработки list
    begin
      s:=list[i]; 
      if MD5DigestToStr(MD5String(s))=sfind then  begin
         Edit2.Text:=s; 
         break;
      end;
      if (i mod 200)=0 then Application.ProcessMessages(); // каждые 200 строк будем отдавать команду на обработку системных сообщений, 
                                         // это чтобы приложение на "замораживалось"
    end;

    FreeAndNil(list);   // очистим основной список

end; // конец процедуры


_______________________________
Ещё добавлю.
Более рационально будет не грузить все файлы в одну структуру,
а обрабатывать текстовый файлы по одному.
Код:
цикл по всем txt файлам
  прочитали очередной файл
  обработали. если нашли - конец процедуры
конец цикла
____________________
но не взломаете Вы MD5 перебором, зря усилия прилагаете...


_

Последний раз редактировалось Serge_Bliznykov; 11.09.2015 в 12:06.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2015, 15:27   #15
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
да, чтобы прочитать все текстовые файлы в заданной папке лучше использовать цикл.
пример цикла я Вам уже написал в пост #3 в этой теме. там только вместо memo1 нужно написать ваш list и всё!


А без цикла загрузка файлов 1.txt, 2.txt, 3.txt будет выглядеть так:

Код:
 var
   list, templist : TStringList;
   s, sfind, a:string;
    i:integer;
  begin
    list := TStringList.Create;
    templist := TStringList.Create;
    templist.LoadFromFile('1.txt'); // прочитали содержимое текстового файла
    list.Text:=list.Text+#13+templist.Text; // добавили содержимое файла к list

    templist.LoadFromFile('2.txt'); // прочитали содержимое текстового файла
    list.Text:=list.Text+#13+templist.Text; // добавили содержимое файла к list

    templist.LoadFromFile('3.txt'); // прочитали содержимое текстового файла
    list.Text:=list.Text+#13+templist.Text; // добавили содержимое файла к list

    FreeAndNil(templist); // очистим память, выделенную под временный объект, куда читали файлы

    sfind := UpperCase(Edit1.Text); // переменную для поиска берём из Edit1
    Edit2.Text := 'не найдено';  // пока пишем, что ничего не найдено

    for i := 0 to list.Count - 1 do //далее цикл код обработки list
    begin
      s:=list[i]; 
      if MD5DigestToStr(MD5String(s))=sfind then  begin
         Edit2.Text:=s; 
         break;
      end;
      if (i mod 200)=0 then Application.ProcessMessages(); // каждые 200 строк будем отдавать команду на обработку системных сообщений, 
                                         // это чтобы приложение на "замораживалось"
    end;

    FreeAndNil(list);   // очистим основной список

end; // конец процедуры


_______________________________
Ещё добавлю.
Более рационально будет не грузить все файлы в одну структуру,
а обрабатывать текстовый файлы по одному.
Код:
цикл по всем txt файлам
  прочитали очередной файл
  обработали. если нашли - конец процедуры
конец цикла
____________________
но не взломаете Вы MD5 перебором, зря усилия прилагаете...


_
а с чего Вы взяли что я буду что-то ломать: ломать буду не я а железка, я ток кнопку нажму и посмотрю результат!
komra2 вне форума Ответить с цитированием
Старый 11.09.2015, 16:00   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
я ток кнопку нажму и посмотрю результат!
угу. точно. Просто нужно подождать будет несколько тысяч лет и можно посмотреть результат. Рекомендую глубокую заморозку в качестве анабиоза!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2015, 21:40   #17
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Вопрос задам, но правда он будет по c# ну это ладно (cons applic):
как мне сделать перебор, кароче чтобы было бы вот так
введите мд5:
я ввел
//перебор идет
hello 1 world aaaaaaaaaaaaaaaaaaaa
hello 2 world aaaaaaaaaaaaaaaaaaaa
hello 3 world aaaaaaaaaaaaaaaaaaaa
hello 4 world aaaaaaaaaaaaaaaaaaaa
hello 1 world aaaaaaaaaaaaaaaaaaab
hello 2 world aaaaaaaaaaaaaaaaaaab
hello 3 world aaaaaaaaaaaaaaaaaaab
hello 4 world aaaaaaaaaaaaaaaaaaab
hello 1 world aaaaaaaaaaaaaaaaaaac
hello 2 world aaaaaaaaaaaaaaaaaaac
hello 3 world aaaaaaaaaaaaaaaaaaac
hello 4 world aaaaaaaaaaaaaaaaaaac
// перебор закончился если вся строка нашлась
то есть если мд5 от моей строки 55077facbd662d22fdf1c7c087fe4575
hello 1 world aaaaaaaaaaaaaaaaaaac
то перебор закончен, но прога не выкл. пока не нажму кнопку
.....a-z,A-Z,0-9
komra2 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить текст из txt nibufep PHP 6 23.12.2014 19:41
Открыть txt, doc, jpg файлы на С++ Builder mikisss Фриланс 1 11.06.2014 14:43
Не записываются файлы txt KIG C++ Builder 1 15.08.2013 10:01
Как с файла .txt получить .exe amator_roma Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 11.03.2011 03:39