Karakterláncok (Apache OpenOffice futásidejű programkönyvtár)

From Apache OpenOffice Wiki
Jump to: navigation, search
Book.png


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).
Personal tools