2007-10-19, 15:45
#1
TextReader tr = new StreamReader("namnen.txt");
string namnen = tr.ReadToEnd();
tr.Close();
foreach (string namn in namnen.Split('\n'))
{
listBox1.Items.Add(namn);
}
[Serializable]
public class Person
{
public string Namn;
public string Adress;
public int PostNr;
public string Ort;
// ToString() används av ListBox för att hämta strängen som skall visas i boxen
public override string ToString()
{
return this.Namn;
}
}
[Serializable]
public class AddressBook : List<Person> { }
AddressBook addressBook = new AddressBook();
Person p1 = new Person();
p1.Namn = "John Doe";
p1.Adress = "Adressvägen 1";
p1.PostNr = 12345;
p1.Ort = "Ortby";
addressBook.Add(p1);
Person p2 = new Person();
p2.Namn = "Jane Doe";
p2.Adress = "Gatuvägen 0";
p2.PostNr = 12346;
p2.Ort = "Ortby";
addressBook.Add(p2);
XmlSerializer serializer = new XmlSerializer(typeof(AddressBook)); // Skapar en xmlserializer för typen AddressBook
TextWriter writer = new StreamWriter("AddressBook.xml"); // IO-stream till din datafil
serializer.Serialize(writer, addressBook); // Do it...
writer.Close();
XmlSerializer serializer = new XmlSerializer(typeof(AddressBook)); // Samma här...
TextReader reader = new StreamReader("AddressBook.xml");
AddressBook ab = (AddressBook)serializer.Deserialize(reader); // .Deserialize() returnerar ett AddressBook-objekt, fast gör det av typen object, krävs alltså en explicit cast.
reader.Close();
listBox1.DataSource = ab;
listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged);
...
void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
// Det underliggande dataobjektet i listboxen är ett Person-objekt.
Person p = (Person)listBox1.Items[listBox1.SelectedIndex];
string popup = string.Format("Namn: {1}{0}Adress: {2}", Environment.NewLine, p.Namn, p.Adress);
MessageBox.Show(popup);
}
Public Type person
namn As String
tele As String
stad As String
mail As String
End Type
Dim typPersoner(1 To 100) As person 'anpassa
Private Sub cmdlaggtill_Click()
Open App.Path & "\data.txt" For Append As #1
namn = txtNamn.Text
telefon = txtTele.Text
stad = txtStad.Text
mail = txtMail.Text
Write #1, namn, telefon, stad, mail
Close #1
List1.Clear
cmduppdatera_Click
End Sub
Private Sub cmduppdatera_Click()
If Dir(App.Path & "\data.txt") = "" Then
MsgBox "data.txt existerar inte.", vbCritical & vbOKOnly, "data.txt borta"
Exit Sub
End If
List1.Clear
x = 0
Open App.Path & "\data.txt" For Input As #1
Do While Not EOF(1)
Input #1, namn, tele, stad, mail
x = x + 1
typPersoner(x).namn = namn
typPersoner(x).tele = tele
typPersoner(x).stad = stad
typPersoner(x).mail = mail
List1.AddItem typPersoner(x).namn
Loop
Close #1
End Sub
Private Sub Form_Load()
cmduppdatera_Click
End Sub
Private Sub List1_Click()
y = List1.ListIndex + 1
MsgBox "Namn: " & typPersoner(y).namn & vbCrLf & "Telefon: " & typPersoner(y).tele & vbCrLf & "Stad: " & typPersoner(y).stad & vbCrLf & "Mail: " & typPersoner(y).mail, vbOKOnly & vbInformation, "Information"
End Sub
Du måste vara medlem för att kunna kommentera
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!
Swish: 123 536 99 96 Bankgiro: 211-4106