|
Программирование C / C++ / Visual C++ / Delphi / Visual Basic / ASM / Windows / Pascal |
|
Опции темы | Оценить тему |
23.02.2012, 11:41 | #1 |
Участник
Регистрация: 24.01.2012
Сообщений: 9
ICQ: 744441 Репутация: 10
|
[Delphi] Работа со списками
Здравствуйте форумчане!
Гуглил гуглил, но ничего не нагуглил. Проблема заключается в том, что я не умею работать со списками. Вот написал программу для разделения логинов от паролей: Код:
procedure TForm1.Button2Click(Sender: TObject); begin Timer1.Enabled:=true; Button2.Enabled:=false; end; procedure TForm1.Timer1Timer(Sender: TObject); begin inc(i); if i=s.Count-1 then begin Timer1.Enabled:=false; Button2.Enabled:=true; end; uin:=strtoint(copy(s.Strings[i],0,pos(Edit1.Text,s.Strings[i])-1)); Memo1.Lines.Add(inttostr(uin)); Label4.Caption:=IntToStr(StrToInt(Label4.Caption)+1); ProgressBar1.Position:=ProgressBar1.Position+1; end; Пробовал без таймера: Код:
procedure TForm1.Button2Click(Sender: TObject); begin i:=0; while i < s.Count do Button2.Enabled:=false; uin:=strtoint(copy(s.Strings[i],0,pos(Edit1.Text,s.Strings[i])-1)); Memo1.Lines.Add(inttostr(uin)); Label4.Caption:=IntToStr(StrToInt(Label4.Caption)+1); ProgressBar1.Position:=ProgressBar1.Position+1; if i = s.Count-1 then Button2.Enabled:=true; end; Подскажите новичку как работать со списками без таймера.
__________________
icq 744441 |
24.02.2012, 17:28 | #4 | |
Участник
Регистрация: 24.01.2012
Сообщений: 9
ICQ: 744441 Репутация: 10
|
Цитата:
Так перебирает по очереди каждую строку Код:
procedure TForm1.Button2Click(Sender: TObject); begin Timer1.Enabled:=true; Button2.Enabled:=false; end; procedure TForm1.Timer1Timer(Sender: TObject); begin inc(i); if i=s.Count-1 then begin Timer1.Enabled:=false; Button2.Enabled:=true; end; uin:=strtoint(copy(s.Strings[i],0,pos(Edit1.Text,s.Strings[i])-1)); Memo1.Lines.Add(inttostr(uin)); Label4.Caption:=IntToStr(StrToInt(Label4.Caption)+1); ProgressBar1.Position:=ProgressBar1.Position+1; end; Код:
procedure TForm1.Button2Click(Sender: TObject); begin i:=0; while i < s.Count do Button2.Enabled:=false; uin:=strtoint(copy(s.Strings[i],0,pos(Edit1.Text,s.Strings[i])-1)); Memo1.Lines.Add(inttostr(uin)); Label4.Caption:=IntToStr(StrToInt(Label4.Caption)+1); ProgressBar1.Position:=ProgressBar1.Position+1; if i = s.Count-1 then Button2.Enabled:=true; end;
__________________
icq 744441 Последний раз редактировалось vlad36; 24.02.2012 в 17:31. |
|
24.02.2012, 18:39 | #5 |
Участник
|
Код:
procedure TForm1.Button2Click(Sender: TObject); var i, uin: integer; begin Button2.Enabled:=false; for i := 0 to s.Count - 1 do begin uin := StrToIntDef(copy(s.Strings[i], 0, pos(Edit1.Text, s.Strings[i]) - 1), 0); Memo1.Lines.Add(IntToStr(uin)); Label4.Caption := IntToStr(StrToInt(Label4.Caption) + 1); // мб: Label4.Caption := IntToStr(i); ? ProgressBar1.Position := ProgressBar1.Position + 1; Application.ProcessMessages(); end; Button2.Enabled := true; end;
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR. Последний раз редактировалось .fry; 24.02.2012 в 18:42. |
Плюсанул .fry : |
24.02.2012, 18:43 | #6 | ||
Участник
Регистрация: 21.11.2009
Сообщений: 137
ICQ: 484848484 Репутация: 275
|
Цитата:
Цитата:
|
||
24.02.2012, 18:49 | #7 |
Участник
|
Все жгут, если нет точки с запятой в строке в файл попадёт пустая строка.
__________________
Хочешь знать как работает ICQ? Читай документацию по протоколу в OSCAR. |