Italian [RISOLTO] Leggere una textArea riga a riga

Aldo's

Active Member
Licensed User
Ciao a tutti.
Come si evince dal titolo ho la necessità di leggere una textArea (WrapText non attivo) riga a riga
Io ho scritto questo:
B4X:
    Dim reader As TextReader
    reader.Initialize(txtCanto)
    Dim riga As String
    riga = reader.ReadLine
    Do While riga <> Null
        Log(riga)
    Loop
Ma mi restituisce questo errore:

B4J line: 102
reader.Initialize(txtCanto)
javac 1.8.0_271
src\b4j\example\b4xmainpage.java:238: error: incompatible types: TextArea cannot be converted to InputStream
_reader.Initialize((java.io.InputStream)(__ref._txtcanto /*anywheresoftware.b4j.objects.TextInputControlWrapper.TextAreaWrapper*/ .getObject())); ^

Evidentemente l'errore sta nell'.Initialize del reader.
Come posso fare?
Grazie a tutti.
 

LucaMs

Expert
Licensed User
Longtime User
Evidentemente l'errore sta nell'.Initialize del reader.
Mentre scrivi:

reader.Initialize(

ti compare un tooltip che ti informa su quali parametri e di quale tipo il metodo (Initialize, in questo caso) richieda. Come vedi è di tipo InputStream, mentre tu gli passi... non so cosa, suppongo una stringa.

Una soluzione potrebbe essere di salvare la stringa e rileggerla in un InputStream ma è ancora più semplice suddividere il testo usando Regex.Split.

B4X:
Dim Righe() As String = Regex.Split(CRLF, txtCanto.Text)

For Each Riga As String In Righe
        
Next
 

Aldo's

Active Member
Licensed User
txtCanto è una TextArea...
...comunque provo subito e ti dico
 

Aldo's

Active Member
Licensed User
con regex.split funziona.
Grazie
 
Top