Přihlášení

Jméno

Heslo



Nejste členem?
Klikněte sem
a zaregistrujte se.

Zapomněli jste heslo?
Pro zaslání nového
Klikněte sem.

Photo cloud


progeCAD - alternativa AutoCAD ®
Dodavatelem školní verze konstrukčního 2D&3D programu progeCAD Professional je konstrukční a vývojová kancelář SoliCAD, s.r.o.
 Vertikalní menu, vodorovně rozbalovací, třiúrovňové

17. Zpracování textových souborů a práce s řetězci

Opět odběhneme od matematiky a budeme se věnovat práci s textovými řetězci. Nejdříve si nachystáme jednoduchý prohlížeč textových souborů. Jeho funkcí bude, že do TextBoxu zobrazí obsah textového souboru. Využijeme již dříve získané zkušenosti.


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.



Řetězcové funkce


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í



Len (řetězec)
Tato funkce vrací číslo, které udává délku textového řetězce ve znacích. Funkce vypadá takto:
Dim A As Integer
A = txtText.Text.Length
lblSoubor.Text = "Délka řetězce je " & A & " znakù"

Ucase
Tato funkce převede písmena v řetězci na velká
NovyText=Starytext.ToUpper
A v našem programu to vypadá takto:
Dim B As String
Dim C As String
B = txtText.Text
C = B.ToUpper
txtText.Text = C

LCase
Opak k předchozí funkci
NovyText=Starytext.ToLower
Mid
Tato funkce vrátí část řetězce, která začíná znakem původního řetězce, který je určen parametrem za počátek a délku určenou parametrem počet. Není-li délka určena, nový řetězec končí posledním znakém původního řetězce.
C = B.SubString(6,10)
InStr
Vyhledá počáteční pozici kratšího řetězce v delším řetězci – například písmena a (můžeme vyhledávat i slova – viz upravený příkaz v našem menu - InStr-slovo)
(Pokud bychom využili starší funkce InStr, můžeme volitelně nastavit parametr počátku vyhledávání):
C = InStr (2, „Visual Basic“, „Visual“) 'C=0...řetězec Visual se nepodařilo najít, protože jsme začali hledat až od druhého znaku)
Trim
Odstraní z řetězce vedoucí a koncové mezery
BezMezer=SMezerami.Trim

Úkoly:
1.Vyzkoušejte řetězcové funkce, zkuste upravit program i s jiným formulářem (zkuste využít třeba přepínač RadioButton – malou nápovědu najdete níže.)
2.Vytvořte a uložte spustitelný soubor (opakování)





Komentáře

Zatím nikdo nekomentoval. Buďte první kdo vloží svůj komentář.

Přidat komentář

Pro přidání komentáře musíte být přihlášený.

Hodnocení

Hodnotit mohou pouze přihlášení uživatelé.

Prosím přihlaště senebo se registrujte pro možnost hodnocení.

Zatím nikdo nehodnotil.
Vygenerované za: 0.06 sekund
5,115,974 návštěv