[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

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s

Iscriviti

Get every new post delivered to your Inbox.

Join 42 other followers