Stringhe (libreria runtime di Apache OpenOffice)
Utilizzo dei set di caratteri
Per la gestione delle stringhe, Apache OpenOffice Basic utilizza il set di caratteri Unicode. Le funzioni Asc e Chr consentono di determinare il valore Unicode appartenente a un carattere e/o di individuare il carattere corrispondente a un dato valore Unicode. Le espressioni seguenti assegnano i vari valori Unicode alla variabile code:
Code = Asc("A") ' Latin letter A (Unicode-value 65)
Code = Asc("€") ' Euro character (Unicode-value 8364)
Code = Asc("Л") ' Cyrillic letter Л (Unicode-value 1083)
Per contro, l'espressione
MyString = Chr(13)
assicura che la stringa MyString sia inizializzata con il valore del numero 13, che corrisponde a un'interruzione di riga forzata.
Il comando Chr è spesso utilizzato nei linguaggi Basic per inserire caratteri di controllo in una stringa. L'assegnazione
MyString = Chr(9) + "This is a test" + Chr(13)
assicura pertanto che il testo sia preceduto da un carattere di tabulazione (valore Unicode 9) e che venga aggiunta un'interruzione di riga forzata (valore Unicode 13) dopo il testo.
Accesso a parti di una stringa
Apache OpenOffice Basic comprende quattro funzioni che restituiscono stringhe parziali:
- Left(MyString, Length)
- Restituisce i primi caratteri per la lunghezza di MyString.
- Right(MyString, Length)
- Restituisce gli ultimi caratteri per la lunghezza di MyString.
- Mid(MyString, Start, Length)
- Restituisce i primi caratteri per la lunghezza di MyString a partire dalla posizione Start.
- Len(MyString)
- Restituisce il numero di caratteri di MyString.
Di seguito sono riportati alcuni esempi di chiamate per le funzioni qui descritte:
Dim MyString As String
Dim MyResult As String
Dim MyLen As Integer
MyString = "This is a small test"
MyResult = Left(MyString,5) ' Provides the string "This "
MyResult = Right(MyString, 5) ' Provides the string " test"
MyResult = Mid(MyString, 8, 5) ' Provides the string " a sm"
MyLen = Len(MyString) ' Provides the value 21
Ricerca e sostituzione
Apache OpenOffice Basic include la funzione InStr, che permette di ricercare una stringa parziale all'interno di un'altra stringa:
ResultString = InStr (MyString, SearchString)
Il parametro SearchString specifica la stringa da ricercare in MyString. La funzione restituisce un numero contenente la posizione in cui SearchString compare per la prima volta all'interno di MyString. Per individuare altre corrispondenze della stringa, la funzione offre inoltre l'opportunità di specificare una posizione di partenza iniziale da cui Apache OpenOffice Basic inizia la ricerca. In questo caso, la sintassi della funzione è:
ResultString = InStr(StartPosition, MyString, SearchString)
Negli esempi precedenti, InStr ignora i caratteri in maiuscolo e in minuscolo. Per modificare la ricerca in modo che InStr distingua tra maiuscole e minuscole, aggiungere il parametro 0, come illustrato nell'esempio seguente:
ResultString = InStr(MyString, SearchString, 0)
Utilizzando le funzioni presentate in precedenza per la modifica delle stringhe, i programmatori potranno eseguire ricerche e sostituzioni di una stringa all'interno di un'altra:
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
La funzione esegue un ciclo di ricerca nella stringa Search tramite InStr nel termine originale Source. Se individua il termine, prende la parte prima dell'espressione e la scrive nel buffer di restituzione Result. Aggiunge la sezione Part al punto del termine di ricerca Search. Se non vengono reperite altre corrispondenze per il termine, la funzione determina la parte della stringa rimasta e la aggiunge al buffer di restituzione. Restituisce la stringa prodotta in questo modo come risultato del processo di sostituzione.
Poiché la sostituzione di parti di sequenze di caratteri è una delle funzioni utilizzate più frequentemente, la funzione Mid in Apache OpenOffice Basic è stata ampliata in modo che questa attività sia eseguita automaticamente. L'esempio seguente sostituisce tre caratteri con la stringa is dall'ottava posizione della stringa MyString.
Dim MyString As String
MyString = "This was my text"
Mid(MyString, 6, 3, "is")
Formattazione di stringhe
La funzione Format formatta i numeri sotto forma di stringa. Per procedere, la funzione si aspetta che sia specificata un'espressione Format, che viene quindi utilizzata come modello per la formattazione dei numeri. Ogni segnaposto all'interno del modello assicura che questa voce sia formattata in modo corrispondente nel valore di output. I cinque segnaposto più importanti all'interno di un modello sono i caratteri zero (0), cancelletto (#), punto (.), virgola (,) e dollaro ($).
Il carattere 0 all'interno del modello garantisce che un numero sia sempre situato nel punto corrispondente. Se non è fornito un numero, al suo posto viene visualizzato 0.
Un . corrisponde al simbolo del punto decimale definito dal sistema operativo nelle impostazioni specifiche del paese.
L'esempio seguente mostra come i caratteri 0 e . possono definire le cifre dopo il punto decimale in un'espressione:
MyFormat = "0.00"
MyString = Format(-1579.8, MyFormat) ' Provides "-1579,80"
MyString = Format(1579.8, MyFormat) ' Provides "1579,80"
MyString = Format(0.4, MyFormat) ' Provides "0,40"
MyString = Format(0.434, MyFormat) ' Provides "0,43"
Analogamente, si possono aggiungere gli zeri davanti a un numero per ottenere la lunghezza desiderata:
MyFormat = "0000.00"
MyString = Format(-1579.8, MyFormat) ' Provides "-1579,80"
MyString = Format(1579.8, MyFormat) ' Provides "1579,80"
MyString = Format(0.4, MyFormat) ' Provides "0000,40"
MyString = Format(0.434, MyFormat) ' Provides "0000,43"
La , rappresenta il carattere utilizzato dal sistema operativo per il separatore delle migliaia e il # rappresenta una cifra o posizione visualizzata solo se richiesto dalla stringa di input.
MyFormat = "#,##0.00"
MyString = Format(-1579.8, MyFormat) ' Provides "-1.579,80"
MyString = Format(1579.8, MyFormat) ' Provides "1.579,80"
MyString = Format(0.4, MyFormat) ' Provides "0,40"
MyString = Format(0.434, MyFormat) ' Provides "0,43"
In luogo del segnaposto $, la funzione Format visualizza il simbolo di valuta pertinente definito dal sistema (nell'esempio si presuppone che siano state definite le impostazioni internazionali di un paese europeo):
MyFormat = "#,##0.00 $"
MyString = Format(-1579.8, MyFormat) ' Provides "-1.579,80 €"
MyString = Format(1579.8, MyFormat) ' Provides "1.579,80 €"
MyString = Format(0.4, MyFormat) ' Provides "0,40 €"
MyString = Format(0.434, MyFormat) ' Provides "0,43 €"
È possibile utilizzare anche le istruzioni utilizzate in VBA per la formattazione della data e dell'ora:
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). |