Travailler avec des données est une des tâches principales dans la programmation avec n’importe quelle langue. Souvent, vous devez stocker des données du programme dans un format qui peut facilement être lu par d’autres programmes aussi bien. Un des moyens plus courants pour ce faire est en écrivant les données dans un fichier de valeurs de séparés par des virgules (CSV). Un fichier CSV suit un format simple : chaque champ de données est séparée des autres par une virgule, et chaque enregistrement existe sur sa propre ligne.
Difficulté : modérée
Instructions
Vous aurez besoin de choses
- Visual c# (2005 ou plus ; Expresse Edition suffira)
- En Visual c#, créez la classe qui représente les données que vous enregistrerai. Cet exemple utilise une classe vraiment simple représente une personne, avec l’anniversaire, nom et prénom :
public class personne {
private string firstName ;
private string lastName ;
Anniversaire de DateTime privé ;
public string FirstName {
get {return firstName;}
Set {firstName = value;}
}
public string LastName {
get {return lastName;}
Set {lastName = value;}
}
public DateTime anniversaire {
get {return anniversaire;}
Set {anniversaire = value;}
}
}
- Ajoutez une méthode de « ToCSV » après la déclaration de propriété anniversaire. Cela facilitera la traduction de l’objet de données au dossier CSV.
public string {ToCSV()
retour firstName + «, » + lastName + «, » + birthDay.ToShortString() ;
}
- Ajoutez une méthode de « FromCSV » après la méthode ToCSV. cela vous permettra de remplir un objet personne à partir d’une chaîne CSV.
public void FromCSV (string, csv) {
/ / Si csv est null ou vide, ne faites rien.
Si (String.IsNullOrEmpty(csv)) {
retour ;
}
String [] parties = csv.split (nouveau char [] {“,”}) ;
This.FirstName = parties [0] ;
This.LastName = parties [1] ;
This.birthDay = DateTime.Parse(parts[2]) ;
}
- Ajoutez une méthode statique pour créer le fichier CSV. Depuis un fichier CSV contient plusieurs enregistrements, créer cette autre de travailler avec une collection (IList) des objets de la personne. (Note que vous devrez ajouter l’espace de noms System.IO à votre utilisation de l’article ; Visual Studio sera probablement l’ajouter pour vous, ou au moins vous permettent de le résoudre via le menu contextuel).
public CreateCSVFile void statique (IList personnes, string fileName) {
à l’aide de (StreamWriter sw = nouvelle StreamWriter(fileName)) {
{foreach (p personne chez les personnes)
SW.WriteLine(p.ToCSV()) ;
}
}
}
- Ajoutez une autre méthode statique, « ReadCSVFile » après la méthode CreateCSVFile. Cela fera exactement le contraire que la méthode précédente–il prendra un chemin de fichier CSV et construire une collection (IList) des objets de la personne de celui-ci.
IList statique publique ReadCSVFile (string fileName) {
à l’aide de (sr StreamReader = nouvelle StreamReader(fileName)) {
La liste des lignes = nouvelle liste () ;
String curLine = sr.ReadLine() ;
tandis que (curLine! = null) {
lignes.Add(curLine) ;
curLine = sr.ReadLine() ;
}
La liste des res = nouvelle liste () ;
{foreach (string ligne lignes)
Personne p = new Person() ;
p.FromCSV(Line) ;
res.Add(p) ;
}
retour res ;
}
}
Conseils & avertissements
Pour conserver les exemples bref, beaucoup de vérification des erreurs a été laissé sortir ; vous aurez envie de vérifier que les choses existent avant de commencer à travailler avec eux (tels que, le nom de fichier passé aux méthodes Read/création doit être une chaîne valide et le fichier que vous essayez de lire doit exister).