Vytvoříme formulář s těmito objekty:
Menu – mnuOtevrit, mnuZavrit (Enabled=False), txtText (Enabled=False, MultiLine=True, Name=txtText, ScrollBars=Both, Text=prázdný), lblSoubor (Text=“Textový soubor načtete příkazem Soubor...Otevřít“)
– zde je událostní procedura, která proběhne při volbě Otevřít textový soubor:
Dim AllText, LineOfText As String
OpenFileDialog1.Filter = "Textové soubory (*.txt)|*.txt"
- Deklarujeme proměnné a přiřadíme hodnotu do vlastnosti Filter objektu dialogového okna Otevřít.
OpenFileDialog1.ShowDialog()
- procedura vyzve uživatele, aby zadal resp. Vybral cestu prostřednictvím objektu OpenFileDialog1
If OpenFileDialog1.FileName <> "" Then
Try 'Zkusí soubor otevřít a zachytí případné chyby
- Zachycuje chyby v bloku kódu Try...Catch
FileOpen(1, OpenFileDialog1.FileName, OpenMode.Input)
Do Until EOF(1) 'čte soubor po řádcích
LineOfText = LineInput(1)
'přidává postupně řádky do proměnné AllText
- Funkce LineInput kopíruje jeden řádek za druhým ze souboru do řetězcové proměnné AllText, kopíruje řádky tak dlouho, než narazí na konec souboru (EOF). Dojde-li při kopírování k chybě, zobrazí se o tom informace ve frázi Catch
AllText = AllText & LineOfText & vbCrLf
Loop 'aktualizuje popisek
lblSoubor.Text = OpenFileDialog1.FileName
txtText.Text = AllText 'zobrazí soubor
txtText.Select(1, 0) 'zruší výběr textu
txtText.Enabled = True 'zpřístupní obsah pole k úpravám
mnuZavrit.Enabled = True 'zpřístupní příkaz Zavřít
mnuOtevrit.Enabled = False 'zpřístupní příkaz Otevřít
Catch
MsgBox("Chyba při otevírání souboru.")
Finally
FileClose(1) 'Zavře soubor
End Try
End If
Další procedura je přiřazena nabídce Zavřít textový soubor:
txtText.Text = "" 'vyprázdní textové pole
lblSoubor.Text = "Textový soubor načtete příkazem Soubor...Otevřít."
mnuZavrit.Enabled = False
mnuOtevrit.Enabled = True
A takto vypadá výsledek:
Program můžeme upravit také tak, že přidáme jednoduchý textový editor. Podle výpisu jistě poznáte, jak program funguje.
V příkladu jsme pracovali s textem. Je velice užitečné umět pracovat s textem – s textovými řetězci. Řetězcové funkce budeme opět demonstrovat na našem příkladu. Menu doplníme o nabídky těchto funkcí