Aller au contenu principal

Fichiers CSV et séparateurs

La méthode Split()

  • C'est une méthode qui s'applique à une chaîne de caractères. Elle retourne un tableau qui contient les sous-chaînes délimitées par le caractère spécifié.

    string chaine = "fraise,pomme,poire,kiwi";
    string[] tabFruits = chaine.Split(',');
    // tabFruits contient : ["fraise", "pomme", "poire", "kiwi"]

    Exemple Split

Exemples : Lecture d'un fichier texte avec séparateur

  • Lecture d'une ligne dans un fichier

    StreamReader objFichier = new StreamReader("informations.txt");
    string ligneLue = "";
    string[] tabNoms;
    if (!objFichier.EndOfStream)
    {
    ligneLue = objFichier.ReadLine();
    tabNoms = ligneLue.Split('/');
    }
    objFichier.Close();
  • Lecture d'une ligne d'un fichier. Les données extraites sont de type double

    if (!objFichier.EndOfStream)
    {
    string ligneLue = objFichier.ReadLine();
    string[] tabPrix = ligneLue.Split('/');
    double prix = double.Parse(tabPrix[0]); // prix vaut 105
    }

    Exemple double 1 Exemple double 2

La méthode Write() avec un objet StreamWriter

  • La méthode Write() écrit dans le fichier sans ajouter un saut de ligne.

    StreamWriter objFichier = new StreamWriter("resultats.txt");
    string[] tabNoms = { "Marie Tremblay", "Julie Labelle", "Jean Lebeau" };
    for (int index = 0; index < tabNoms.Length - 1; index++)
    {
    objFichier.Write(tabNoms[index] + "/");
    }
    objFichier.Write(tabNoms[tabNoms.Length - 1]); // écrire le dernier élément du fichier
    objFichier.Close();

Instanciation d'un tableau

  • Exemple d’un tableau préinitialisé :

    int[] tabNombres = { 3, 4, 10, 5, 8 }; // tableau pré initialisé avec 5 éléments entiers
  • Instancier un tableau d'entiers (5 éléments) et le remplir à partir d'un fichier :

    int[] tabNombres = new int[5]; // réserve 5 entiers
    StreamReader objFichier = new StreamReader("informations2.txt");
    int index = 0;
    while (!objFichier.EndOfStream && index < tabNombres.Length)
    {
    tabNombres[index] = int.Parse(objFichier.ReadLine());
    index++;
    }
    objFichier.Close();
  • Instancier un tableau de string à une dimension (3 éléments) :

    string[] tabChaines = new string[3];
  • Instancier un tableau de double à 2 dimensions (2 lignes × 3 colonnes) :

    double[,] tabPrix = new double[2, 3]; // 2 rangées, 3 colonnes
    StreamReader objFichier = new StreamReader("informations.txt");
    int rangée = 0;
    while (!objFichier.EndOfStream && rangée < tabPrix.GetLength(0))
    {
    string[] tabLu = objFichier.ReadLine().Split('/');
    for (int colonne = 0; colonne < tabPrix.GetLength(1); colonne++)
    {
    tabPrix[rangée, colonne] = double.Parse(tabLu[colonne]);
    }
    rangée++;
    }
    objFichier.Close();