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

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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