Visual basic 2010 express van textbox naar .txt file

Status
Niet open voor verdere reacties.

klaasie95

Gebruiker
Lid geworden
14 mei 2009
Berichten
46
Hallo,

Ik heb nu enige ervaring met visual basic 2010 express.

Maar ik wil graag een programma wat 3 verschillende text boxen te weten:

Naam:[Tekstbox1]
Achternaam:[tekstbox2]
Geboortedatum:[tekstbox3]
Nummer:[tekstbox4]

naam, achternaam en geboortedatum en nummer doe ik gewon met label.



maar het moet zo zijn dat als je die gegevens invult in het programma, de gegevens aan een .txt bestand worden toegevoegd. dat tekstbestand moet in mijn documenten staan.

en eventueel moet je met hetzelfde programma in dat tekstbestand kunnen zoeken, bijvoorbeeld als je het nummer intypt je de gevens van die persoon krijgt.

dus hoe exporteer je iets van tekstboxen naar een.txt file

en hoe zoek je daar dan in.

of is dit gemakkelijker met een database zoja wat is een goede gratis database (kan de works databse volstaan of moet ik iets anders nemen, acces 1997 lijkt mij wat oud?)

alvast bedankt
 
Om te beginnen, geef je textboxen duidelijke namen. Dit is natuurlijk niet een vereiste, je kunt de standaard namen (TextBox1, TextBox2 etc) gewoon laten voor wat ze zijn, maar toch wil ik jouw en iedereen aanraden om je controls duidelijke namen te geven zodat je ze makkelijker kunt onthouden/herkennen wanneer je code gaat schrijven.

Je kunt ze bijvoorbeeld zo noemen:

Naam: tbNaam
Achternaam: tbAchterNaam
Geboortedatum: tbGeboorte
Nummer: tbNummer

Duidelijke en korte namen.

Vervolgens kun je de texten in die textboxen zo wegschrijven:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Code:
        Dim writer As New StreamWriter(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\data.txt", True)

        writer.WriteLine(tbNaam.Text)           'Text in tbNaam wegschrijven plus een nieuwe regel
        writer.WriteLine(tbAchterNaam.Text)     'Text in tbAchterNaam wegschrijven plus een nieuwe regel
        writer.WriteLine(tbGeboorte.Text)       'Text in tbGeboorte wegschrijven plus een nieuwe regel
        writer.Write(tbNummer.Text)             'Text in tbNummer wegschrijven zonder een nieuwe regel

        writer.Dispose()
        writer.Close()

    End Sub

Als je een Type 'StreamWriter' is not defined error krijgt, moet je even de System.IO namespace importeren door Imports System.IO helemaal bovenaan je code venster te zetten.

Met de rest van je vragen kan ik je helaas net helpen, van databases heb ik geen kaas gegeten...

:thumb:
 
bdeankt nu kan ik verder.


maar ik heb nog een vraag.

is het ook mogelijk om een iedere keer een nieuw .txt bestandje aan te maken met als naam [inhoud van tbNaam].txt dus dat de naam van de persoon ook de naam van het bestandje is?
 
Verander:

Code:
Dim writer As New StreamWriter(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\data.txt", True)

In:

Code:
Dim writer As New StreamWriter(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\" & tbNaam.txt, False)

Maar let op, als er al een bestand bestaat met de naam van tbNaam.text word deze overschreven.

Je kunt dat met een simpele If statement nagaan en aan de hand daarvan bepalen wat er moet gebeuren, bijvoorbeeld, sla je het alsnog op of zeg je dat de eindgebruiker een andere naam moet invullen omdat deze al bestaat.
 
ik heb nu het volgende om de gegevens van 3 tekstboxen naar een .txt bestand te schrijven, ik had op internet nog een andere stukjes code gevonden die ik tot dit heb gebrouwen:
Code:
public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim path As String = "C:\Users\user1\Documents\DATA\DATA.txt"
        Dim naam As String = tbNAAM.Text
        Dim anaam As String = tbANAAM.Text
        Dim geboorte As String = tbGEBOORTE.Text
        Dim append As Boolean = True

        My.Computer.FileSystem.WriteAllText(path, naam, append)
        My.Computer.FileSystem.WriteAllText(path, anaam, append)
        My.Computer.FileSystem.WriteAllText(path, geboorte, append)


    End Sub
End Class

ik vond dit een wat overzichtelijkere code.

deze code werkt opzich wel goed maar ik heb nog enkele vragen

ik vroeg mij af of het hier ook mogelijk was om iedere keer een nieuw bestandje aan te maken met als naam de input van de tbNAAM tekstbox

en ik heb nu nog een klein probleempje dat de gegevens gewoon achter elkaar in het .txt komen is het mogelijk om bij ieder gegeven op een nieuwe regel te beginnen?

zoja, hoe?

alvast bedankt
 
Laatst bewerkt:
Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim path As String = "C:\Users\user1\Documents\DATA\" & tbNAAM.Text & ".txt"
        Dim naam As String = tbNAAM.Text & ControlChars.NewLine
        Dim anaam As String = tbANAAM.Text & ControlChars.NewLine
        Dim geboorte As String = tbGEBOORTE.Text

        My.Computer.FileSystem.WriteAllText(path, naam & anaam & geboorte, True)

    End Sub

Niet getest, maar dat moet voldoen.
 
ja hoermee is probleem opgelost maar ik wil graag dat na iedere textbox hij op een nieuwe regel in het txt bestandje begint is dat mogelijk?
 
nee dat deed hij eerst niet, nu wel:

Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim path As String = "C:\Users\user1\Documents\DATA\" & tbNAAM.Text & ".txt"
        Dim naam As String = tbNAAM.Text
        Dim anaam As String = tbANAAM.Text
        Dim geboorte As String = tbGEBOORTE.Text
        Dim nregel As String = ControlChars.NewLine
        My.Computer.FileSystem.WriteAllText(path, naam & nregel & anaam & nregel & geboorte, True)

    End Sub

bedankt voor uw hulp,
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan