Save and Open VB.NET

Status
Niet open voor verdere reacties.

jordidroj

Gebruiker
Lid geworden
29 okt 2009
Berichten
100
Heey,

Ik heb al veel Tut's gezocht over hoe je text files moet openen, hoe je ze moet manipuleren, hoe je ze moet safen etc. Maar altijd als ik iets probeer te doen krijg ik altijd weer error's.

Ik heb bijvoorbeeld dit:

Code:
Private Sub Command1_Click()
On Error GoTo errSub

Dim n_File As Integer
Dim Linea As String
    
    'Elimina el contenido del listbox
    List1.Clear
    
    'Número de archivo libre
    n_File = FreeFile
    
    'Abre el archivo para leer los datos
    Open text1.Text For Input As n_File
    
    'Recorre linea a linea el mismo y añade las lineas al control List
    Do While Not EOF(n_File)
        
        'Lee la linea
        Line Input #n_File, Linea
        List1.AddItem Linea
    Loop
    
Exit Sub
errSub:
'error
MsgBox "Número de error: " & Err.Number & vbNewLine & _
       "Descripción del error: " & Err.Description, vbCritical
End Sub

Private Sub Form_Load()

Command1.Caption = " Cargar en Listbox "

End Sub

(ik ben Spaans dus vandaar die Spaanse woordjes)

Maar altijd als ik dit doe krijg ik wel wat error's .. :(
Ik heb op internet gezocht en toen stond er zo iets dat VB.NET iets heel anders was dan VB6 en dat het daarom niet werkte ofzo.,

Maar weet iemand een goede code voor VB.NET 2008?

Alvast bedankt :)

Gr. Jordi
 
Simpel

Heey,

Het openen van een tekst bestand is niet moeilijk, maar voor ik je kan helpen moet ik weten waarin je de tekst (of wat dan ook) wilt plaatsen.

Als dat in een Listbox moet gebeuren kun je deze (simpele) codes gebruiken:


Dim lijn As String

'Voor het openen van het bestand:
OpenFile(1, "Jouw bestandje", OpenMode.Input)

'zo wordt het bestand lijn voor lijn uitgelezen en toegevoegd aan jou listbox
For i = 0 to Listbox.Items.Count - 1 'anders heb je er een teveel (als je weet wat ik bedoel)
lijn = LineInput(1) '1 is het nummer voor het bestand (als je meerdere bestanden opend, kun je ook andere getallen gebruiken
Listbox.Items.Add(lijn)
Next

FileClose(1) 'dit is om het bestand af te sluiten


Hopelijk was dit voldoende om je programma zonder errors te laten werken. Om het helemaal mooi te maken, kun je er nog een FileExists controle inzetten etc.

Veel succes ermee!

mr32
 
Heey,

Bedankt voor de reactie :D

Maar nu komt er een error bij open file.

Er staat: No se ha declarado el nombre 'Open File'.
Dit betekend zo iets als: De naam 'Open File' is niet gedeclared.
:S

Gr. Jordi
 
Ik gebruik altijd een StreamReader om tekstbestanden te lezen en een StreamWriter om tekstbestanden te schrijven.

Voordat ik een voorbeeld geef, moet ik wel precies weten waar je de tekst wilt laten opslaan en waar de tekst gelezen moet worden. Wil je bijvoorbeeld de tekst naar een txt bestand wegschrijven of juist alleen laten weergeven in een textbox ofzo.
 
Ik heb 100 comboboxes en in die comboboxes. In elke combobox zijn er 10 mogelijkheden. Als gebruiker van mijn programma moet steeds al die comboboxes invoeren voordat het programma resultaat kan geven. Maar stel dat ik die combinaties van al die comboboxes wil saven.

Dus bijvoorbeeld in combobox1 staat "Marte"
Combobox2 = "Luna"
ComboBox3 = "Venus"
ComboBox4 = "Sol"
etc. etc.

Nu wil ik dat de gegevens die je in de comboboxen hebt ingevoerd dat die opgeslagen worden in .txt bestandje.

Dus als je het .txt bestandje die je hebt opgeslagen daarna weer opend dat ComboBox1 weer "Marte" is, dat ComboBox2 weer "Luna" is etc. etc.

Gr. Jordi
 
Om te beginnen, Import je System.IO.

Plaats een panel op je form, en doe daar al je combobox controls op. Als je bijvoorbeeld nog ergens anders comboboxen hebt voor andere doeleinden waar je bijvoorbeeld juist niet de geselecteerde items van wilt opslaan, dan zal onderstaande code alleen de comboboxen die in de panel staan nemen.

Code voor het opslaan:

Code:
        Dim swWrite As New StreamWriter("C:\comboboxes.txt", False)

        For Each cbb As ComboBox In Panel1.Controls
            swWrite.WriteLine(cbb.Name & "=" & cbb.SelectedItem)
            swWrite.Flush()
        Next
        swWrite.Close()
        swWrite.Dispose()

Code voor het laden:

Code:
        Dim swRead As New StreamReader("C:\comboboxes.txt")
        Dim Line As String = swRead.ReadLine

        Do While Not Line Is Nothing
            Dim ArrLine() As String = Line.Split("=")
            For Each cbb As ComboBox In Panel1.Controls
                If cbb.Name = ArrLine(0) Then
                    cbb.SelectedItem = ArrLine(1)
                End If
            Next
            Line = swRead.ReadLine
        Loop

Getest en werkende. :)
 
Laatst bewerkt:
Heey,

Tnx voor het voorbeeldje! :D

Nu ben ik weer een stapje verder in mijn programmatje :)

Gr. Jordi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan