Boucle de lancement

cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011 - 23 août 2005 à 17:32
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 - 25 août 2005 à 09:55
Bonjour,



J'ai fait une checkedListBox1_SelectedIndexChanged avec a l'interieur l'affichage de fichiers contenu dans mon répertoire :



private void checkedListBox1_SelectedIndexChanged(object sender, System.EventArgs e)

{

string rep = checkedListBox1.SelectedItem.ToString();


di = Environment.CurrentDirectory + "/Commandes/" +
rep;

}



Et donc je peux sélectionner plusieurs case. Pour le moment, je sélectionne une case puis je lance le traitement suivant :



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

{

//connexion();

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

System.Threading.Thread.Sleep(2000);

int counter = 0;

string line;

System.IO.StreamReader file = new System.IO.StreamReader(di);

string[] couple;

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

{

if (line.Trim().StartsWith("[date]"))

{

couple = line.Split('=');

if (couple.Length != 0)

{


DateTime today
= DateTime.Now;



System.DateTime answer = today.AddDays(Double.Parse(couple[1]));


String aff2 =
answer.ToString("ddMMyy");



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

}

else

{}





System.Threading.Thread.Sleep(1000);

}

else

{



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



System.Threading.Thread.Sleep(1000);

}

counter++;

}



file.Close();



Console.ReadLine();

}



Qui en faite, récupére les valeurs d'un fichier pour les mettres dans un autre (pour les tests car sinon, c'est sur Telnet)



Mon but serait de pouvoir sélectionner plusieurs case, et que le traitement les éxecutes un a la fois !



J'ai essayé d'être clair !! Si vous avez d'autres question !! :D Merci

5 réponses

cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
23 août 2005 à 21:08
Personne n'a une ptit idée pour me débloquer !!!



Allez un ptit effort
0
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
24 août 2005 à 09:00
Salut Piep14,
Toujours si je me trompe pas la classe CheckedListBox possède la propriété CheckedItems : une collection des items cochés. Donc tu peux écrire ton traitement dans une fonction MonTraitement(string NomFichier) et sur ton eevenement tu écris

void button4_Click(...)
{
foreach(object Item in MaCheckListe.CheckedItems)
{
MonTraitement(Item)//avec un cast pour avoir le nom du fichier... }}

Là, où tu peux avoir un pb c'est que CheckedItems renvoie les items sélectionnés et indéterminés (dans le cas d'uncheckedlist en tristate)
Voila j'espere que ça va t'aider
0
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
24 août 2005 à 21:37
Je n'arrive pas trop a voir comment faire la fonction MonTraitement(string NomFichier)

Aurais tu d'autres explication a m'apporter car j'en suis toujours au meme point !!!



Merci
0
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
25 août 2005 à 08:59
Salut, Ben je pense que ton ancienne fonction button4_click devient MonTraitement.
Pour le paramètre, au lieu d'avoir une globale (ici di) que tu initialise à chaque fois tu passe le string en paramètre.
En fait pour moi ça donnerait un truc du style :

public void MonTraitement(string Fichier)
{
//connexion();
System.Diagnostics.Process.Start("notepad.exe");
System.Threading.Thread.Sleep(2000);
int counter = 0;
string line;
System.IO.StreamReader file = new System.IO.StreamReader(di);
string[] couple;
while((line = file.ReadLine()) != null)
{
if (line.Trim().StartsWith("[date]"))
{
couple = line.Split('=');
if (couple.Length != 0)
{
DateTime today = DateTime.Now;
System.DateTime answer = today.AddDays(Double.Parse(couple[1]));
String aff2 = answer.ToString("ddMMyy");
System.Windows.Forms.SendKeys.SendWait(aff2);
}
else
{}

System.Threading.Thread.Sleep(1000);
}
else
{
System.Windows.Forms.SendKeys.SendWait(line);
System.Threading.Thread.Sleep(1000);
}
counter++;
}

file.Close();

Console.ReadLine();
}

le tout avec

private void button4_Click(object sender, System.EventArgs e)
{
foreach (object Item in MacheckList.CheckedItem)
{
string rep = checkedListBox1.SelectedItem.ToString();
di = Environment.CurrentDirectory + "/Commandes/" + rep;
MonTratitemen(di);
}
}

Voila c'était ça l'idée, j'éspère que c'étatit compréhensible.
Sinon tu as la solution de traiter directement dans l'evenement de CheckedListBox, mais c'est moyen car si l'utilisateur coche/décoche/recoche, tu faisq du traitement pour rien.
0

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

Posez votre question
t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
25 août 2005 à 09:55
0
Rejoignez-nous