Guida al Visual Basic .NET
Capitolo 61° - Un semplice editor di testi
Per realizzare un editor di testi bisogna prima di tutto sapere come permettere all'utente di scegliere quale file aprire e in quale file
salvare ciò che verrà scritto. Queste semplici interazioni vengono amministrate da due controlli: OpenFileDialog e SaveFileDialog.
Esempio: Editor di testi
Dopo aver analizzato le proprietà importanti, si può procedere alla stesura del codice, ma prima una precisazione. Non avendo interfaccia
grafica sulla finestra, ma costituendo windows forms a sè stante, i controlli OpenFileDialog e SaveFileDialog possono essere inseriti nel
designer oppure inizializzati da codice indifferentemente (per quanto riguarda lo scopo). La diversità nell'usare un metodo piuttosto che un altro
sta nel fatto che il primo utilizza sempre lo stesso controllo, che potrebbe dare dei FileName errati in casi speciali, mentre il secondo
ne inizializza uno nuovo ad ogni evento, costando di più in termini di memoria. Nell'esempio seguente utilizzo il primo metodo, ma potrà
capitare che sfrutti anche il secondo in diverse altre occasioni.
Private Sub cmdOpen_Click(ByVal sender As Object, ByVal e As EventArgs)_ Handles cmdOpen.Click 'La funzione ShowDialog visualizza la finestra di dialogo e 'restituisce quale pulsante è stato premuto 'Se il pulsante corrisponde con OK, procediamo If FOpen.ShowDialog = Windows.Forms.DialogResult.OK Then 'Apre un file in lettura 'Usa la proprietà FileName di FOpen, che restituisce il 'path del file selezionato: è sicuro che il file esista 'perchè l'utente ha premuto Ok e non ha chiuso la 'finestra di dialogo Dim R As New IO.StreamReader(FOpen.FileName) 'Legge tutto il testo del file e lo deposita nella textbox txtFile.Text = R.ReadToEnd 'Chiude il file R.Close() End If End Sub Private Sub cmdSve_Click(ByVal sender As Object, ByVal e As EventArgs) _ Handles cmdSave.Click 'Viene visualizzata la finestra di dialogo If FSave.ShowDialog = Windows.Forms.DialogResult.OK Then 'Apre un file in scrittura, di ci si assicura che 'l'utente acconsenta alla sovrascrittura se già esistente 'mediante la proprietà OverwritePrompt Dim W As New IO.StreamWriter(FSave.FileName) 'Scrive tutto il contenuto della textbox nel file W.Write(txtFile.Text) 'Chiude il file W.Close() End If End Sub Private Sub cmdClose_Click(ByVal sender As Object, ByVal e As EventArgs) _ Handles cmdClose.Click If txtFile.Text <> "" And _ FSave.ShowDialog = Windows.Forms.DialogResult.OK Then Dim W As New IO.StreamWriter(FSave.FileName) W.Write(txtFile.Text) W.Close() End If End Sub Il sorgente può essere reso ancora più breve usando i metodi IO.File.WriteAllText e IO.File.ReadAllText.
C#, TypeScript, java, php, EcmaScript (JavaScript), Spring, Hibernate, React, SASS/LESS, jade, python, scikit, node.js, redux, postgres, keras, kubernetes, docker, hexo, etc...
|