Scopo
Apre un file in modalità di scrittura. Se il file esiste il contenuto verrà sovrascritto.
Sintassi
Applicazione.OpenFileForOutput(percorso, numero file, encoding)
Argomenti
Percorso | Percorso completo del file. |
Numero File | Identificatore del file ottenuto con la funzione FreeFile. |
Encoding | Encoding del file. Parametro opzionale con valore predefinito l'encoding predefinito dell'ambiente (normalmente Windows-1252 su Windows, UTF-8 su Linux). |
Esempio
// ****************************************************************************
// Evento notificato al documento durante le fasi iniziali della procedura di
// salvataggio dei documenti
// ****************************************************************************
event throws exception OggettoFS.BeforeSave(
inout boolean Skip // Parametro di output booleano. Se impostato a Tru...
inout boolean Cancel // Parametro di output booleano. Se impostato a Tru...
int Phase // E' un numero intero da 0 a 3 che indica lo stato...
)
{
string NomeCompleto = "" // Quali dati memorizzerai qui?
//
NomeCompleto := GetNamedPropertyValue(NomeCompleto)
//
Skip := True
//
// Se sono nella fase di inserimento e l'oggetto è inserito
if Phase = ONE AND Inserted
...
//
// Se sono nella fase di aggiornamento e l'oggetto è modificato
if Phase = 2 AND Updated AND NOT(Inserted)
{
// Se è cambiato il nome
if GetOriginalValue(ToPropertyIndex(Nome)) <> Nome
...
//
// Se è cambiato il contenuto
if GetOriginalValue(ToPropertyIndex(Contenuto)) <> Contenuto
{
// Provo a salvare il file
try
{
int FileNumber = 0 //
//
// Ottengo un identificativo di file libero
FileNumber := FreeFile()
//
// Salvo il file
EsempiMS.OpenFileForOutput(NomeCompleto, FileNumber)
EsempiMS.WriteLine(FileNumber, Contenuto)
EsempiMS.CloseFile(FileNumber)
}
catch
{
this.AddDocumentError(impossibile salvare +c Space +c il file +c
Dot +c Space +c ErrorMessage())
Cancel := True
}
}
// Evento notificato al documento durante le fasi iniziali della procedura di
// salvataggio dei documenti
// ****************************************************************************
event throws exception OggettoFS.BeforeSave(
inout boolean Skip // Parametro di output booleano. Se impostato a Tru...
inout boolean Cancel // Parametro di output booleano. Se impostato a Tru...
int Phase // E' un numero intero da 0 a 3 che indica lo stato...
)
{
string NomeCompleto = "" // Quali dati memorizzerai qui?
//
NomeCompleto := GetNamedPropertyValue(NomeCompleto)
//
Skip := True
//
// Se sono nella fase di inserimento e l'oggetto è inserito
if Phase = ONE AND Inserted
...
//
// Se sono nella fase di aggiornamento e l'oggetto è modificato
if Phase = 2 AND Updated AND NOT(Inserted)
{
// Se è cambiato il nome
if GetOriginalValue(ToPropertyIndex(Nome)) <> Nome
...
//
// Se è cambiato il contenuto
if GetOriginalValue(ToPropertyIndex(Contenuto)) <> Contenuto
{
// Provo a salvare il file
try
{
int FileNumber = 0 //
//
// Ottengo un identificativo di file libero
FileNumber := FreeFile()
//
// Salvo il file
EsempiMS.OpenFileForOutput(NomeCompleto, FileNumber)
EsempiMS.WriteLine(FileNumber, Contenuto)
EsempiMS.CloseFile(FileNumber)
}
catch
{
this.AddDocumentError(impossibile salvare +c Space +c il file +c
Dot +c Space +c ErrorMessage())
Cancel := True
}
}
- Se il file non esiste viene creato. Se non è possibile crearlo, allora viene generata un'eccezione.
- Se il numero file non è valido, allora questa funzione non fa nulla.
- Se il file esiste verrà svuotato. Per aggiungere del contenuto al file occorre aprirlo con la funzione OpenFileForAppend.
Ultima modifica: 16/03/2020 / Validità: da 7.0.3200