2010-06-07 4 views
1

구조체를 텍스트 파일에 저장하고 같은 방식으로 다시 검색하는 것이 좋습니다.구조를 텍스트 파일에 저장하는 것이 가능합니다. C#

내가 구조 이름의 학생 정보를 생성은 값이

studentid, 학생 이름, 학생이 내가 TEXTFILE의 세부 사용하는 것이 reteive 좋아 많은 students.after에 대한 TEXTFILE이 구조 정보를 저장하고자 avg.i 구성 student id.i는 C#에서 응용 프로그램 형식으로 작업하고 있습니다.

+0

예, 대부분의 프로그래밍 언어에서 가능합니다. 당신이 알고 싶었던 다른 것이 있었습니까? –

답변

1

글쎄, 당신은 텍스트를 구성하는 XML 파일에 구조의 컬렉션을 저장할 수 XML

3

있다.

using System.Collections.Generic; 
    using System.IO; 
    using System.Xml; 
    using System.Xml.Serialization; 

    public class Student { 
     [XmlElement("id")] 
     public int id; 
     [XmlElement("name")] 
     public string name; 
    } 

    [XmlRoot("students")] 
    public class Students { 
     [XmlElement("students")] 
     public List<Student> students = new List<Student>(); 
    } 

    class Program { 
     static void Main(string[] args) { 
      Students s = new Students(); 
      s.students.Add(new Student() { id = 1, name = "John Doe" }); 
      s.students.Add(new Student() { id = 2, name = "Jane Doe" }); 
      XmlSerializer xs = new XmlSerializer(typeof(Students)); 
      using (FileStream fs = new FileStream("students.xml", FileMode.Create, FileAccess.Write)) { 
       xs.Serialize(fs, s); 
      } 
     } 
    } 

당신은 얻을 것이다 뭔가 같은 :
다음은 시작하는 아주 간단한 예입니다

<?xml version="1.0"?> 
<students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <students> 
    <id>1</id> 
    <name>John Doe</name> 
    </students> 
    <students> 
    <id>2</id> 
    <name>Jane Doe</name> 
    </students> 
</students> 
0

당신은 XML 파일을 사용할 수 있습니다; xml은 근본적으로 구조화 된 텍스트로, 정확히 찾고있는 것입니다. System.Xml 네임 스페이스로 시작하십시오.

2

또한 에서 살펴 수 :

직렬화를하고로 XML 문서에서 개체를 직렬화 복원합니다. XmlSerializer를 사용하면 개체를 XML로 인코딩하는 방법을 제어 할 수 있습니다.

파올로 (및 기타)처럼
0

나는 이와 같은 특정 클래스 및 컨테이너 클래스를 만들 것이다 :

[DataContract] 
public class Student 
{ 
    [DataMember] 
    public int ID { get; set; } 

    [DataMember] 
    public string FirstName { get; set; } 

    [DataMember] 
    public string LastName { get; set; } 
} 

[DataContract] 
public class StudentList 
{ 
    [DataMember] 
    public string Name { get; private set; } 

    [DataMember] 
    public List<Student> Students { get; private set; } 

    public StudentList(string name) 
    { 
     Name = name; 
     Students = new List<Student>(); 
    } 
} 

다음은보다 수 (드을)를 DataContractSerializer 직렬화. 위의 클래스는 대략적인 출발점입니다. 필요에 따라 등 개인 세터, 불변성,

하지만 같은 특정 클래스가있을 경우 쉽게 BindingSource를 만들 수 있습니다에 대해 생각해야, 그것으로 당신의 StudentList.Students를 넣고 시각화 된 DataGridView과 변화로이 BindingSource에 제공 그 목록.

관련 문제