Programme cshrp help :(:(

Fermé
NeedForHelp - 3 juin 2009 à 17:54
 NeedForHelp - 4 juin 2009 à 10:25
Bonjour,
je suis en train d'essayer de développer une petite application pour une action pro en cours
mon application est un programme d'interrogation de verbes en anglais

je suis débutant et ne sais pas comment avancer je suis totalement bloqué pouvez vous m'aider SVP!!!!
je vous en serai très reconnaissant

je vous mets ci dessous mon code (jespere que vous n'aurez pas tro de mal à le comprendre :s :s)



namespace

Procedural
{


public partial class Formulaire : Form

{


public StreamReader sr;

private Form1 _form1;

public string vocPath;

List < string > Bv;

List < string > PP;

List < string > Pret;

public Formulaire( Form1 unForm1)
{

InitializeComponent();

_form1 = unForm1;



Bv = lire(

@".\resources\BV.TXT" ); /* appel de la procédure et
* création des collections*/


PP = lire(

@".\resources\PP.TXT" );
Pret = lire(

@".\resources\Pret.TXT" );

}



private List < string > lire( string unNomFichier) /*procédure de passage par valeur (car exploitation de la valeur récupérée par les boutons radio) pour ouverture,
* lecture puis fermeture, d'un fichier txt*/

{

sr =

File .OpenText(unNomFichier);

List < string > liste = new List < string >();

string mot = "" ;

while ((mot = sr.ReadLine()) != null )
{

liste.Add(mot);

}

sr.Close();


return liste;
}



/* autre facon
*

private void lire(string unNomFichier, List<string> uneListe)

{

sr = File.OpenText(unNomFichier);

string mot = "";

while ((mot = sr.ReadLine()) != null)

{

uneListe.Add(mot);

}

sr.Close();

}*/




private void tableau( List < string > uneListe, Random rnd ) /*procédure de passage par réference (car uneListe prend la valeur de la variable)
* pour le remplissage des tableaux*/

{


/*Random rnd = new Random();*/

string [] row0 = { " " , " " , " " , " " };

string [] newLigne = row0;
newLigne[0] = uneListe[rnd.Next(25)];

dataGridView1.Rows.Add(newLigne);


}



private void Form2_Load( object sender, EventArgs e)
{



Random R= new Random ();

switch (_form1.niveau)
{


case "Débutant" :

for ( int i = 0; i < 3; i++)
{


/*string[] newLigne = row0;
newLigne[0] = Bv[rnd.Next(25)];

dataGridView1.Rows.Add(newLigne);*/

tableau(Bv,R);


}


break ;

case "Moyen" :

for ( int i = 0; i < 5; i++)
{

tableau(Pret,R);

}


break ;

case "Expert" :

for ( int i = 0; i < 7; i++)
{

tableau(PP,R);

}


break ;
}


}


}

}

7 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
3 juin 2009 à 18:41
Déjà un truc qui ne me semble pas logique c'est que tu appelle lire et tu en met le résultat dans des variables (Bv et PP), cependant la fonction lire est de type void et ne retourne rien.

Donc je ne voit pas bien où tu veux en venir.

Sinon il serait bien que tu mette ton code entre les balises <code> et </code > afin qu'il soit plus lisible.
0
namespace 

Procedural 
{ 


public partial class Formulaire : Form 

{ 


public StreamReader sr; 

private Form1 _form1; 

public string vocPath; 

List < string > Bv; 

List < string > PP; 

List < string > Pret; 

public Formulaire( Form1 unForm1) 
{ 

InitializeComponent(); 

_form1 = unForm1; 



Bv = lire( 

@".\resources\BV.TXT" ); /* appel de la procédure et 
* création des collections*/ 


PP = lire( 

@".\resources\PP.TXT" ); 
Pret = lire( 

@".\resources\Pret.TXT" ); 

} 



private List < string > lire( string unNomFichier) /*procédure de passage par valeur (car exploitation de la valeur récupérée par les boutons radio) pour ouverture, 
* lecture puis fermeture, d'un fichier txt*/ 

{ 

sr = 

File .OpenText(unNomFichier); 

List < string > liste = new List < string >(); 

string mot = "" ; 

while ((mot = sr.ReadLine()) != null ) 
{ 

liste.Add(mot); 

} 

sr.Close(); 


return liste; 
} 



/* autre facon 
* 

private void lire(string unNomFichier, List<string> uneListe) 

{ 

sr = File.OpenText(unNomFichier); 

string mot = ""; 

while ((mot = sr.ReadLine()) != null) 

{ 

uneListe.Add(mot); 

} 

sr.Close(); 

}*/ 




private void tableau( List < string > uneListe, Random rnd ) /*procédure de passage par réference (car uneListe prend la valeur de la variable) 
* pour le remplissage des tableaux*/ 

{ 


/*Random rnd = new Random();*/ 

string [] row0 = { " " , " " , " " , " " }; 

string [] newLigne = row0; 
newLigne[0] = uneListe[rnd.Next(25)]; 

dataGridView1.Rows.Add(newLigne); 


} 



private void Form2_Load( object sender, EventArgs e) 
{ 



Random R= new Random (); 

switch (_form1.niveau) 
{ 


case "Débutant" : 

for ( int i = 0; i < 3; i++) 
{ 


/*string[] newLigne = row0; 
newLigne[0] = Bv[rnd.Next(25)]; 

dataGridView1.Rows.Add(newLigne);*/ 

tableau(Bv,R); 


} 


break ; 

case "Moyen" : 

for ( int i = 0; i < 5; i++) 
{ 

tableau(Pret,R); 

} 


break ; 

case "Expert" : 

for ( int i = 0; i < 7; i++) 
{ 

tableau(PP,R); 

} 


break ; 
} 


} 


} 

}

0
lire est une fonction qui retourne aléatoirement une liste de verbes qu'il récupère à partir du fichier texte pour qu'ils soient enfin placés dans la colonne correspondante
0
mon programme est censé lire dans les fichiers txt et me placer mes verbes selon le niveau dans un tableau :
- si niveau débutant : base verbale en anglais proposée et le joueur doit remplir le reste
- si niveau moyen : prétérit proposé
- si niveau expert : participe passé proposé

bien entendu il faut que les verbes soient placés dans la bonne colonne, or, actuellement, ils se placent toujours dans la première colonne, donc dans Base verbale, même si les bon verbes sont lus
0

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

Posez votre question
lire n'est pas de type void c'est une liste
0
ou alors je dirais d'une autre facon : comment placer le résultat d'une fonction qui retourene une liste dans la colonne d'un datagridview?????
0
pardon je voulais dire une fonction de type void parce que dans ce cas c'est le résultat de la fonction tableau qu'il faut que je place dans les colonnes
0