2016-09-16 1 views
0

le problème est quand j'imprimer des données dans le fichier « M100.csv », je ne vois la seule ligne de:streamWriter (ne peut pas taper le texte intégral) C#

    writer1.WriteLine("{0} {1} {2} {3} {4} {5} {6}", 
        houses[i].District, houses[i].Street, houses[i].Number, 
        houses[i].Type, houses[i].Years, houses[i].Area, houses[i].Rooms); 
        writer1.WriteLine("\n"); 

« redacteur1 » doit imprimer deux lignes de différentes maisons, mais il n'en imprime qu'une seule. Je suis sûr que mes autres méthodes fonctionnent bien. Aussi je ne vois pas cette ligne:

   writer.WriteLine("{0} {1}","Duomenys apie visus murinius namus, kuriu plotas yra daugiau nei 100kv.m. :\n", 
      "Rajonas \t Gatve \t Numeris \t Tipas \t Metai \t Plotas \t Kambariu skaicius \n"); 
      writer.WriteLine("\n"); 

code complet:

public static void Print(Houses[] houses,int amount, int[] BrickHouseNumber,int[] BlockHouseNumber) 
    { 

     using (StreamWriter writer = new StreamWriter("C:\\Users\\Andrius\\Desktop\\Mokslams\\C#\\Pratybos\\P2\\P2.4\\M100.csv")) 
     { 
      writer.WriteLine("{0} {1}","Duomenys apie visus murinius namus, kuriu plotas yra daugiau nei 100kv.m. :\n", 
      "Rajonas \t Gatve \t Numeris \t Tipas \t Metai \t Plotas \t Kambariu skaicius \n"); 
      writer.WriteLine("\n"); 
     } 
     for (int i = 0; i < amount; i++) 
     { 
      if (BrickHouseNumber[i] > 0) 
      { 
       using (StreamWriter writer1 = new StreamWriter("C:\\Users\\Andrius\\Desktop\\Mokslams\\C#\\Pratybos\\P2\\P2.4\\M100.csv")) 
       { 
        writer1.WriteLine("{0} {1} {2} {3} {4} {5} {6}", 
        houses[i].District, houses[i].Street, houses[i].Number, 
        houses[i].Type, houses[i].Years, houses[i].Area, houses[i].Rooms); 
        writer1.WriteLine("\n"); 
       } 
      } 

} }

Répondre

0

Déclarant StreamWriter avec le constructeur de chemin ne sera créer ou écraser le fichier au emplacement. Étant donné que vous créez un nouvel écrivain de flux pour chaque écriture, vous tronquez et redémarrez effectivement le fichier, pour finir par une seule ligne de texte. Sans restructurer votre code, vous pouvez résoudre ce problème en modifiant le constructeur pour ajouter plutôt qu'écraser en transmettant true à la surcharge du constructeur.

new StreamWriter("C:\\Users\\Andrius\\Desktop\\Mokslams\\C#\\Pratybos\\P2\\P2.4\\M100.csv", true) 

En outre, la méthode WriteLine ajoutera automatiquement des fins de ligne. L'utilisation de WriteLine("\n") ajoute, en supposant un environnement Windows, un saut de ligne, un retour chariot et un autre saut de ligne. Cela va conduire à beaucoup d'espace blanc.