opslaan

Status
Niet open voor verdere reacties.
als ik intyp streamreader dan staat het er gewoon onder maar als ik dan op . druk dan krijg ik alleen maar de keuze [Null]
 
Kijk, je moet nog een streamreader aanmaken. Je kunt niet zomaar ''StreamReader.ReadLine()" aanroepen zonder eerst een streamreader aan te maken.

Probeer dit;
Dim lezer As StreamReader = new StreamReader("pad naar het bestand")

En dan alle streamreaders in je code vervangen naar ''lezer''
Dus ''StreamReader'' vervangen naar ''lezer''

Dan word het ipv van;
While StreamReader.Peak <= 1
Naar
While lezer.Peak <= 1
 
ty hij doet het maar als ik iets wil opslaan dan krijg ik weer een error !

2poske8.jpg
 
Kan je de volledige code even hier plakken? Dan zal ik het proberen te bekijken & fixen :)
 
Imports System.IO

Public Class Form1
Dim streamWriter As System.IO.StreamWriter
Dim openResults As DialogResult
Dim saveResults As DialogResult
Dim fileReader As IO.StreamReader
Dim fileWriter As IO.StreamWriter
Private Sub OpenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenToolStripMenuItem.Click
Dim lezer As StreamReader = New StreamReader("pad naar het bestand")

While lezer.Peek > -1

Dim tempstr() As String = lezer.ReadLine.Split("|")

For Each control As Control In Me.Controls
If TypeOf control Is CheckBox Then
If control.Name = tempstr(0) Then CType(control, CheckBox).Checked = tempstr(1)
ElseIf TypeOf control Is TextBox Then
If control.Name = tempstr(0) Then control.Text = tempstr(1)
ElseIf TypeOf control Is Panel Then
If control.Name = tempstr(0) Then control.BackColor = Color.FromArgb(tempstr(1))
End If
Next

End While

lezer.Close()
lezer.Dispose()
End Sub

Private Sub SaveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripMenuItem.Click


For Each control As Control In Me.Controls
If TypeOf control Is CheckBox Then
streamWriter.WriteLine(control.Name & "|" & CType(control, CheckBox).Checked) 'Waarbij | de delimiter is om de de controlname te scheiden van de control property
ElseIf TypeOf control Is TextBox Then
streamWriter.WriteLine(control.Name & "|" & control.Text)
ElseIf TypeOf control Is Panel Then
streamWriter.WriteLine(control.Name & "|" & control.BackColor.ToArgb)
End If
Next

streamWriter.Close()
streamWriter.Dispose()
End Sub
End Class


ik heb een richbox en een button in de form1. zitten ook een menu strip
 
Probeer deze code eens, wel even goed knippen en plakken natuurlijk :)

Code:
Imports System.IO

Public Class Form1
Private Sub OpenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenToolStripMenuItem.Click
Dim lezer As StreamReader = New StreamReader("pad naar het bestand, zelf even AANPASSEN, bijvoorbeeld C:\Users\CaptainBri\Desktop\file.txt")
Dim openResults As DialogResult
While lezer.Peek > -1

Dim tempstr() As String = lezer.ReadLine.Split("|")

For Each control As Control In Me.Controls
If TypeOf control Is CheckBox Then
If control.Name = tempstr(0) Then CType(control, CheckBox).Checked = tempstr(1)
ElseIf TypeOf control Is TextBox Then
If control.Name = tempstr(0) Then control.Text = tempstr(1)
ElseIf TypeOf control Is Panel Then
If control.Name = tempstr(0) Then control.BackColor = Color.FromArgb(tempstr(1))
End If
Next

End While

lezer.Close()
End Sub

Private Sub SaveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripMenuItem.Click

Dim Schrijver As StreamWriter = New StreamWriter("pad naar het bestand, zelf even AANPASSEN, bijvoorbeeld C:\Users\CaptainBri\Desktop\file.txt")

For Each control As Control In Me.Controls
If TypeOf control Is CheckBox Then
Schrijver.WriteLine(control.Name & "|" & CType(control, CheckBox).Checked) 'Waarbij | de delimiter is om de de controlname te scheiden van de control property
ElseIf TypeOf control Is TextBox Then
Schrijver.WriteLine(control.Name & "|" & control.Text)
ElseIf TypeOf control Is Panel Then
Schrijver.WriteLine(control.Name & "|" & control.BackColor.ToArgb)
End If
Next

Schrijver.Close()

End Sub
End Class
 
Ik weet niet wat je allemaal aan het doen bent, maar je maakt een zootje van je code.

In deze screenshot:

http://i55.tinypic.com/2uhqumh.jpg

Heb je alles staan wat je nodig hebt. Ik zei al eerder dat je nog een geldig pad moet opgeven om de gegevens naar op te slaan. Zodra dat gedaan is, zal dat automatisch ook de rest van de errors (het onderstreepte woord writer) fixed.

In je laatste screenshot mis je bijvoorbeeld het stukje:

Code:
Dim NogEenWriter As New StreamWriter ( etc...

Of, mocht je een globale streamwriter aangemaakt hebben, dan moet je dit erbij zetten:

Code:
NaamVanJeGlobalWriterHier = New StreamWriter ( etc...

En misschien is het een idee om regelnummering aan te zetten zodat we makkelijker kunnen uitleggen waar je bijvoorbeeld code moet plaatsen.
 
Sorry hoor jongens, allemaal leuk en aardig, maar dit is een beetje een omweg :cool:.

Je kunt veel beter Application Settings aanmaken. (Heb ik al eerder gepost ;)), dan hoef je niet moeilijk te gaan doen met StreamWriters.

Je maakt een setting aan in: My Project > Settings.

Zo haal je een setting op:

Code:
Dim Test As String = My.Settings.Test

En zo schrijf je ernaar:

Code:
My.Settings.Test = "TEST"

Ik heb trouwens een voorbeeld genomen van een setting van het type String :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan