Creiamo un programma che ci permetta di memorizzare i dati dei nostri allenamenti di joggin (sempre che qualcuno di noi ne faccia)
Creiamo un progetto e lo chiamiamo corsa
Innanzitutto inserisco nella dichiarazione generale l’istruzione Imports System.IO.File
Quindi nel button_click inserirò le seguenti istruzioni
dim disco as System.io.file
Che crea una nuova istruzione che si chiama disco che si occuperà del flusso di dati dalll’hardisk
E poi l’istruzione scrivi che si occuperà del flusso in scrittura
Dim scrivi as system.io.streamwriter
Attenzione dobbiamo gestire il messaggio di errore nel caso che non si inserisca testo nelle textbox
If textbox1.text = “” then msgbox (“hai dimenticato la data”, Msgboxstyle.Exlamation, “ATTENZIONE”)
Poi aggiungo : exit sub (i : per aggiungere sulla stessa riga un’altra istruzione) l’istruzione significa esci dalla subroutine e non verranno eseguite le istruzioni successive
Nella riga sotto controlliamo l’inserimento nelle altre textbox.
If textbox2.text = “” then msgbox (“hai dimenticato il nome del percorso”, Msgboxstyle.Exlamation, “ATTENZIONE”) e anche in questo caso :exit sub
E poi
If textbox3.text = “” then msgbox (“hai dimenticato la distanza”, Msgboxstyle.Exlamation, “ATTENZIONE”) : exit sub
If textbox1.text= “” then msgbox (“attenzione
If textbox3.text = “” then msgbox (“hai dimenticato il tempo”, Msgboxstyle.Exlamation, “ATTENZIONE”) : exit sub
Quindi
Scrivi=disco.appendtext(“c:\nomefile.txt”)
Createtext lo crea, appendtext invece ci permette di aggiungere testo, se il file non esiste lo crea.
Ora aggiungo nel file la riga di testo inserita nella textbox1
Scrivi.writeline (Textbox1.text)
Scrivi.writeline (Textbox2.text)
Scrivi.writeline (Textbox3.text)
Scrivi.writeline (Textbox4.text)
Scrivi.close
Infine facciamo visualizzare al prg un messaggio
Msgbox (“dati memorizzati con successo”, msgboxstyle.Information, “Comunicazione”
Ora vado a vedere se esiste nella dir un file con quel nome (non c’è)
quindi lancio il programma.
Occupa 1kb
Miglioriamo il prg facendo scrivere la data al computer
Creiamo una list box con tutte le date (Ma di che anno?) usiamo invece un controllo messo a disposizione da VB MonthCalendar
Inserisco MonthCalendar sul form1 che amplierò opportunamente
Per programmarlo, faccio doppio clic su monthcalendar1 ed entro sull’evento di quando l’utente sceglierà il giorno
Con doppio click andiamo sull’evento datachanged
Private Sub MonthCalendar1_DateChanged ()
Io aggiungo
Textbox1.text = monthcalendar1.selectionstart (che è la data selezionata)
Vediamo se funziona.
Memorizziamo 2 corse.
Sfruttiamo questa funzione per cercare i dati della corsa di un certo giorno
Aggiungiamo un pulsante LEGGI
Quando premerò ci dovra essere una data nel textbox
Doppio clic sul button2 leggi
Dim disco as system.io.file
Dim leggi as system.io.streamreader
Dim riga as string
per il msg di errore se non si sceglie una data
If textbox1.text= “” then msgbox (“hai dimenticato la data dell’evento da cercare ”), msgboxstyle.exclamation, “ATTENZIONE” : exit sub
Leggi=disco.opentext (“c:\ nomefile”)
While leggi.peek <> -1
Creiamo una variabile riga che dobbiamo dichiarare come stringa
Riga = leggi.readline ()
If riga =textbox1.text then exit while
End while
Textbox2.text = leggi.readline ()
Textbox3.text = leggi.readline ()
Textbox4.text = leggi.readline ()
C’è però un problema vediamo qual è
Miglioriamo il programma mettendo un altro controllo infatti se alla data introdotta per la ricerca non esiste nelle corse memorizzate è necessario avvertire l’utente
allora creo una variabile controllore di tipo integer che inizializzo a 0
Lanciamo il prg e memorizziamo 2 corse.
Sfruttiamo questa funzione per cercare i dati della corsa di un certo giorno
Aggiungiamo un pulsante LEGGI
Quando premerò ci dovra essere una data nel textbox
Doppio clic sul button2 leggi
Dim disco as system.io.file
Dim leggi as system.io.streamreader
Dim riga as string
per il msg di errore se non si sceglie una data
If textbox1.text= “” then msgbox (“hai dimenticato la data dell’evento da cercare ”), msgboxstyle.exclamation, “ATTENZIONE” : exit sub
Leggi=disco.opentext (“c:\ nomefile”)
While leggi.peek <> -1
Creiamo una variabile riga che dobbiamo dichiarare come stringa
Riga = leggi.readline ()
If riga =textbox1.text then exit while
End while
Textbox2.text = leggi.readline ()
Textbox3.text = leggi.readline ()
Textbox4.text = leggi.readline ()
End sub
End class
Miglioriamo il programma mettendo un altro controllo infatti se alla data introdotta per la ricerca non esiste nelle corse memorizzate è necessario avvertire l’utente
Perciò creiamo utilizziamo la variabile integer controllore che inizializziamo a 0 e che diventerà 1 se la data inserita nella textbox coincide con una data delle corse memorizzate. Una volta usciti dal ciclo While con un if verificheremo il valore di controllore e il prg darà il messaggio adeguato.
Vediamo l’intero codice:
Imports System.IO.File
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim scrivi As System.IO.StreamWriter
If TextBox1.Text = “” Then MsgBox(“hai dimenticato la data”, MsgBoxStyle.Information, “ATTENZIONE”) : Exit Sub
If TextBox2.Text = “” Then MsgBox(“hai dimenticato il nome del percorso”, MsgBoxStyle.Information, “ATTENZIONE”) : Exit Sub
If TextBox3.Text = “” Then MsgBox(“hai dimenticato la distanza”, MsgBoxStyle.Information, “ATTENZIONE”) : Exit Sub
If TextBox4.Text = “” Then MsgBox(“hai dimenticato il tempo”, MsgBoxStyle.Information, “ATTENZIONE”) : Exit Sub
scrivi = IO.File.AppendText(“C:\Users\mavi\pippo.txt”)
scrivi.WriteLine(TextBox1.Text)
scrivi.WriteLine(TextBox2.Text)
scrivi.WriteLine(TextBox3.Text)
scrivi.WriteLine(TextBox4.Text)
scrivi.Close()
MsgBox(“dati memorizzati con successo!”, MsgBoxStyle.Information, “Comunicazione”)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim leggi As System.IO.StreamReader
Dim riga As String
Dim controllore As Integer
controllore = 0
If TextBox1.Text = “” Then MsgBox(“hai dimenticato la data per la ricerca”)
leggi = IO.File.OpenText(“C:\Users\mavi\pippo.txt”)
While leggi.Peek <> -1
riga = leggi.ReadLine()
If riga = TextBox1.Text Then controllore = 1 : Exit While
End While
If controllore = 1 Then
TextBox2.Text = leggi.ReadLine()
TextBox3.Text = leggi.ReadLine()
TextBox4.Text = leggi.ReadLine()
Else
MsgBox(” non ci sono corse in quella data”, MsgBoxStyle.Information, “ATTENZIONE”)
End If
End Sub
Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
Textbox1.text = monthcalendar1.selectionstart
End Sub
End Class