Problemas com o count

21/09/2004

0

Bom dia pessoal.

Meu problema é muito maluco... Vejam:

tem um form com dois Memos e um Button


o nome deles são MemoUser e MemoMail.

Nos dois tem exatamente 3 linhas e o mesmo texto nos dois;

[b:2dfb7ea387]
grep -w diney /etc/passwd
diney:x:1172:1172::/home/diney:/bin/bash
[root@mail /root]#
[/b:2dfb7ea387]

E preciso sempre de pegar o resulta da segunda linha dos dois Memos, então utilizei o código abaixo:

showmessage(frmPrincipal.MemoUser.Lines[frmPrincipal.MemoUser.Lines.Count-2]);
showmessage(frmPrincipal.MemoMail.Lines[frmPrincipal.MemoMail.Lines.Count-2]);


Teria que abrir duas caixas de mensagem subsequente na primeira exibindo o resulta da segunda linha do MemoUser e na outra caixa o mesmo resulta, só que do MemoMail.

[b:2dfb7ea387]
O problema é que a primeira caixa aparece vazia e a segunda caixa que abre aparece o resultado certinho!

O que será?
[/b:2dfb7ea387]


Abraços


Redoctober

Redoctober

Responder

Posts

21/09/2004

Douglas Bitencourt

envie um pedaço maior do codigo para ver melhor...


Responder

21/09/2004

Redoctober

envie um pedaço maior do codigo para ver melhor...


Pra eu te mandar é meio complicado... Vou tentar te explicar.

Fiz um sistema pra fazer conexões remotas em 2 servidores Linux., via telnet. Bom, usando o IdTelnet do Indy eu consegui fazer as conexões, como eu tenho que fazer duas conexões ao mesmo tempo tive que duplicar todos os componentes...

Tipo, um Idtelnet, um Memo que recebe os dados do telnet, uma caixa de texto que envia os comandos e um botão Ok.

Aqui que entra o que eu preciso!

É que depois de conectado nos dois servidores linux, o programinha deve verificar se existe o usuário informado, e a forma foi enviar para os dois servidores os seguintes comandos:

frmPrincipal.ComandoUser.Text := ´grep -w ´+Edit1.Text+´ /etc/passwd´;
frmPrincipal.ComandoMail.Text := ´grep -w ´+Edit1.Text+´ /etc/passwd´;


ComandoUser.Text e ComandoMail.Text são duas caixas de texto que envia o comando via telnet que é respondido no MemoUser e no MemoMail.

Então, a resposta desses comandos vai para os dois mesmos que fica assim:

[b:6e1dbd7ca3][ MemoUser ][/b:6e1dbd7ca3]
 
grep -w diney /etc/passwd
diney:x:1172:1172::/home/diney:/bin/bash
[root@user /root] 


[b:6e1dbd7ca3][ MemoMail ][/b:6e1dbd7ca3]
 
grep -w diney /etc/passwd
diney:x:1172:1172::/home/diney:/bin/bash
[root@mail /root] 


A partir de agora, preciso imprimir a segunda linha dos dois memos

Entendeu?[/b]



Responder

21/09/2004

Douglas Bitencourt

como não sei do código vou tentar algumas coisas que derrepente te apontam para o caminho correto.

eu fiz um teste aqui e funcionou direitinho.
só que vc está pegando estes valores pelo telnet e preenchendo o memo.
fica difícil avaliar deste jeito mas verifique estas coisas:

vc duplicou os componentes, ok, então vc teria duas origens para o dado solicitado, correto?


frmPrincipal.ComandoUser.Text := ´grep -w ´+Edit1.Text+´ /etc/passwd´; 
frmPrincipal.ComandoMail.Text := ´grep -w ´+Edit1.Text+´ /etc/passwd´; 
                                             /\
                                             ||



veja também se a variável utilizada para gerar a mensagem está pegando o valor correto (use step over ou F8 e pare o mouse sobre a atribuição da variável e veja o valor que aparece);

se a variável estiver correta, verifique se algum outro comando estaria limpando o conteúdo da mesma;

veja se os dados que estão sendo gravados no memo estão como linhas e não com espaços;

espero que ajude.

Douglas


Responder

21/09/2004

Marcelo Saviski

Pode ser que vc esqueça de limpar os memos antes adicionar os valores e eles tenham algumas linhas em branco, tente antes de adicionar os valores no memo, tente isso:
MemoUser.Clear;
MemoMail.Clear;

talvez de certo


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar