FileSystem.FilePut Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. F Per altre informazioni, vedere FileSystem.
Overload
| Nome | Descrizione |
|---|---|
| FilePut(Int32, Int64, Int64) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, String, Int64, Boolean) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Object, Object, Object) |
Obsoleti.
Obsoleti.
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, ValueType, Int64) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, Single, Int64) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, Int32, Int64) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, Array, Int64, Boolean, Boolean) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, Double, Int64) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, Decimal, Int64) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, DateTime, Int64) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, Char, Int64) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, Byte, Int64) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, Boolean, Int64) |
Scrive i dati da una variabile in un file su disco. La |
| FilePut(Int32, Int16, Int64) |
Scrive i dati da una variabile in un file su disco. La |
FilePut(Int32, Int64, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, long Value, long RecordNumber = -1);
static member FilePut : int * int64 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Long, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- Int64
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, String, Int64, Boolean)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FilePut : int * string * int64 * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- String
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
- StringIsFixedLength
- Boolean
Optional. Si applica solo quando si scrive una stringa. Specifica se scrivere un descrittore di lunghezza stringa a due byte per la stringa nel file. Il valore predefinito è False.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Object, Object, Object)
Attenzione
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Attenzione
This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
Parametri
- FileNumber
- Object
Required. Qualsiasi numero di file valido.
- Value
- Object
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Object
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
- Attributi
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, ValueType, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- ValueType
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, Single, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, float Value, long RecordNumber = -1);
static member FilePut : int * single * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Single, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- Single
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, Int32, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, int Value, long RecordNumber = -1);
static member FilePut : int * int * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Integer, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- Int32
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, Array, Int64, Boolean, Boolean)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- Array
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
- ArrayIsDynamic
- Boolean
Optional. Si applica solo quando si scrive una matrice. Specifica se la matrice deve essere considerata dinamica e se scrivere un descrittore di matrice per la stringa che descrive la lunghezza.
- StringIsFixedLength
- Boolean
Optional. Si applica solo quando si scrive una stringa. Specifica se scrivere un descrittore di lunghezza stringa a due byte per la stringa nel file. Il valore predefinito è False.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, Double, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, double Value, long RecordNumber = -1);
static member FilePut : int * double * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Double, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- Double
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, Decimal, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, decimal Value, long RecordNumber = -1);
static member FilePut : int * decimal * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Decimal, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- Decimal
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, DateTime, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, DateTime Value, long RecordNumber = -1);
static member FilePut : int * DateTime * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As DateTime, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- DateTime
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, Char, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, char Value, long RecordNumber = -1);
static member FilePut : int * char * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Char, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- Char
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, Byte, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, byte Value, long RecordNumber = -1);
static member FilePut : int * byte * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Byte, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- Byte
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, Boolean, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, bool Value, long RecordNumber = -1);
static member FilePut : int * bool * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Boolean, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- Boolean
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic
Si applica a
FilePut(Int32, Int16, Int64)
Scrive i dati da una variabile in un file su disco. La My funzionalità offre una maggiore produttività e prestazioni nelle operazioni di I/O dei file rispetto a FilePut. Per altre informazioni, vedere FileSystem.
public static void FilePut(int FileNumber, short Value, long RecordNumber = -1);
static member FilePut : int * int16 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Short, Optional RecordNumber As Long = -1)
Parametri
- FileNumber
- Int32
Required. Qualsiasi numero di file valido.
- Value
- Int16
Required. Nome di variabile valido contenente i dati scritti su disco.
- RecordNumber
- Int64
Optional. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) in corrispondenza del quale inizia la scrittura.
Eccezioni
RecordNumber
< 1 e non uguale a -1.
La modalità file non è valida.
Esempio
In questo esempio viene usata la FilePut funzione per scrivere dati in un file. Nel file vengono scritti cinque record della struttura Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Commenti
FilePut è valido solo in Random modalità e Binary .
I dati scritti con FilePut vengono in genere letti da un file usando FileGet.
Il primo record o byte in un file si trova nella posizione 1, il secondo record o byte si trova nella posizione 2 e così via. Se si omette RecordNumber, viene scritto il record o il byte successivo dopo l'ultima FileGet funzione o FilePut a cui punta l'ultima Seek funzione.
L'argomento StringIsFixedLength controlla se la funzione interpreta le stringhe come lunghezza variabile o fissa.
FilePut non scrive il descrittore di lunghezza quando l'argomento è True. Se si usa StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGete assicurarsi che la stringa venga inizializzata per la lunghezza prevista.
Modalità casuale
Per i file aperti in Random modalità, si applicano le regole seguenti:
Se la lunghezza dei dati scritti è minore della lunghezza specificata nella
RecordLengthclausola dellaFileOpenfunzione,FilePutscrive i record successivi sui limiti di lunghezza record. Lo spazio tra la fine di un record e l'inizio del record successivo viene riempito con il contenuto esistente del buffer di file. Poiché la quantità di dati di riempimento non può essere determinata con certezza, è in genere consigliabile che la lunghezza del record corrisponda alla lunghezza dei dati scritti. Se la lunghezza dei dati scritti è maggiore della lunghezza specificata nellaRecordLengthclausola dellaFileOpenfunzione, verrà generata un'eccezione.Se la variabile scritta è una stringa,
FilePutscrive un descrittore a due byte contenente la lunghezza della stringa e quindi scrive i dati inseriti nella variabile. Pertanto, la lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto alla lunghezza effettiva della stringa.Se la variabile scritta è un oggetto contenente un tipo numerico,
FilePutscrive due byte che identificano l'oggettoVarTypedell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto contenente un numero intero,FilePutvengono scritti sei byte: due byte che identificano l'oggetto comeVarType(3)(Integer) e quattro byte che contengono i dati. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere maggiore di almeno due byte rispetto al numero effettivo di byte necessari per archiviare la variabile.Se la variabile scritta è un oggetto contenente una stringa,
FilePutscrive un descrittore a due byte che identifica l'oggettoVarType(8)dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi scrive i dati stringa. La lunghezza del record specificata dalRecordLengthparametro nellaFileOpenfunzione deve essere almeno quattro byte maggiore della lunghezza effettiva della stringa. Se si vuole inserire una stringa senza il descrittore, è necessario passareTruealStringIsFixedLengthparametro e la stringa in cui si legge deve essere la lunghezza corretta.Se la variabile scritta è una matrice, è possibile scegliere se scrivere o meno un descrittore per le dimensioni e le dimensioni della matrice. Visual Basic 6.0 e versioni precedenti scrivono il descrittore di file per una matrice dinamica, ma non per una matrice a dimensione fissa. Visual Basic 2005 per impostazione predefinita non scrive il descrittore. Per scrivere il descrittore, impostare il
ArrayIsDynamicparametro suTrue. Quando si scrive la matrice, è necessario trovare la corrispondenza con la modalità di lettura della matrice; se verrà letto con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il rango della matrice, le dimensioni e i limiti inferiori per ogni rango. La sua lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati della matrice e il descrittore di matrice. Ad esempio, la dichiarazione di matrice seguente richiede 218 byte quando la matrice viene scritta su disco.Dim MyArray(4, 9) As IntegerSe la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto),
FilePutscrive solo i dati della variabile. La lunghezza del record specificata dallaRecordLengthclausola nellaFileOpenfunzione deve essere maggiore o uguale alla lunghezza dei dati scritti.FilePutscrive elementi di strutture come se fossero scritti singolarmente, tranne che non esiste alcuna spaziatura interna tra gli elementi. L'attributoVBFixedStringpuò essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.Note
I campi stringa con più byte rispetto a quelli specificati dall'attributo
VBFixedStringvengono troncati quando vengono scritti su disco,
Modalità binaria
Per i file aperti in Binary modalità, la maggior parte delle regole della Random modalità si applica, con alcune eccezioni. Le regole seguenti per i file aperti in Binary modalità differiscono dalle regole per Random la modalità:
La
RecordLengthclausola nellaFileOpenfunzione non ha alcun effetto.FilePutscrive tutte le variabili su disco in modo contiguo, ovvero senza spaziatura interna tra record.Per qualsiasi matrice diversa da una matrice in una struttura,
FilePutscrive solo i dati. Non viene scritto alcun descrittore.FilePutscrive stringhe a lunghezza variabile che non sono elementi di strutture senza il descrittore di lunghezza a due byte. Il numero di byte scritti è uguale al numero di caratteri nella stringa. Ad esempio, le istruzioni seguenti scrivono 11 byte nel numero di file 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La scrittura in un file tramite la
FilePutfunzione richiedeWritel'accesso dall'enumerazione FileIOPermissionAccess .
Vedi anche
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Crittura in file in Visual Basic