Karakterláncok (Apache OpenOffice futásidejű programkönyvtár)
Karakterkészletekkel végzett munka
Karakterláncok kezelésénél az Apache OpenOffice Basic a Unicode karakterkészletet használja. Az Asc és a Chr függvénnyel megállapítható egy karakter Unicode-értéke és/vagy megállapítható egy Unicode-érték karaktere. A következő kifejezések különböző Unicode-értékeket rendelnek a Kod változóhoz:
Kod = Asc("A") ' Latin A betű (Unicode-érték: 65) Kod = Asc("€") ' Euró karakter (Unicode-érték: 8364) Kod = Asc("Л") ' Cirill Л betű (Unicode-érték: 1083)
Ennek megfelelően a
SajatKarakterlanc = Chr(13)
kifejezés a SajatKarakterlanc változóhoz a 13-as karaktert rendeli, amely a sortörés kódja.
A Chr parancsot gyakran használják Basic-programokban vezérlőkarakterek karakterláncokba történő beszúrásához. A
SajatKarakterlanc = Chr(9) + "Ez egy teszt." + Chr(13)
kifejezésben a szöveget egy tabulátorkarakter (Unicode-érték: 9) előzi meg, és egy sortörés (Unicode-érték: 13) lesz utána.
Hozzáférés a karakterlánc részeihez
Az Apache OpenOffice Basic három függvényt biztosít a karakterláncok részeinek kezeléséhez, plusz egyet a hossz megállapításához:
- Left(Karakterlánc, Hossz)
- visszaadja a Karakterlánc első Hossz darab karakterét.
- Right(Karakterlánc, Hossz)
- visszaadja a Karakterlánc utolsó Hossz darab karakterét.
- Mid(Karakterlánc, Kezdet, Hossz)
- visszaadja a Karakterlánc Hossz darab karakterét a Kezdet pozíciótól.
- Len(Karakterlánc)
- visszaadja a Karakterlánc karaktereinek számát.
Az előbb említett függvényekre láthatunk példát az alábbiakban:
Dim MyString As String Dim MyResult As String Dim MyLen As Integer MyString = "Ez egy teszt" MyResult = Left(MyString,5) ' Az "Ez egy" karakterláncot adja vissza. MyResult = Right(MyString, 5) ' A "teszt" karakterláncot adja vissza. MyResult = Mid(MyString, 4, 5) ' Az "egy te" karakterláncot adja vissza. MyLen = Len(MyString) ' A 12-t adja vissza.
Keresés és csere
Az Apache OpenOffice Basic rendelkezik egy InStr függvénnyel egy karakterlánc másik karakterláncban történő megkereséséhez:
ResultString = InStr (SearchString, MyString)
A SearchString paraméter a keresendő karakterlánc, amelyet meg akarunk találni a MyString karakterláncban. A függvény visszaad egy számot, ahol a SearchString először megtalálható a MyString karakterláncban. Ha a karakterláncnak másik előfordulását akarjuk megtalálni, a függvény lehetőséget biztosít, hogy megadjunk egy kezdőpozíciót, ahonnan az Apache OpenOffice Basic elkezdi a keresést. Ebben az esetben a függvény szintaxisa a következő:
ResultString = InStr(StartPosition, MyString, SearchString)
Ez előző példában az InStr nem különböztette meg a kis- és nagybetűket. Ha azt akarjuk, hogy az InStr megkülönböztesse a kis- és nagybetűket, akkor adjuk a függvényhez a 0 paramétert, ahogy az a következő példában látható:
ResultString = InStr(MyString, SearchString, 0)
Az előző függvényekkel a programozók megkereshetnek és lecserélhetnek egy karakterláncot egy másikban:
Function Replace(Source As String, Search As String, NewPart As String) Dim Result As String Dim StartPos As Long Dim CurrentPos As Long Result = "" StartPos = 1 CurrentPos = 1 If Search = "" Then Result = Source Else Do While CurrentPos <> 0 CurrentPos = InStr(StartPos, Search, Source) If CurrentPos <> 0 Then Result = Result + Mid(Source, StartPos, _ CurrentPos - StartPos) Result = Result + NewPart StartPos = CurrentPos + Len(Search) Else Result = Result + Mid(Source, StartPos, Len(Source)) End If ' Position <> 0 Loop End If Replace = Result End Function
A függvény megkeresi a Search karakterláncot az InStr függvény használatával a Source karakterláncban. Ha a függvény megtalálja a keresett szöveget, akkor az adott szöveg előtti részt a Result visszatérési pufferbe menti. Ezután hozzáadja a NewPart karakterláncot a Search karakterlánc helyén. Ha nincs több találat, akkor a függvény a karakterláncból hátralévő részt hozzáadja a visszatérési pufferhez. Ezután visszaadja az így létrehozott karakterláncot a cserefolyamat eredményeként.
Mivel a karakterláncok egy részének lecserélése az egyik leggyakoribb feladat, azért a Mid függvény ki van bővítve az Apache OpenOffice Basic programban, így ezt automatikusan el tudja végezni. A következő példa lecserél három karaktert a volt szóra a MyString karakterlánc negyedik karakterétől.
Dim MyString As String MyString = "Ez itt az én szövegem." Mid(MyString, 4, 3, "volt")
Karakterláncok formázása
A Format függvény a számokat karakterláncként formázza. Ehhez meg kell adnunk egy Format formázási kifejezést, amelyet a program sablonként használ a számok formázásához. A sablonban minden helyfoglaló meghatározza a kimenet egy adott karakterét. A sablon öt legfontosabb helyfoglaló karaktere a nulla (0), a kettőskereszt (#), a pont (.), a vessző (,) és a dollárjel ($).
A 0 karakter a sablonban biztosítja, hogy egy adott szám a megfelelő helyre kerüljön. Ha nincs megadva szám, akkor 0 jelenik meg helyette.
A . helyett az operációs rendszer területi beállításainak megfelelő tizedesjel jelenik meg.
Az alábbi példa bemutatja, hogyan adhatók meg a tizedesjel utáni számjegyek a 0 és a . használatával:
MyFormat = "0.00" MyString = Format(-1579.8, MyFormat) ' -1579,80 lesz az eredmény MyString = Format(1579,8, MyFormat) ' 1579,80 lesz az eredmény MyString = Format(0,4, MyFormat) ' 0,40 lesz az eredmény MyString = Format(0,434, MyFormat) ' 0,43 lesz az eredmény
Ehhez hasonlóan kezdő nullák adhatók hozzá a számhoz a kívánt hossz eléréséhez:
MyFormat = "0000.00" MyString = Format(-1579.8, MyFormat) ' -1579,80 lesz az eredmény MyString = Format(1579,8, MyFormat) ' 1579,80 lesz az eredmény MyString = Format(0.4, MyFormat) ' 0000,40 lesz az eredmény MyString = Format(0.434, MyFormat) ' 0000,43 lesz az eredmény
A , az operációs rendszer által ezreselválasztóként használt karaktert helyettesíti, és a # olyan számjegyet vagy helyet jelöl, amely csak akkor jelenik meg, ha szükség van rá.
MyFormat = "#,##0.00" MyString = Format(-1579.8, MyFormat) ' -1 579,80 lesz az eredmény MyString = Format(1579,8, MyFormat) ' 1 579,80 lesz az eredmény MyString = Format(0,4, MyFormat) ' 0,40 lesz az eredmény MyString = Format(0,434, MyFormat) ' 0,43 lesz az eredmény
A $ helyén a Format függvény a rendszer pénznemjelét jeleníti meg (ebben a példában feltettük, hogy Magyarország van beállítva):
MyFormat = "#,##0.00 $" MyString = Format(-1579.8, MyFormat) ' -1 579,80 Ft lesz az eredmény MyString = Format(1579,8, MyFormat) ' 1 579,80 Ft lesz az eredmény MyString = Format(0,4, MyFormat) ' 0,40 Ft lesz az eredmény MyString = Format(0,434, MyFormat) ' 0,43 Ft lesz az eredmény
A VBA-ban használt dátum- és időformázási utasítások szintén használhatóak:
Sub Main Dim MyDate As Date MyDate = "01/06/98" TestStr = Format(MyDate, "mm-dd-yyyy") ' 01-06-1998 MsgBox TestStr End Sub
Content on this page is licensed under the Public Documentation License (PDL). |