GetSaveFolderItem

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!