cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 2013
-
27 févr. 2005 à 18:41
AS_95160
Messages postés1Date d'inscriptionlundi 26 juin 2006StatutMembreDernière intervention18 juin 2007
-
18 juin 2007 à 13:37
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
AS_95160
Messages postés1Date d'inscriptionlundi 26 juin 2006StatutMembreDernière intervention18 juin 2007 18 juin 2007 à 13:37
bonjour à tous,
je suis encor débutant mais j'ai assez bien compris le code, par contre le fichier classClrSrc.cs je n'arrive pas à comprendre son fonctionnement.
Pourriez-vous me donner une explication svp c très important.
nicodev24
Messages postés5Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention12 août 2009 2 oct. 2006 à 23:09
Bonjour à tous,
serait il possible de stocker ces informations sous un autre type de format que le fichier texte ?
un type de stockage du style base de données (MySQL ou autre) qui n'ai pas besoin d'etre installé ?
ce serait pour y faire des requetes simples ( nbre_personnes = COUNT(personnes_id)), faciliter l'ajout et la suppression des données ...
si quelqu'un connait le format HyperFile de Windev (excuse la référence), je cherche quelque chose dans ce genre.
peut etre XML, si des requetes sont possibles ...
Merci des infos que vous pourrez me donner.
chango_abs
Messages postés1Date d'inscriptionvendredi 4 novembre 2005StatutMembreDernière intervention 4 novembre 2005 4 nov. 2005 à 00:48
salut c'est bien ça
Kirdream
Messages postés5Date d'inscriptiondimanche 7 novembre 2004StatutMembreDernière intervention19 janvier 2009 5 mars 2005 à 20:13
Merci sebmafate pour ton aide, lorsqu'on lance le programme une fois et que l'on quitte correctement, à la deuxième fois ça marche bien. Il ne bogue plus.
Par contre, je n'ai pas tout vérifier si le programme marche complétément.
En ce moment, je suis en train de modifier et d'ajouter d'autres fonctions dans mon programme et ça me complique les choses.
- modifier les coordonnées d'une personne,
- supprimer une personne,
- afficher le nombre de personnes dans le répertoire.
Et aussi, je me suis aperçu que "private personne[] rep=new personne[500];" dans la classe 'repertoire' est, il me semble, inutile donc je l'ai mis en commentaire pour l'instant. Mais je dois modifier tout le code....
Pour le moment, ça ne marche pas vraiment...
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 2 mars 2005 à 06:01
1 - pour le problème de sauvegarde du ton fichier.... commence par retirer le sw.WriteLine après ta boucle
2 - dans cette boucle tu fais :
if (Pe != null) {
...
} else {
break;
}
utilise plutot :
if (Pe == null) continue;
3 - pour t'éviter la tartine dans le sw.WriteLine(Pe.getPrenom()....);
Dans ta classe personne, crée un override de la méthode ToString(). Tu n'auras plus qu'à faire Pe.ToString();
Séb
Kirdream
Messages postés5Date d'inscriptiondimanche 7 novembre 2004StatutMembreDernière intervention19 janvier 2009 2 mars 2005 à 02:16
- Pour Bidou, en ce qui concerne les méthodes get et set, j'ai appris cette manière par mon prof de programmation. Je ne savais pas qu'il y avait un autre possibilité d'écrire ces méthodes. Je ne connais pas le langage Java, par contre, je connais un peu le C et le C++.
- Pour Sebmafate, d'accord, j'ai compris, je corrige ces "fautes", si on peut dire ça des fautes...
- Pour Emmanuel2005, dans la classe 'repertoire', selon moi, la première instanciation permet de créer une classe personne et la deuxième permet de l'utiliser. Enfin, je débute le C# donc je ne connais pas tout.
J'ai pris en compte ta 1ère remarque, j'ai donc supprimer la première instanciation, j'exécute le code et il me dit qu'il ne trouve pas la classe 'personne'. Il fallait juste que j'ajoute devant "Pe=new personne(n,p,th,tp,tb,nr,r,cp,v,e1,e2,e3);" le mot "personne" et ça marche!!! quelque octet de mon dans mon code, ça allège un peu!
Pour ta 2ème remarque, je viens d'ajouter : StreamWriter sw = new StreamWriter("repertoire.txt",true, System.Text.Encoding.Default);
sw.Close();
Cela permet de tester si le fichier existe ou pas, s'il n'existe pas, il est créé.
Pour ta 3ème remarque, je tiendrai compte.
Pour la dernière remarque, j'attrape l'exception et j'affecte la valeur 0 à la variable 'choix' comme ça le problème est résolu! :)
- Je voulais vous demander comment je peux résoudre le problème de la fonction 'sauvegarder()', parce que dans le fichier txt, il rajoute deux sauts de ligne à la fin et je ne sais pas comment y remèdier, si vous pouvez me dire comment faire ce serait sympa.
Emmanuel2005
Messages postés1Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention 1 mars 2005 1 mars 2005 à 13:44
Bonjour,
dans ton constructeur, tu commences par instancier l'objet Pe : personne Pe=new personne();
Par la suite, tu RE-instancie l'objet :
Pe=new personne(n,p,th,tp,tb,nr,r,cp,v,e1,e2,e3);
Je viens du C++, et ça ne fait pas longtemps que je suis dans le C#, mais il me semble que la première instanciation ne sert pas à grand chose...
J'ai une deuxième remarque : la première fois que tu lances le programme, le fichier "repertoire.txt" n'existe, normalement, pas encore. A la ligne "StreamReader sr=new StreamReader("repertoire.txt");", une exception "System.IO.FileNotFoundException" est donc lancée. Récupérer cette exception pourrait peut être te permettre de créer le fichier ???
Troisième remarque : j'ai une erreur de compilation sur la ligne "return (); " de la fonction "public personne rechbytel(string t)" sous SharpDevelop. En attendant de coder la fonction, tu devrais plutôt mettre "return null;". (surtout que ta fonction n'es jamais appellée) :-)
Dermière remarque : si tu n'entres rien (ENTER direct), ton programme plante sur la ligne "choix=Convert.ToInt32(Console.ReadLine());"...
:-)
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 28 févr. 2005 à 09:18
une autre remarque... en C on aime bien passé à la ligne apès un ; c'est con mais ça rend un code plus "lisible"
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 27 févr. 2005 à 18:41
Pour être honnête, je n'ai pas regardé ton code en détail, mais je me suis aperçu d'une chose, c'est que tu venais sûrement du monde Java toi, non ?
En java, on fait plutôt des méthodes get et set, comme tu as fait :
public string gettel_p()
{
return (tel_port);
}
public void settel_p(string tp)
{
tel_port=tp;
}
Mais en C# on préfère largement utilisé les properties. Pour l'exemple précédant, on aurait qqch comme (on utilise à ce moment pas la convention 'get'):
public string Tel_p
{
get { return this._tel_port; }
set { this._tel_port = value; }
}
Enfin, c'est un peu un détail... mais quand on débute, c'est toujours bon à savoir !
18 juin 2007 à 13:37
je suis encor débutant mais j'ai assez bien compris le code, par contre le fichier classClrSrc.cs je n'arrive pas à comprendre son fonctionnement.
Pourriez-vous me donner une explication svp c très important.
2 oct. 2006 à 23:09
serait il possible de stocker ces informations sous un autre type de format que le fichier texte ?
un type de stockage du style base de données (MySQL ou autre) qui n'ai pas besoin d'etre installé ?
ce serait pour y faire des requetes simples ( nbre_personnes = COUNT(personnes_id)), faciliter l'ajout et la suppression des données ...
si quelqu'un connait le format HyperFile de Windev (excuse la référence), je cherche quelque chose dans ce genre.
peut etre XML, si des requetes sont possibles ...
Merci des infos que vous pourrez me donner.
4 nov. 2005 à 00:48
5 mars 2005 à 20:13
Par contre, je n'ai pas tout vérifier si le programme marche complétément.
En ce moment, je suis en train de modifier et d'ajouter d'autres fonctions dans mon programme et ça me complique les choses.
- modifier les coordonnées d'une personne,
- supprimer une personne,
- afficher le nombre de personnes dans le répertoire.
Et aussi, je me suis aperçu que "private personne[] rep=new personne[500];" dans la classe 'repertoire' est, il me semble, inutile donc je l'ai mis en commentaire pour l'instant. Mais je dois modifier tout le code....
Pour le moment, ça ne marche pas vraiment...
2 mars 2005 à 06:01
2 - dans cette boucle tu fais :
if (Pe != null) {
...
} else {
break;
}
utilise plutot :
if (Pe == null) continue;
3 - pour t'éviter la tartine dans le sw.WriteLine(Pe.getPrenom()....);
Dans ta classe personne, crée un override de la méthode ToString(). Tu n'auras plus qu'à faire Pe.ToString();
Séb
2 mars 2005 à 02:16
- Pour Sebmafate, d'accord, j'ai compris, je corrige ces "fautes", si on peut dire ça des fautes...
- Pour Emmanuel2005, dans la classe 'repertoire', selon moi, la première instanciation permet de créer une classe personne et la deuxième permet de l'utiliser. Enfin, je débute le C# donc je ne connais pas tout.
J'ai pris en compte ta 1ère remarque, j'ai donc supprimer la première instanciation, j'exécute le code et il me dit qu'il ne trouve pas la classe 'personne'. Il fallait juste que j'ajoute devant "Pe=new personne(n,p,th,tp,tb,nr,r,cp,v,e1,e2,e3);" le mot "personne" et ça marche!!! quelque octet de mon dans mon code, ça allège un peu!
Pour ta 2ème remarque, je viens d'ajouter : StreamWriter sw = new StreamWriter("repertoire.txt",true, System.Text.Encoding.Default);
sw.Close();
Cela permet de tester si le fichier existe ou pas, s'il n'existe pas, il est créé.
Pour ta 3ème remarque, je tiendrai compte.
Pour la dernière remarque, j'attrape l'exception et j'affecte la valeur 0 à la variable 'choix' comme ça le problème est résolu! :)
- Je voulais vous demander comment je peux résoudre le problème de la fonction 'sauvegarder()', parce que dans le fichier txt, il rajoute deux sauts de ligne à la fin et je ne sais pas comment y remèdier, si vous pouvez me dire comment faire ce serait sympa.
1 mars 2005 à 13:44
dans ton constructeur, tu commences par instancier l'objet Pe : personne Pe=new personne();
Par la suite, tu RE-instancie l'objet :
Pe=new personne(n,p,th,tp,tb,nr,r,cp,v,e1,e2,e3);
Je viens du C++, et ça ne fait pas longtemps que je suis dans le C#, mais il me semble que la première instanciation ne sert pas à grand chose...
J'ai une deuxième remarque : la première fois que tu lances le programme, le fichier "repertoire.txt" n'existe, normalement, pas encore. A la ligne "StreamReader sr=new StreamReader("repertoire.txt");", une exception "System.IO.FileNotFoundException" est donc lancée. Récupérer cette exception pourrait peut être te permettre de créer le fichier ???
Troisième remarque : j'ai une erreur de compilation sur la ligne "return (); " de la fonction "public personne rechbytel(string t)" sous SharpDevelop. En attendant de coder la fonction, tu devrais plutôt mettre "return null;". (surtout que ta fonction n'es jamais appellée) :-)
Dermière remarque : si tu n'entres rien (ENTER direct), ton programme plante sur la ligne "choix=Convert.ToInt32(Console.ReadLine());"...
:-)
28 févr. 2005 à 09:18
27 févr. 2005 à 18:41
En java, on fait plutôt des méthodes get et set, comme tu as fait :
public string gettel_p()
{
return (tel_port);
}
public void settel_p(string tp)
{
tel_port=tp;
}
Mais en C# on préfère largement utilisé les properties. Pour l'exemple précédant, on aurait qqch comme (on utilise à ce moment pas la convention 'get'):
public string Tel_p
{
get { return this._tel_port; }
set { this._tel_port = value; }
}
Enfin, c'est un peu un détail... mais quand on débute, c'est toujours bon à savoir !