Tester une valeur

cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011 - 13 août 2005 à 15:10
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011 - 13 août 2005 à 18:03
Bonjour,





J'ai un fichier texte avec a chaque ligne du texte. A partir de mon
application, je lance notepad puis je recopie les valeurs dans ce
nouveau fichier !!






Code:, ----
private void button4_Click(object sender, System.EventArgs e)

{

System.Diagnostics.Process.Start("notepad.exe");

int counter = 0;

string line;

System.IO.StreamReader file =

new System.IO.StreamReader(di);

while((line = file.ReadLine()) != null)

{

System.Windows.Forms.SendKeys.SendWait(line);

System.Threading.Thread.Sleep(1000);

counter++;

}

file.Close();

Console.ReadLine();

}






Pour ceci aucun problème, voila que tout se complique lorsque je
veux tester une valeur du fichier. Disons que dans le fichier source
j'ai [date],


je veux afficher 1, donc j'ai essayé de cette facon, (je ne remet que la boucle)












Code:, ----
while((line = file.ReadLine()) != null)

{

if(line =="[date]")

{

System.Windows.Forms.SendKeys.SendWait("1");

}

else

{

System.Windows.Forms.SendKeys.SendWait(line);

System.Threading.Thread.Sleep(1000);

}

counter++;

}







Mais ceci me bloque mon application et je ne vois pas du tout le probleme.





Si vous auriez une ptit idée !!! Merci

6 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
13 août 2005 à 15:32
Salut, les crochets [ ] posent des problèmes avec SendKeys faut les mettres dans des accolades comme pour les touches spéciales, enfin je crois.. : )
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
13 août 2005 à 15:37
Ceci ne change rien, je viens de tester en enlevant les crochets et en laissant tout simplement date mais ca ne change rien !!
0
Fildomen Messages postés 805 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 30 octobre 2010
13 août 2005 à 16:48
System.Threading.Thread.Sleep(1000); !!!
combien t'as de lignes, si seulement ya 10 lignes != [date], ca va se bloker 10 secondes !!!

YaoYao !!
1 + 1 = 10
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
13 août 2005 à 17:02
Et si tu veux avoir toutes les lignes il faut aussi laisser le temps à notepad de s'ouvrir, même avec SendWait.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
13 août 2005 à 17:08
cf méthode WaitForInputIdle pour celà. :-)

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
13 août 2005 à 18:03
Avec ceci :

Code:
while((line = file.ReadLine()) != null)
{
if (line.Trim().StartsWith("[date]"))
{System.Windows.Forms.SendKeys.SendWait("line");}
else
{
System.Windows.Forms.SendKeys.SendWait(line);
System.Threading.Thread.Sleep(1000);
}
counter++;
}


Cela fonctionne a un défaut près et je n'arrive vraiment pas a comprendre pourquoi, il m'ouvre 13 bloc note et dans un de ces 13 bloc note, il écrit 13 fois le mot line qui correspond au 13 lignes du fichier source

Etrange !!!
0
Rejoignez-nous