Strenge funksjoner

From Apache OpenOffice Wiki
Jump to: navigation, search


Som nevnt i avsnittet om datatypen String, brukes regnsettet Unicode.

Tegnkoder

Funksjonen Asc(t) gir tegnkoden for tegnet t, som i

Code = Asc("A")         ' Tegnet A (gir 65)
Code = Asc("€")         ' Eurotegn (gir 8364)
Code = Asc("Л")         ' Kyrillisk tegn Л (gir 1083)

mens Chr(v) gir det tegnet som har tegnkode v. Dette er nyttig ved innsetting av kontrollkoder, som i

rarString = Chr(9) + " god dag " + Chr(13)

Strengfunksjoner

Andre nyttige funksjoner er

  • Left(s,n) gir de n første tegn i s
  • Right(s,n) gir de n siste tegn i s
  • Mid(s,k,n) gir de første n tegn i s, fra posisjon k
  • Len(s) gir antall tegn i s

Noen eksempler:

Dim MyString As String
Dim MyResult As String
Dim MyLen As Integer
 
MyString = "This is a small test"
MyResult = Left(MyString,5)      ' gir "This "
MyResult = Right(MyString, 5)    ' gir " test"
MyResult = Mid(MyString, 8, 5)   ' gir " a sm"
MyLen = Len(MyString)            ' gir 20

Søking i strenger er

  • Instr(s,v) gir første posisjon i s, der v forekommer. Den gir 0 hvis v ikke er i s.
  • Instr(s,v,0) er som over, men ber om et casesensitivt søk (store er ulik småe bokstaver)
  • Instr(k,s,v) er som over, men leter fra posisjon k og ut (ignorerer starten)

Utbytting

En selvlaget funksjon for utbytting av strenger vises under:

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, Source, Search)
      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

Denne leter gjentatte ganger etter en tekst og bytter ut hvert forekomst av denne. Resultatet returneres til klienten.

Formattering

En formatstreng er en mal som beskriver hvordan data skal plasseres inn i en streng. Dette er nyttig bl.a. når data skal plasseres i kolonner.

  • Format(f, d) plasserer d i en streng slik f beskriver.

Formatstrengen har plassholdere for hvert data som skal inn. I tillegg kan en bruke kontrollkodene

  • 0 (nulltall): Her skal stå et tallsiffer.
  • . (punktum): Her skal desimalpunktet stå
  • , (komma): Her skal tusenplassen vises med skilletegn
    1. (grind): Har vises siffer hvis det ikke er 0
  • $ (dollar): Her vises gjeldende valutasymbol

Under vises hvordan kodene "0" og "." brukes for å angi antall siffer i desimalene.

MyFormat = "0.00"
MyString = Format(-1579.8, MyFormat)     ' gir "-1579,80"
MyString = Format(1579.8, MyFormat)      ' gir "1579,80"
MyString = Format(0.4, MyFormat)         ' gir "0,40"
MyString = Format(0.434, MyFormat)       ' gir "0,43"

Nuller i forkant sikrer et visst antall siffer:

MyFormat = "0000.00"
MyString = Format(-1579.8, MyFormat)     ' gir "-1579,80"
MyString = Format(1579.8, MyFormat)      ' gir "1579,80"
MyString = Format(0.4, MyFormat)         ' gir "0000,40"
MyString = Format(0.434, MyFormat)       ' gir "0000,43"

Komma brukes for å angi tusenplasser og grinda (#) angir at et siffer skal vises hvis det finnes.

MyFormat = "#,##0.00"
MyString = Format(-1579.8, MyFormat)     ' gir "-1.579,80"
MyString = Format(1579.8, MyFormat)      ' gir "1.579,80"
MyString = Format(0.4, MyFormat)         ' gir "0,40"
MyString = Format(0.434, MyFormat)       ' gir "0,43"

Med dollartegnet fremkommer et valutasymbol.

MyFormat = "#,##0.00 $"   
MyString = Format(-1579.8, MyFormat)     ' gir "-1.579,80 €" 
MyString = Format(1579.8, MyFormat)      ' gir "1.579,80 €" 
MyString = Format(0.4, MyFormat)         ' gir "0,40 €" 
MyString = Format(0.434, MyFormat)       ' gir "0,43 €"

Datoer inngår også i apparatet:

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