2016-05-17 2 views
-2

i gespeicherten Daten von Benutzern in Textdatei Trennzeichen verwenden und dies ist mein Code diesen Wie speichern Sie Daten aus TXT-Datei in XML-Datei mit C#?

Student std = new Student(); 
dataGridView1.Rows.Clear(); //to clear the dataGridView Before showing the data 
dataGridView1.Refresh(); 
List<Student> students = new List<Student>(); 
using (StreamReader sr = new StreamReader(txt_path.Text)) 
{ 
    int x = 0; 
    while (sr.Peek() >= 0) 
    { 
     string str; 
     string[] strArray; 
     str = sr.ReadLine(); 

     strArray = str.Split('@', '#'); 
     Student s = new Student(); 
     s.ID = int.Parse(strArray[0]); 
     s.Name = strArray[1]; 
     s.Address = strArray[2]; 
     s.Phone = strArray[3]; 

     DataGridViewRow row = new DataGridViewRow(); 
     row.CreateCells(dataGridView1); // this line was missing 
     row.Cells[x].Value = s.ID; 
     row.Cells[++x].Value = s.Name; 
     row.Cells[++x].Value = s.Address; 
     row.Cells[++x].Value = s.Phone; 

     dataGridView1.Rows.Add(row); 
     students.Add(s); 
     x = 0; 
    } 
} 

hier ist das Problem

tun, nachdem ich Daten in Textdatei speichern, dann will ich es in XML-Datei zu halten, wie „in das Bild".

enter image description here

Ich habe versucht, aber ich nicht wie in diesem Bild

enter image description here

Dies ist der Code für das, was ich in der seconde Bild machen

  try 
     { 
      List<Student> students = new List<Student>(); 
      using (StreamReader sr = new StreamReader(txt_path.Text)) 
      { 

       string xmlc = string.Empty; 
       while (sr.Peek() >= 0) 
       { 
        string str; 
        string[] strArray; 

        str = sr.ReadLine(); 

        if (!string.IsNullOrWhiteSpace(str) && !str.StartsWith("#")) 
        { 
         xmlc += str; 
         strArray = xmlc.Split('@', '#'); 
         saveXml.saveData(xmlc, "data.xml"); 
         saveXml.saveData(strArray, "data.xml"); 
        } 

        Student s = new Student(); 
        s.ID = int.Parse(strArray[0]); 
        s.Name = strArray[1]; 
        s.Address = strArray[2]; 
        s.Phone = strArray[3]; 




        students.Add(s); 


       } 
      } 
     } 

     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 

text file

+1

Können Sie uns den Code zeigen, der zum Erstellen/Schreiben von 'Xml' verwendet wird? –

+0

@HariPrasad Ich habe meine Frage bearbeitet. –

+0

@FelicePollano aber diese Daten in DataGridview und Textdatei speichern –

Antwort

0

Es ist etwas unklar, schau dir deinen Code an Ich gehe davon aus, dass du eine Textdatei lesen und eine Xml Datei erzeugen willst.

Sie könnten so etwas tun.

var students = File.ReadLines(txt_path.Text) 
    .Select(line=>line.Split('@', '#') 
    .Select(x=> new Student() 
       { 
        ID = int.Parse(x[0]), 
        Name = x[1], 
        Address = x[2], 
        Phone = x[3] 
       }) 
    .ToList(); 

Sobald Sie die Liste von Studenten bekommen könnten Sie Linq zu Xml verwenden und eine XML-Datei erstellen.

XElement element = 
    new XElement("Students", 
     (from student in students 
      select new XElement("Student", 
       new XElement("ID", student.ID), 
       new XElement("Name",student.Name), 
       new XElement("Address", student.Address), 
       new XElement("Phone",student.Phone) 
      ) 
     ) 
    ); 

element.Save(outputfile); 

Last but not least können Sie List<Student> als Bindungsquelle zu DataGridView verwenden.

dataGridView1.DataSource new BindingSource(new BindingList<Student>(students); 

Überprüfen Sie diese demo Sie erhalten eine Idee, wie das funktioniert.

Verwandte Themen