Difference between revisions of "EN/Documentation/BASIC Guide/Strings (Runtime Library)"

From Apache OpenOffice Wiki
Jump to: navigation, search
(New page: {{DISPLAYTITLE:文字列 ({{OOo}} BASIC 実行時ライブラリ)}} {{EN/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=Documentation/BASIC Guide/Conversi...)
 
 
Line 1: Line 1:
{{DISPLAYTITLE:文字列 ({{OOo}} BASIC 実行時ライブラリ)}}
+
{{DISPLAYTITLE:Stringhe ({{OOo}} libreria runtime in BASIC)}}
 
{{EN/Documentation/BASICGuideTOC/v2
 
{{EN/Documentation/BASICGuideTOC/v2
 
|ShowPrevNext=block
 
|ShowPrevNext=block
Line 8: Line 8:
 
}}
 
}}
 
   
 
   
== 文字コードの操作 ==
+
== Utilizzo dei set di caratteri ==
  
{{OOo}} Basic の文字列操作では、文字コードとして Unicode が使用されます。 <tt>Asc</tt> および <tt>Chr</tt> 関数は、Unicode のコード番号と該当する文字との間の変換を行います。 以下のサンプルコードでは、各種の Unicode 記号を該当するコード番号に変換します。
+
Per la gestione delle stringhe, {{OOo}} Basic utilizza il set di caratteri Unicode. Le funzioni <tt>Asc</tt> e <tt>Chr</tt> 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:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 18: Line 18:
 
</source>
 
</source>
  
以下のサンプルコードは、これらと逆方向の変換を実行します。
+
Per contro, l'espressione
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 24: Line 24:
 
</source>
 
</source>
  
ここでは、コード番号 <tt>13</tt> が割り当てられている文字 (改行コード) を、文字列変数 <tt>MyString</tt> に代入しています。
+
assicura che la stringa <tt>MyString</tt> sia inizializzata con il valore del numero <tt>13</tt>, che
 +
corrisponde a un'interruzione di riga forzata.
  
このように、<tt>Chr</tt> 関数は、Basic プログラミング内で制御コードを文字列変数に代入する際によく使われます。 たとえば、以下のサンプルコードのように使用します。
+
Il comando <tt>Chr</tt> è spesso utilizzato nei linguaggi Basic per inserire caratteri di controllo in una stringa. L'assegnazione
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 32: Line 33:
 
</source>
 
</source>
  
ここでは、文字列の前にタブコード (Unicode 9) を、後ろに改行コード (Unicode 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 ==
  
{{OOo}} Basic には、文字列の一部の取得用に、以下の 4 つの関数が用意されています。
+
{{OOo}} Basic comprende quattro funzioni che restituiscono stringhe parziali:
  
;<tt>Left(MyString, Length)</tt>:文字列 <tt>MyString</tt> の左端から Length 分の文字を取得します。
+
;<tt>Left(MyString, Length)</tt>:Restituisce i primi caratteri per la lunghezza di <tt>MyString</tt>.
;<tt>Right(MyString, Length)</tt>:文字列 <tt>MyString</tt> の右端から Length 分の文字を取得します。
+
;<tt>Right(MyString, Length)</tt>:Restituisce gli ultimi caratteri per la lunghezza di <tt>MyString</tt>.
;<tt>Mid(MyString, Start, Length)</tt>:文字列 <tt>MyString</tt> の左端 <tt>Start</tt> 文字目から Length 分の文字を取得します。
+
;<tt>Mid(MyString, Start, Length)</tt>:Restituisce i primi caratteri per la lunghezza di <tt>MyString</tt> a partire dalla posizione <tt>Start</tt>.
;<tt>Len(MyString)</tt>:文字列 <tt>MyString</tt> の文字数を返します。
+
;<tt>Len(MyString)</tt>:Restituisce il numero di caratteri di <tt>MyString</tt>.
  
以下のサンプルコードは、これらの使用例です。
+
Di seguito sono riportati alcuni esempi di chiamate per le funzioni qui descritte:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 57: Line 58:
 
</source>
 
</source>
  
== 検索と置換 ==
+
== Ricerca e sostituzione ==
  
{{OOo}} Basic には、文字列内の部分文字列の検索用に、<tt>InStr</tt> 関数が用意されています。
+
{{OOo}} Basic include la funzione <tt>InStr</tt>, che permette di ricercare una stringa parziale all'interno di un'altra stringa:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 65: Line 66:
 
</source>
 
</source>
  
この関数は、文字列変数 <tt>MyString</tt> 内に文字列変数 <tt>SearchString</tt> と一致する部分があるかを調べます。関数の戻り値としては、文字列変数 <tt>MyString</tt> 内で最初に文字列変数 <tt>SearchString</tt> が現れる位置を、数値で返します。 また、該当する部分文字列が何カ所もあるような場合は、{{OOo}} Basic が何文字目から検索を始めるかをオプション指定できます。 このオプションは、以下の形式で記述します。
+
Il parametro <tt>SearchString</tt> specifica la stringa da ricercare in <tt>MyString</tt>. La funzione restituisce un numero contenente la posizione in cui <tt>SearchString</tt> compare per la prima volta all'interno di <tt>MyString</tt>. Per individuare altre corrispondenze della stringa, la
 +
funzione offre inoltre l'opportunità di specificare una posizione di partenza iniziale da cui {{OOo}} Basic inizia la ricerca. In questo caso, la sintassi della funzione è:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 71: Line 73:
 
</source>
 
</source>
  
また上記のいずれの場合も、<tt>InStr</tt> 関数は文字列の大文字と小文字を無視します。<tt>InStr</tt> 関数で大文字と小文字を区別させるには、以下のように最終パラメータとして <tt>0</tt> を追加します。
+
Negli esempi precedenti, <tt>InStr</tt> ignora i caratteri in maiuscolo e in minuscolo. Per modificare la ricerca in modo che <tt>InStr</tt> distingua tra maiuscole e minuscole, aggiungere il parametro <tt>0</tt>, come illustrato nell'esempio seguente:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 77: Line 79:
 
</source>
 
</source>
  
これまでに説明した文字列操作用の関数を組み合わせると、以下のような文字列の置換関数を作成できます。
+
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:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 109: Line 111:
 
</source>
 
</source>
  
この関数は、ループ内に <tt>InStr</tt> 関数を配置して、文字列パラメータ <tt>Source</tt> 内にある文字列パラメータ <tt>Search</tt> の該当位置を検索します。 検索がヒットしたら、該当位置より前の部分を取得して、バッファ用の文字列変数 <tt>Result</tt> に格納します。 そして、文字列パラメータ <tt>Search</tt> の該当位置を置き換えるよう、新しい <tt>Part</tt> セクションを挿入します。 上記の手順を繰り返し、検索する文字列の残りの部分に該当位置がなくなった段階で、この部分をバッファ用文字列の末尾に追加します。こうして得られた文字列を関数の戻り値として返しますが、これが該当箇所を置換した文字列となります。
+
La funzione esegue un ciclo di ricerca nella stringa <tt>Search</tt> tramite <tt>InStr</tt> nel
 +
termine originale <tt>Source</tt>. Se individua il termine, prende la parte prima dell'espressione e la scrive nel buffer di restituzione <tt>Result</tt>. Aggiunge la sezione <tt>Part</tt> al
 +
punto del termine di ricerca <tt>Search</tt>. 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.
  
このような文字列の一部を置換するという作業は使用頻度が高いため、{{OOo}} Basic の <tt>Mid</tt> 関数には、これを行うための拡張機能が用意されています。この例では、文字列 <tt>MyString</tt> の 6 文字目から 3 文字分を <tt>is</tt> という文字列に置き換えています。
+
Poiché la sostituzione di parti di sequenze di caratteri è una delle funzioni utilizzate più frequentemente, la funzione <tt>Mid</tt> in {{OOo}} Basic è stata ampliata in modo che questa attività sia eseguita automaticamente. L'esempio seguente sostituisce tre caratteri con la stringa <tt>is</tt> dall'ottava posizione della stringa <tt>MyString</tt>.
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 120: Line 124:
 
</source>
 
</source>
  
== 文字列の書式設定 ==
+
== Formattazione di stringhe ==
  
<tt>Format</tt> 関数は、数値を文字列として書式設定します。 このような処理を行う際には、数値の書式設定用テンプレートを指定する必要がありますが、この関数ではパラメータ <tt>Format</tt> として指定します。 テンプレートは、最終的に出力する文字種に対応したプレースホルダを並べて指定します。使用頻度の高いプレースホルダは、ゼロ (<tt>0</tt>)、ナンバー記号 (<tt>#</tt>)、ピリオド (<tt>.</tt>)、コンマ (<tt>,</tt>)、ドル記号 (<tt>$</tt>) の 5 種類です。
+
La funzione <tt>Format</tt> formatta i numeri sotto forma di stringa. Per procedere, la funzione si aspetta che sia specificata un'espressione <tt>Format</tt>, 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 (<tt>0</tt>), cancelletto (<tt>#</tt>), punto (<tt>.</tt>), virgola(<tt>,</tt>) e dollaro (<tt>$</tt>).
  
<tt>0</tt> 文字は、該当桁に数字を表示させるための記号です。 該当桁に数値が来ない場合は、0 が表示されます。
+
Il carattere <tt>0</tt> 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.
  
<tt>.</tt> は、小数点の位置を指定するための記号で、小数点はオペレーティングシステムのロケール設定に応じたものが使用されます。
+
Un <tt>.</tt> corrisponde al simbolo del punto decimale definito dal sistema operativo nelle impostazioni specifiche del paese.
  
以下のサンプルコードは、<tt>0</tt> <tt>.</tt> による書式指定により数値の小数部が処理される例を示します。
+
L'esempio seguente mostra come i caratteri <tt>0</tt> e <tt>.</tt> possono definire le cifre dopo il punto decimale in un'espressione:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 138: Line 142:
 
</source>
 
</source>
  
また、数値の整数部の桁数がテンプレートよりも小さい場合、該当桁には 0 が表示されます。
+
Analogamente, si possono aggiungere gli zeri davanti a un numero per ottenere la lunghezza desiderata:
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 148: Line 152:
 
</source>
 
</source>
  
<tt>,</tt> は、千単位の桁区切り位置を指定するための記号で、オペレーティングシステムのロケール設定に応じた桁区切り記号を表示させます。<tt>#</tt> は、該当桁の数字を表示させるよう指定する記号ですが、該当桁に数値が無い場合は何も表示させません。
+
La <tt>,</tt> rappresenta il carattere utilizzato dal sistema operativo per il separatore delle migliaia e il <tt>#</tt> rappresenta una cifra o posizione visualizzata solo se richiesto dalla stringa di input.
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 158: Line 162:
 
</source>
 
</source>
  
<tt>$</tt> プレースホルダの代わりに、<tt>Format</tt> 関数は、システムで定義されている関連する通貨記号を表示します (次の例では、ヨーロッパロケールが定義されているものとします)
+
In luogo del segnaposto <tt>$</tt>, la funzione <tt>Format</tt> visualizza il simbolo di valuta
 +
pertinente definito dal sistema (nell'esempio si presuppone che siano state definite le impostazioni internazionali di un paese europeo):
  
 
<source lang="oobas">
 
<source lang="oobas">
Line 168: Line 173:
 
</source>
 
</source>
  
VBA で日時の詳細な書式設定用に使用されるフォーマット命令も使用できます。
+
È possibile utilizzare anche le istruzioni utilizzate in VBA per la formattazione della data e dell'ora:
  
 
<source lang="oobas">
 
<source lang="oobas">

Latest revision as of 18:20, 25 June 2009

Template:EN/Documentation/BASICGuideTOC/v2

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