2010-04-14 24 views

Répondre

2

Il n'y a rien dans .NET qui fera cela pour vous, vous devez faire le travail vous-même.

Quel que soit l'événement qui déclenchera votre sauvegarde: ouvrez le fichier, parcourez le contenu de la liste en écrivant le texte dans le fichier, puis fermez le fichier. La proximité peut naturellement se faire via using:

using (var tw = new StreamWriter(filename)) { 
    foreach (ListViewItem item in listView.Items) { 
    tw.WriteLine(item.Text); 
    } 
} 
2

Si vous souhaitez exporter tous les sous-éléments que vous devez utiliser ce code:

StringBuilder sb; 

if (listView.Items.Count > 0) 
{ 
    // the actual data 
    foreach (ListViewItem lvi in listView.Items) 
    { 
     sb = new StringBuilder(); 

     foreach (ListViewItem.ListViewSubItem listViewSubItem in lvi.SubItems) 
     { 
      sb.Append(string.Format("{0}\t", listViewSubItem.Text)); 
     } 
     sw.WriteLine(sb.ToString()); 
    } 
    sw.WriteLine(); 
} 
+0

Comment est-ce que je pourrais lire le dossier ceci crée pour peupler le ListView la prochaine fois que je démarre l'application? –

0

Cela devrait fonctionner à 100%, je fait cela pour un projet à moi. Je sais que c'est 4 ans trop tard mais c'est ici.

 private void export2File(ListView lv, string splitter) 
     { 
      string filename = ""; 
      SaveFileDialog sfd = new SaveFileDialog(); 

      sfd.Title = "SaveFileDialog Export2File"; 
      sfd.Filter = "Text File (.txt) | *.txt"; 

      if (sfd.ShowDialog() == DialogResult.OK) 
      { 
       filename = sfd.FileName.ToString(); 
       if (filename != "") 
       { 
        using (StreamWriter sw = new StreamWriter(filename)) 
        { 
         foreach (ListViewItem item in lv.Items) 
         { 
          sw.WriteLine("{0}{1}{2}", item.SubItems[0].Text, splitter, item.SubItems[1].Text); 
         } 
        } 
       } 
      } 
     } 
+0

Je recommanderais d'ajouter un caractère de tabulation entre chaque sous-élément et une pause à la fin. Si quelqu'un utilise copier et coller à partir du fichier txt pour exceller, cela fera apparaître une table triée en Excel. En outre, dans le plus de texteditors il se manifesterait formated. – C4u

+0

Inutile ... Extrêmement. Tout ce que fait est de le formater spécifiquement pour 2 variables pour les 2 sous-éléments. Aucune idée pourquoi quelqu'un utiliserait Excel. La plupart des éditeurs de texte formateraient cela correctement, sauf pour le bloc-notes. –

+0

Aucune idée? Parce que ce sont des données dans une table. Pas moyen de dire si c'est nécessaire ou non tant que vous ne savez pas quel type de données est géré dans l'outil. – C4u

Questions connexes