Italian semplice editor

Moryz

Member
Capisco che in alcuni modi l'argomento e' stato trattato, ma io non riesco proprio a salvare una edittext......

ho provato cosi':

B4X:
'Activity module
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.

End Sub

Sub Globals
   'These global variables will be redeclared each time the activity is created.
   'These variables can only be accessed from this module.

   Dim Testo1 As EditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
      Activity.LoadLayout("main")
      If File.ExternalWritable = False Then
        Msgbox("Cannot write on storage card.", "")
        Return
    End If
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub



Sub Save_Click
   Testo1.Initialize(File.OpenOutput(File.DirRootExternal, "Testo.txt", False))
    
   
End Sub

Capisco la stupidita' della domanda, ma se potete datemi un aiuto!


grazie e felice pasqua!
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
dalla domanda penso che volevi questo.

B4X:
'Activity module
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.

End Sub

Sub Globals
   'These global variables will be redeclared each time the activity is created.
   'These variables can only be accessed from this module.
   Dim writer As TextWriter
   Dim Reader As TextReader
   Dim EditText1 As EditText
   Dim Button1 As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)

End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub



Sub Button1_Click
   writer.Initialize(File.OpenOutput(File.DirRootExternal, "test.txt" , False))
   writer.WriteLine(EditText1.Text & CRLF)
   
End Sub
'in pratica ti salva ciò che scrivi sulla editext dentro la sd del telefono sotto forma di txt. con nome test.txt
' se vuoi salvare ad esempio all'interno della cartella del programma stesso allora devi inserire questo qui sotto.
'writer.Initialize(File.OpenOutput(File.DirAssets, "test.txt" , False))
 

Moryz

Member
il miio codice salva un file vuoto (forse sbaglio la variabile7stringa) il tuo non mi crea nessun file! :(

comunque l'idea e' quella di farmi un editor personalizzato (premendo dei pulsanti laterali immettera del "testo" standard per quel che mi serve (programmazione CNC)!

un altro aiutino? :)

P.S. dimenticavo..... GRAZIE filippo per i tuoi video tutorial, e' un onore la tua risposta! :)
 
Last edited:

fifiddu70

Well-Known Member
Licensed User
Longtime User
prego, fa piacere che qualcuno gradisca i miei lavori, comunque ho appena fatto un video proprio su questo argomento, magari se aspetti tra qualche oretta sarà pubblicato su youtube, purtroppo il video non mostra il salvataggio su telefono, ma posso garantirti che funziona perchè ho verificato, quindi confronta il video con ciò che ho riportato sopra, magari capirai dove è l'errore. se hai bisogno sono qui. sto creando altri videotutorial, erano settimane che mi ero fermato a causa del lavoro.
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
ti riporto ciò che ho realizzato nel video, questo funziona, stai sicuro.


B4X:
'Activity module
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.

End Sub

Sub Globals
   'These global variables will be redeclared each time the activity is created.
   'These variables can only be accessed from this module.
   Dim writer As TextWriter
   Dim Button1 As Button
   Dim EditText1 As EditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout ("salvatxt")
   writer.Initialize(File.OpenOutput(File.DirRootExternal,"test.txt",False))
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub



Sub Button1_Click
   writer.WriteLine(EditText1.Text & CRLF )
   writer.Close
End Sub

come vedi avevo ommesso di caricare il layout e di chiudere il flusso di scrittura con writer.close
scusami, ma avevo buttato così senza verificare poco fa. adesso è sicuro.
 

Moryz

Member
il layout lo avevo sistemato, ora se aggiungo il writer.close, e lascio la writer.onizialize sotto, nella sub del click non crea nulla, se la metto sopra dopo aver caricato il layout come hai fatto tu, crea un file vuoto!

vabbe', aspetto con ansia il video......... si, il tuo e' un grande aiuto per la comunity, davvero G R A Z I E !!!!!


MoryZ!
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
segui con attenzione il video su youtube, vedrai che riuscirai, sto uploadando il videotutorial, tra una mezzoretta spero finisca, ho l'adsl in salita :( devo spingerla per camminare :)
 

Moryz

Member
aspetto con ansia......

comunque aggiorno il post possa servire a qualcuno.....

sbagliavo il nome del button, aggiustato quello, mi va in errore quando cerca di salvare (runtime java) dice che edittext deve essere inizializzato (forse la variabile text nel writeline?!?)......
continuo a provare, anche perche' poi devo leggerlo, e infine implementare i button :(


edit: mi correggo..... erravo alcuni nomi :) (niubbo al quadrato)!
passo alla lettura e stampa nella edit text
 
Last edited:

Moryz

Member
Visto anche il video.... grazie......

ho fatto la lettura, funziona, ma mi ignora i "return" i CR ...... uhmmmmm :(

un consiglio?
 

fifiddu70

Well-Known Member
Licensed User
Longtime User
in che senso ti ignora il return? postami se ti e possibile il codice, così cercherò di capire il problema.
 

Moryz

Member
fatto anche questo, ma mi spiego sempre per i posteri......... se il file conteneva diverse righe, queste venivano comunque scritte consecutivamente e se conteneva una righa vuota questa veniva ignorata, ho risolto con un if then che aggiunge un CRLF a ogni ""

comunque grazie ancora......... se ci si mette in gioco (e qualcuno regge il gioco) si produce di piu'!!!!
 
Top