Récupération de données avec Windows Forms
Fermé
Stapled
Messages postés
34
Date d'inscription
mercredi 17 mai 2017
Statut
Membre
Dernière intervention
10 janvier 2018
-
Modifié le 5 janv. 2018 à 15:22
Utilisateur anonyme - 11 janv. 2018 à 11:49
Utilisateur anonyme - 11 janv. 2018 à 11:49
A voir également:
- Récupération de données avec Windows Forms
- Reinstaller windows sans perte de données - Guide
- Clé de produit windows 10 gratuit - Guide
- Montage video windows - Guide
- Windows ne démarre pas - Guide
- Recuperation de données - Guide
2 réponses
Utilisateur anonyme
5 janv. 2018 à 21:05
5 janv. 2018 à 21:05
Bonsoir, un fichier ini c'est désuet et ça servait à sauvegarder la configuration du logiciel, pas les données métiers.
Pour la configuration du logiciel, Visual Studio intègre directement un fichier spécifique (au format xml),
vois ici
https://cdiese.fr/fichier-de-configuration-en-net-en-10-min/
ou là
https://nico-pyright.developpez.com/tutoriel/vc2005/configurationsectioncsharp/
Pour les données métiers, c'est dans une base de données qu'il faut les stocker, tu peux la constituer avec un fichier texte (csv, xml, json...) si tu as peu de données. Tu peu aussi utiliser excel. Enfin tu peux te servir d'une "vraie" base de données (Access, sqlserver, mysql etc...).
Pour le xml, ma préférence va à LinqToXml https://codes-sources.commentcamarche.net/faq/11196-linq-to-xml-c-et-vb-net
Pour Excel, tu peux te servir de l'API https://codes-sources.commentcamarche.net/source/50624-piloter-excel-via-microsoft-office-interop-excel mais ça oblige à disposer d'Excel sur le PC et c'est un peu long à l'exécution car tu lances excel et tu le pilotes pas à pas. Sinon tu peux écrire directement en openxml pour le format xlxs https://codes-sources.commentcamarche.net/source/102062-excel-avec-openxml
Pour les bases de données, il y a des exemples sur le site
https://codes-sources.commentcamarche.net/source/list/c-net-13/last
Pour la configuration du logiciel, Visual Studio intègre directement un fichier spécifique (au format xml),
vois ici
https://cdiese.fr/fichier-de-configuration-en-net-en-10-min/
ou là
https://nico-pyright.developpez.com/tutoriel/vc2005/configurationsectioncsharp/
Pour les données métiers, c'est dans une base de données qu'il faut les stocker, tu peux la constituer avec un fichier texte (csv, xml, json...) si tu as peu de données. Tu peu aussi utiliser excel. Enfin tu peux te servir d'une "vraie" base de données (Access, sqlserver, mysql etc...).
Pour le xml, ma préférence va à LinqToXml https://codes-sources.commentcamarche.net/faq/11196-linq-to-xml-c-et-vb-net
Pour Excel, tu peux te servir de l'API https://codes-sources.commentcamarche.net/source/50624-piloter-excel-via-microsoft-office-interop-excel mais ça oblige à disposer d'Excel sur le PC et c'est un peu long à l'exécution car tu lances excel et tu le pilotes pas à pas. Sinon tu peux écrire directement en openxml pour le format xlxs https://codes-sources.commentcamarche.net/source/102062-excel-avec-openxml
Pour les bases de données, il y a des exemples sur le site
https://codes-sources.commentcamarche.net/source/list/c-net-13/last
Utilisateur anonyme
7 janv. 2018 à 17:37
7 janv. 2018 à 17:37
Avec ce fichier
Je ne sais pas comment tu as écrit ta classe Personnage alors j'ai fait un truc bateau, y'a un int et un enum pour l'exemple
Et dans le formulaire, pour afficher sur une listBox
[Personnage]
Nom=Organ
Prenom=Stapled
Race=Humain
Age=42
Description=
Arme=
Classe=Sorcier
Male=Femelle
Femme=Male
Autre=Autre
[Personnage]
Nom=Toto
Prenom=Tata
Race=Elfe
Age=275
Description=Très beau
Arme=Epée
Classe=Guerrier
Male=Male
Femme=Femelle
Autre=N'importe quoi
Je ne sais pas comment tu as écrit ta classe Personnage alors j'ai fait un truc bateau, y'a un int et un enum pour l'exemple
class PersonnageStapled { public string Nom { get; set; } public string Prenom { get; set; } public string Race { get; set; } public int Age { get; set; } public string Description { get; set; } public string Arme { get; set; } public Classe Classe { get; set; } public string Sexe { get; set; } public string Conjoint { get; set; } public string Autre { get; set; } public override string ToString() { return string.Format("Je m'appelle {0} {1}", Nom, Prenom); } public static List<PersonnageStapled> LireIni(string FileName) { List<PersonnageStapled> lesPersos = new List<PersonnageStapled>(); //J'utilise une méthode pas forcément optimisée mais accessible pour un débutant string toutLeTexte = File.ReadAllText(FileName);//je charge tout le fichier string[] persos = toutLeTexte.Split(new[] { "[Personnage]\r\n" },StringSplitOptions.RemoveEmptyEntries);//je découpe le texte par le mot clé personnage foreach(string perso in persos)//j'itère chaque personnage { string[] lesLignes = perso.Split(new[] { "\r\n" }, StringSplitOptions.None);//je découpe par ligne //je pars du principe que le fichier est toujours parfaitement bien formaté (c'est l'un des inconvenients de ce format...) PersonnageStapled nouveauPerso = new PersonnageStapled(); nouveauPerso.Nom = lesLignes[0].Split('=')[1];//je découpe par le = et je prends le 2eme nouveauPerso.Prenom = lesLignes[1].Split('=')[1]; nouveauPerso.Race = lesLignes[2].Split('=')[1]; nouveauPerso.Age = Convert.ToInt32(lesLignes[3].Split('=')[1]);//il faut convertir en int nouveauPerso.Description = lesLignes[4].Split('=')[1]; nouveauPerso.Arme = lesLignes[5].Split('=')[1]; nouveauPerso.Classe = (Classe)Enum.Parse(typeof(Classe), lesLignes[6].Split('=')[1]);//il faut convertir en Classe nouveauPerso.Sexe = lesLignes[7].Split('=')[1]; nouveauPerso.Conjoint = lesLignes[8].Split('=')[1]; nouveauPerso.Autre = lesLignes[9].Split('=')[1]; lesPersos.Add(nouveauPerso); } return lesPersos; } } enum Classe { Sorcier, Guerrier }
Et dans le formulaire, pour afficher sur une listBox
listBox1.DataSource = PersonnageStapled.LireIni("test.ini");
Stapled
Messages postés
34
Date d'inscription
mercredi 17 mai 2017
Statut
Membre
Dernière intervention
10 janvier 2018
10 janv. 2018 à 14:16
10 janv. 2018 à 14:16
Bonjour,
Désolé pour avoir tardé à répondre. Je vous remercie pour votre aide, je vais essayer de faire fonctionner ce code avec mon application.
Mon fichier ini a été construit de cette manière :
Désolé pour avoir tardé à répondre. Je vous remercie pour votre aide, je vais essayer de faire fonctionner ce code avec mon application.
Mon fichier ini a été construit de cette manière :
private void button1_Click(object sender, EventArgs e) { textBox1.Text = textBox1.Text; comboBoxclasse.Items.Add(comboBoxclasse.Text); int N_ident;// n° du fichier do { N_ident = (new Random()).Next(0, 9999999); } while (File.Exists(Application.StartupPath + @"\personnage\" + N_ident.ToString() + ".ini")); Ini Data = new Ini(Application.StartupPath + @"\personnage\" + N_ident.ToString() + ".ini"); Data.Write("Personnage", "Nom", textBox1.Text); Data.Write("Personnage", "Prenom", textBox2.Text); Data.Write("Personnage", "Race", textBox4.Text); Data.Write("Personnage", "Age", textBox3.Text); Data.Write("Personnage", "Description", textBox5.Text); Data.Write("Personnage", "Arme", comboBox2.Text); Data.Write("Personnage", "Classe", comboBoxclasse.Text); Data.Write("Personnage", "Male", radioButton1.Text); Data.Write("Personnage", "Femme", radioButton2.Text); Data.Write("Personnage", "Autre", radioButton3.Text); Close(); }
Stapled
Messages postés
34
Date d'inscription
mercredi 17 mai 2017
Statut
Membre
Dernière intervention
10 janvier 2018
10 janv. 2018 à 17:25
10 janv. 2018 à 17:25
Oui c'est ça
Stapled
Messages postés
34
Date d'inscription
mercredi 17 mai 2017
Statut
Membre
Dernière intervention
10 janvier 2018
10 janv. 2018 à 23:12
10 janv. 2018 à 23:12
Elle provient d'une autre page .cs intitulée IniParser.cs
Elle est lié à l'autre page avec un using.
Elle est lié à l'autre page avec un using.
7 janv. 2018 à 00:56
Je suis conscient que les fichiers ini sont désuets mais j'aimerai quand même savoir comment afficher certaines données enregistrées dans un fichier ini dans une listview.
7 janv. 2018 à 09:58
Mais pour te montrer, il faudrait un exemple de ton fichier
7 janv. 2018 à 14:55
(c'est du jeu de rôle)
7 janv. 2018 à 15:35
7 janv. 2018 à 15:47