TSTRINGLIST ESTA LLENDO SOMENTE O ULTIMO INDICE A ULTIMA LINHA O QUE FAZER
ESTOU USANDO TSTRING LISTA E O VALOR QUE ESTOU RECEBENDO E SOMENTE DA ULTIMA LINHA O QUE FAZER ?
Pedro Fernandes
Curtidas 0
Melhor post
Renato Rubinho
18/08/2014
Cria uma variável no private.
Coloca a validação num timer com o tempo necessário para a página carregar.
Põe um botão, seta o valor inicial da variável e ativa o timer.
Coloca a validação num timer com o tempo necessário para a página carregar.
Põe um botão, seta o valor inicial da variável e ativa o timer.
private
iPosList: integer;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
// Validação
if iPosList >= 0 then
begin
if ---- sua validação se passou sai do timer ---- then
begin
showmessage('Índice: ' + IntToStr(iPosList));
exit;
end;
end;
// Se chegou nesse ponto, não passou na validação. Incrementa e tenta novamente.
Inc(iPosList);
// Se estourou a lista, sai do timer
if iPosList > Length(arquivo) - 1 then
exit;
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtLogin').value := arquivo[i];
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtSenha').value := arquivo1[i];
WebBrowser1.OleObject.document.all.item('ctl00$conteudo$btnAcessar',0).Click;
Timer1.Enabled := True;
end;
procedure TForm1.Button1(Sender: TObject);
begin
arquivo.LoadFromFile('c:\usuarios.txt');
arquivo1.LoadFromFile('c:\senhas.txt');
iPosList := -1;
Timer1Timer(Timer1);
end;
GOSTEI 1
Mais Respostas
Renato Rubinho
18/08/2014
Buenas,
Para pegar o conteúdo todo do TStringList, use a propriedade .text
Para ler linha a linha, passe o índice que deseja. Se já está fazendo desta forma, veja se a variável passada está com o valor do índice desejado.
Abraççç,
Renato
Para pegar o conteúdo todo do TStringList, use a propriedade .text
ShowMessage( tsList.Text );
Para ler linha a linha, passe o índice que deseja. Se já está fazendo desta forma, veja se a variável passada está com o valor do índice desejado.
for i:=0 to tsList.Count-1 do ShowMessage( tsList[i] );
Abraççç,
Renato
GOSTEI 0
Pedro Fernandes
18/08/2014
Já se encontra desse jeito , o que acontece é o seguinte , estou importando um arquivo .txt e estou lendo todo o arquivo e atribuindo a uma variável tstringlist, porem quando uso essa variável me retorna somente o ultimo índice a ultima linha , o que quero e pegar o valor do índice atribuir a variável e vou fazer uma condição caso a condição seja aceita vai salvar a linha atual se não passa para a próxima linha e assim por diante.
aguardo contato Obrigado.
aguardo contato Obrigado.
GOSTEI 0
Renato Rubinho
18/08/2014
Após ler os dados, usando o SaveToFile() o conteúdo fica correto no arquivo gerado ?
Põe o código de como você está lendo o arquivo. Se usar o LoadFromFile() tem que trazer os dados corretamente, automaticamente.
Põe o código de como você está lendo o arquivo. Se usar o LoadFromFile() tem que trazer os dados corretamente, automaticamente.
GOSTEI 0
Pedro Fernandes
18/08/2014
Quando testo a variável no Showmessage(arquivo); ele me retorna os valor certinho na ordem certa do começo ao final certinho mais quando jogo em uma variável pra poder usar em um Tbrowser ele insere somente o ultimo valor da lista o que pode ser ?
GOSTEI 0
Renato Rubinho
18/08/2014
O que é a variável arquivo ? Como você passa para o TString ? Como está abrindo no TWebBrowser ?
Põe o código para ter como analisar.
Põe o código para ter como analisar.
GOSTEI 0
Pedro Fernandes
18/08/2014
Esse link do webbrowser seria somente um exemplo mais no caso o certo e outro link mais o código segue abaixo.
private
{ Private declarations }
public
arquivo,arquivo1 : TStringList; { Public declarations }
i,j: integer;
linha,linha2 : string;
end;
var
Form1: TForm1;
implementation
uses Math;
{$R *.dfm}
procedure TForm1.btnCarregarClick(Sender: TObject);
var
i: integer;
data : string;
begin
arquivo := TStringList.Create;
try
arquivo.LoadFromFile('c:\usuarios.txt');
Memo1.Lines.Add(arquivo.Text);
for i := 0 to arquivo.Count-1 do
begin
linha := arquivo[i];
lblTeste.Caption := linha;
end;
finally
FreeAndNil(arquivo);
end;
end;
procedure TForm1.btnNavegarClick(Sender: TObject);
begin
WebBrowser1.Navigate('http://centralaluno.favi.br/?instituto=uniplan');
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
application.ProcessMessages;
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtLogin').value := linha;
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtSenha').value := linha2;
WebBrowser1.OleObject.document.all.item('ctl00$conteudo$btnAcessar',0).Click;
end;
procedure TForm1.btnSenhasClick(Sender: TObject);
var
i: integer;
begin
arquivo1 := TStringList.Create;
try
arquivo1.LoadFromFile('c:\senhas.txt');
Memo2.Lines.Add(arquivo1.Text);
for i := 0 to arquivo1.Count -1 do
begin
linha2 := arquivo1[i];
lblPalavras.Caption := linha2;
end;
finally
FreeAndNil(arquivo1);
end;
end;
private
{ Private declarations }
public
arquivo,arquivo1 : TStringList; { Public declarations }
i,j: integer;
linha,linha2 : string;
end;
var
Form1: TForm1;
implementation
uses Math;
{$R *.dfm}
procedure TForm1.btnCarregarClick(Sender: TObject);
var
i: integer;
data : string;
begin
arquivo := TStringList.Create;
try
arquivo.LoadFromFile('c:\usuarios.txt');
Memo1.Lines.Add(arquivo.Text);
for i := 0 to arquivo.Count-1 do
begin
linha := arquivo[i];
lblTeste.Caption := linha;
end;
finally
FreeAndNil(arquivo);
end;
end;
procedure TForm1.btnNavegarClick(Sender: TObject);
begin
WebBrowser1.Navigate('http://centralaluno.favi.br/?instituto=uniplan');
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
application.ProcessMessages;
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtLogin').value := linha;
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtSenha').value := linha2;
WebBrowser1.OleObject.document.all.item('ctl00$conteudo$btnAcessar',0).Click;
end;
procedure TForm1.btnSenhasClick(Sender: TObject);
var
i: integer;
begin
arquivo1 := TStringList.Create;
try
arquivo1.LoadFromFile('c:\senhas.txt');
Memo2.Lines.Add(arquivo1.Text);
for i := 0 to arquivo1.Count -1 do
begin
linha2 := arquivo1[i];
lblPalavras.Caption := linha2;
end;
finally
FreeAndNil(arquivo1);
end;
end;
GOSTEI 0
Pedro Fernandes
18/08/2014
private
{ Private declarations }
public
arquivo,arquivo1 : TStringList; { Public declarations }
i,j: integer;
linha,linha2 : string;
end;
var
Form1: TForm1;
implementation
uses Math;
{$R *.dfm}
procedure TForm1.btnCarregarClick(Sender: TObject);
var
i: integer;
data : string;
begin
arquivo := TStringList.Create;
try
arquivo.LoadFromFile('c:\usuarios.txt');
Memo1.Lines.Add(arquivo.Text);
for i := 0 to arquivo.Count-1 do
begin
linha := arquivo[i];
lblTeste.Caption := linha;
end;
finally
FreeAndNil(arquivo);
end;
end;
procedure TForm1.btnNavegarClick(Sender: TObject);
begin
WebBrowser1.Navigate('http://centralaluno.favi.br/?instituto=uniplan');
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
application.ProcessMessages;
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtLogin').value := linha;
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtSenha').value := linha2;
WebBrowser1.OleObject.document.all.item('ctl00$conteudo$btnAcessar',0).Click;
end;
procedure TForm1.btnSenhasClick(Sender: TObject);
var
i: integer;
begin
arquivo1 := TStringList.Create;
try
arquivo1.LoadFromFile('c:\senhas.txt');
Memo2.Lines.Add(arquivo1.Text);
for i := 0 to arquivo1.Count -1 do
begin
linha2 := arquivo1[i];
lblPalavras.Caption := linha2;
end;
finally
FreeAndNil(arquivo1);
end;
end;GOSTEI 0
Pedro Fernandes
18/08/2014
alguem ?
GOSTEI 0
Renato Rubinho
18/08/2014
Do jeito que está fazendo, a cada passo do loop a variável é sobreposta pelo último valor, ficando sempre na "linha" e na "linha2", o valor do último registro.
Você pode jogar o valor direto do tstringlist, sabendo q
Você pode jogar o valor direto do tstringlist, sabendo q
arquivo.LoadFromFile('c:\usuarios.txt');
arquivo1.LoadFromFile('c:\senhas.txt');
// exemplo abaixo, pega o usuário e senha do índice 5;
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtLogin').value := arquivo[5];
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtSenha').value := arquivo1[5];
WebBrowser1.OleObject.document.all.item('ctl00$conteudo$btnAcessar',0).Click;
GOSTEI 0
Renato Rubinho
18/08/2014
Dei enter sem querer... rsrs, finalizando:
Do jeito que está fazendo, a cada passo do loop a variável é sobreposta pelo último valor, ficando sempre na "linha" e na "linha2", o valor do último registro.
Você pode jogar o valor direto do tstringlist, sabendo qual a posição que deseja.
Você pode jogar o valor direto do tstringlist, sabendo qual a posição que deseja.
arquivo.LoadFromFile('c:\usuarios.txt');
arquivo1.LoadFromFile('c:\senhas.txt');
// exemplo abaixo, pega o usuário e senha do índice 5;
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtLogin').value := arquivo[5];
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtSenha').value := arquivo1[5];
WebBrowser1.OleObject.document.all.item('ctl00$conteudo$btnAcessar',0).Click;
GOSTEI 0
Pedro Fernandes
18/08/2014
mais ai que ta dessa forma eu ja tinha ideia , o negocio é que quero fazer de forma automatizada ou seja , vou pega o valor indice um joga no .value:= arquivo; ai iria cria uma condição que pegasse a primeira linha dos loguins e jogasse no loguin pegasse a primeira linha da senha jogasse na senha, depois iria da um SUBMIT no botao entrar e depois iria criar uma condiçao que seria no caso , se achar "palavra" no site no html iria salvar a linha do loguin e salvar a linha da senha , e pulasse pra próxima linha tudo automático.
GOSTEI 0
Renato Rubinho
18/08/2014
põe isso dentro do loop.
for i:=0 to Length(arquivo)-1 do
begin
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtLogin').value := arquivo[i];
WebBrowser1.OleObject.document.all.tags('input').item('ctl00$conteudo$txtSenha').value := arquivo1[i];
WebBrowser1.OleObject.document.all.item('ctl00$conteudo$btnAcessar',0).Click;
// aguarda o retorno do webbrowser e testa
// ############
end;
GOSTEI 0
Pedro Fernandes
18/08/2014
Nao da certo infelizmente!
GOSTEI 0