Esiste un modo per salvare un file di testo prestabilito senza che venga proposto la finestra di dialogo? Grazie.
Use GetFolderItem (path)
or
folderitem = specialfolder.documents.child(“Filename.txt”)
Grazie mille !
si poi devi vedere dove mettere il file, nel caso proposto da Jeff nella cartella documenti
ma se un file di impostazioni puoi metterlo in altri posti, io per esempio i file di configurazione li metto nella cartella dell’applicazione :
#if DebugBuild
f = GetFolderItem("settings.xml",0)
#else
#if TargetMacOS
f = app.ExecutableFile.Parent.Parent.Child("settings.xml")
#elseif TargetLinux
f = app.ExecutableFile.Parent.Child("settings.xml")
#elseif TargetWindows
f = app.ExecutableFile.Parent.Child("settings.xml")
#endif
#endif
Non detto che hai i permessi di scrittura in quella cartella.
usare cartella documenti o applicationdata pi sicuro
No! C’ ancora qualcosa che mi sfugge…
Se eseguo il codice che segue, il file viene correttamente rigenerato ogni volta,
ma non senza prima richiedere nuovamente il nome del file ed il permesso di sovrascrittura.
In pratica il codice non fa altro che trascrivere i dati di una table in un file di testo con campi separati da virgola.
Dim rig1 As Integer
dim dato as string
dim percorso as String
percorso=App.cartella.parent.NativePath + "KH\\DATI\\prova.txt"
Dim sorgente As RecordSet = App.DB1.SQLSelect ("select * from valutazione_costi order by gruppo")
If app.db1.Error Then Exit
Dim t As TextOutputStream
Dim f As FolderItem
f = GetSaveFolderItem("",percorso)
t = TextOutputStream.Create(f)
If f <> Nil Then
sorgente.MoveFirst
For rig1=0 To sorgente.RecordCount-1
dato = sorgente.field("gruppo" ).value +";"
dato = dato + sorgente.field("oggetto" ).value+";"
dato = dato + sorgente.field("um" ).value+";"
dato = dato + sorgente.field("quant" ).value+";"
dato = dato + sorgente.field("descrizione" ).value+";"
dato = dato + sorgente.field("prezzo" ).value+";"
dato = dato + sorgente.field("iva" ).value+";"
dato = dato + sorgente.field("importo" ).value+";"
dato = dato + sorgente.field("totale" ).value
t.WriteLine(dato)
sorgente.MoveNext
Next
t.Close
End If
sorgente.Close
GetSaveFolderItem … chiede di specificare dove salvare il file…
perch non hai usato GetFolderItem che non ti rompe le palle ?
O perchè non usi semplicemente:
dim f as folderItem
f= percorso.Child("KH")
f=f.child("DATI")
//Per sicurezza ad ogni passo dovresti aggiungere:
if f<>nil .... //Hai qualche problema a raggiungere il percorso
if not f.exists then f.createAsFolder //La cartella non esiste creala
f=f.child("prova.txt")
//Qui dovresti solo verificare se il f non è nil
Sembra più lungo ma è più sicuro e sicuramente cross platform
Perfetto direi. Non fa una grinza. Grazie ancora!