[IT] RealBasic: come contare il numero di linee di testo in un EditField

Premessa: questo tip è valido per Realbasic 2009 e precedenti, ma non per la nuovissima 2010, nella quale la classe EditField è stata deprecata e sostituita con le classi TextField e TextArea (= quindi usate queste ultime!).

Mettiamo caso che abbiate la necessità di contare le linee di testo inserite in un EditField (con opzione “MultiLinea” attivata). Di getto, vi verrebbe spontaneo buttar giù le seguenti linee di codice:

// conta le linee di testo inserite nel EditField basandosi sul numero dei fine linea
Dim count as Integer
count=CountFields(EditField1.Text, EndOfLine)
MsgBox Str(count) + ” linee di testo inserite!”

Questo piccolo blocco di codice non fa altro che
– instanziare una variabile intera di nome “count”;
– conta le ricorrenze del simbolo “EndOfLine” all’interno del testo dell’EditField1;
– mostra un MsgBox contenente il numero di ricorrenze trovate.

Tutto giusto e lineare direte voi. Ed invece no. Per un motivo poco chiaro e non documentato dai tipi della REAL Software, almeno su piattaforma Windows il simbolo di fine linea utilizzato dall’EditField non appartiene alla classe EndOfLine, bensì corrisponde al carattere Chr(13).

In virtù di ciò, il blocco di codice sopra menzionato va riscritto come segue:

// conta le linee di testo inserite nel EditField basandosi sul numero di Chr(13)
Dim count as Integer
count=CountFields(EditField1.Text, Chr(13))
MsgBox Str(count) + ” linee di testo inserite!”

In questo modo, dovrebbe funzionare tutto come previsto. Analogamente, per creare un array in cui ogni elemento contenga una linea di testo è sufficiente il seguente codice:

// crea un array in cui ogni elemento è una linea di testo
Dim rawArray(-1) as String
rawArray=EditField1.Text.Split(Chr(13))

Buon lavoro🙂

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: