Funkcia Trim
Funkcia Trim nám odstráni v reťazci začiatočnú a konečnú medzeru. Poďme si ju vyskúšať.
1. príklad: Prvá skúška funkcie Trim
Sub Macro REM začiatok procedúry Dim retazec As String REM deklarácia premennej typu reťazec retazec = " Dnes je ale pekne však? " REM plníme reťazec znakmi MsgBox Trim(retazec) REM využitie funkcie Trim na odstránenie medzier a následný výpis na obrazovku End Sub REM koniec procedúry
Rozbor makra: Makro nám pekne v reťazci odstráni medzery. Ale pozor, neodstráni medzery vo vnútri celého reťazca. Je to pochopiteľné, pretože Trim odstraňuje len začiatočnú a konečnú medzeru v celom reťazci, nie čo sa nachádza vo „vnútri“ samotného reťazca.
2. príklad: Môžme reťazec zadať i do vnútra funkcie Trim
Sub Macro REM začiatok procedúry Dim retazec As String REM deklarácia premennej typu reťazec MsgBox Trim(" Slnko je najhmotnejšie teleso v Slnečnej sústave!" ) REM využitie funkcie Trim a výpis na obrazovku End Sub REM koniec procedúry
3. príklad: Reťazec definovaný užívateľom
Sub Macro REM začiatok procedúry Dim retazec As String REM deklarácia premennej typu reťazec retazec = InputBox("Zadaj reťazec taký, že na začiatku a na konci nech je medzera!") REM vstup od užívateľa If IsNull(retazec) Then Exit Sub REM ak užívateľ nič nezadal, makro končí If Len(Trim(retazec)) = 0 Then Exit Sub REM ak reťazec má dĺžku 0, inak povedané, užívateľ nič nezadal, makro potom končí MsgBox Trim(retazec) REM využitie funkcie Trim a výpis na obrazovku End Sub REM koniec procedúry
Rozbor makra: Pre zopakovanie, funkcia IsNull zisťuje, či bolo vôbec niečo napísané užívateľom. Funkcia Len zisťuje dĺžku reťazca.
4. príklad: Modifikovaný 3. príklad
Sub Macro REM začiatok procedúry Dim retazec As String REM deklarácia premennej typu reťazec Dim i As Integer REM deklarácia premennej typu celočíselného retazec = InputBox("Zadaj reťazec taký, že na začiatku a na konci nech je medzera!") REM vstup od užívateľa If IsNull(retazec) Then Exit Sub REM ak užívateľ nezadá žiadný reťazec, makro končí If Len(Trim(retazec)) = 0 Then Exit Sub For i = 0 To Len(retazec) REM cyklus s počtom iterácii dĺžky poľa retazec = retazec & Trim(retazec) REM využitie funkcie Trim Next REM ďalšia iterácia cyklu MsgBox retazec REM výpis na obrazovku End Sub REM koniec procedúry
Rozbor programu: Tento príklad slúži nato, aby sme videli, že skutočne i z tej pravej častí funkcia Trim odstráni medzeru. Avšak, trpí to neduhami, pretože v cykle vždy uložíme i predchádzajúce reťazce. Nie je to práve zdarná implementácia, ale ako zaujímavá ukážka to postačí. Lepšie táto funkcia vynikne napr. pri bunkách LO Calc, ale to až niekedy v budúcností.
Funkcie LTrim a RTrim
Funkcia Trim odstráni medzeru zľava aj sprava v reťazci. Funkcie LTrim zmaže len zľava a funkcia RTrim zmaže sprava. Podľa toho, akú medzeru by ste chceli odstrániť, vyberiete danú funkciu. V príklade si ukážeme oba funkcie a ich fungovanie.
5. príklad: Testujeme funkcie LTrim a RTrim
Sub Macro REM začiatok procedúry Dim retazec As String REM deklarácia premenných Dim retazec1 As String Dim i As Integer MsgBox "Definovane retazce programom: " & Chr(10) & LTrim("Pomaranč") & LTrim(" Pomaranč") & Chr(10) & RTrim("Pomaranč ") & RTrim("Pomaranč") REM výstup na obrazovku retazec = InputBox("Zadaj reťazec!") REM vstup prvý If IsNull(retazec) Then Exit Sub REM keď uživateľ nič nezadá, makro končí If Len(Trim(retazec)) = 0 Then Exit Sub For i = 0 To Len(retazec) REM cyklus retazec = retazec & LTrim(retazec) Next MsgBox retazec retazec1 = InputBox("Zadaj reťazec!") If IsNull(retazec1) Then Exit Sub If Len(Trim(retazec1)) = 0 Then Exit Sub For i = 0 To Len(retazec1) retazec1 = retazec1 & LTrim(retazec1) Next MsgBox retazec1 End Sub REM koniec procedúry