Metodo FileSystem.FilePut (Int32, ValueType, Int64)

 

Data di pubblicazione: ottobre 2016

Scrive dati da una variabile in un file su disco. Il My nelle funzionalità garantisce produttività e prestazioni migliori rispetto alle operazioni dei / o file FilePut. Per altre informazioni, vedere FileSystem.

Spazio dei nomi:   Microsoft.VisualBasic
Assembly:  Microsoft.VisualBasic (in Microsoft.VisualBasic.dll)

public static void FilePut(
	int FileNumber,
	ValueType Value,
	long RecordNumber = -1
)

Parametri

FileNumber
Type: System.Int32

Obbligatorio. Qualsiasi numero di file valido.

Value
Type: System.ValueType

Obbligatorio. Nome di variabile valido che contiene i dati scritti su disco.

RecordNumber
Type: System.Int64

Parametro facoltativo. Numero di record (Random file in modalità) o numero di byte (Binary file in modalità) nella quale inizia la scrittura.

Exception Condition
ArgumentException

RecordNumber < 1 e non è uguale a -1.

IOException

FileNumber non esiste.

IOException

Modalità file non è valida.

FilePut è valido solo in Random e Binary modalità.

I dati scritti con FilePut è in genere letti da un file mediante FileGet.

È il primo record o byte in un file nella posizione 1, il secondo record o byte corrisponde alla posizione 2 e così via. Se si omette RecordNumber, il record o byte dopo l'ultimo FileGet o FilePut funzione o a cui fa riferimento l'ultima Seek funzione viene scritto.

Il StringIsFixedLength argomento controlla se la funzione interpreta stringhe con lunghezza fissa o variabile.FilePut Scrive il descrittore di lunghezza quando l'argomento è True. Se si utilizza StringIsFixedLength = True con FilePut, è necessario eseguire la stessa operazione con FileGet, ed è necessario assicurarsi che la stringa venga inizializzata alla lunghezza prevista.

Per i file aperti Random modalità, le seguenti regole:

  • Se la lunghezza dei dati da scrivere è minore della lunghezza specificata nelRecordLength clausola del FileOpen funzione FilePut scrive i record successivi nei limiti dei record di lunghezza. 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 spaziatura interna non è possibile determinare con precisione, in genere è una buona idea che la lunghezza del record corrisponde alla lunghezza dei dati da scrivere. Se la lunghezza dei dati da scrivere è maggiore della lunghezza specificata nel RecordLength della clausola il FileOpen (funzione), verrà generata un'eccezione.

  • Se la variabile scritta è una stringa, FilePut scriverà un descrittore a due byte che contiene la lunghezza della stringa e quindi scrive i dati nella variabile. Di conseguenza, la lunghezza del record specificata dal RecordLength clausola il FileOpen funzione deve essere maggiore della lunghezza effettiva della stringa di almeno due byte.

  • Se la variabile scritta è un oggetto che contiene un tipo numerico, FilePut scriverà due byte che identificano il VarType dell'oggetto e quindi scrive la variabile. Ad esempio, quando si scrive un oggetto che contiene un numero intero, FilePut scrive sei byte: due byte che identificano l'oggetto come VarType(3) (Integer) e quattro byte che contiene i dati. La lunghezza del record specificata da di RecordLength parametro il FileOpen funzione deve essere maggiore del numero effettivo di byte necessari per archiviare la variabile di almeno due byte.

  • Se la variabile scritta è un oggetto che contiene una stringa, FilePut scriverà un descrittore a due byte che identifica il VarType(8) dell'oggetto, un descrittore a due byte che indica la lunghezza della stringa e quindi i dati della stringa. La lunghezza del record specificata da di RecordLength parametro il FileOpen funzione deve essere maggiore della lunghezza effettiva della stringa di almeno quattro byte. Se si desidera inserire una stringa senza il descrittore, è necessario passare True per il StringIsFixedLength parametro e la stringa letta deve avere la lunghezza corretta.

  • Se la variabile scritta è una matrice, è possibile scegliere di scrivere un descrittore per le dimensioni della matrice o meno. Visual Basic 6.0 e versioni precedenti di scrivere il descrittore del file per una matrice dinamica ma non per una matrice di dimensioni fisse. Visual Basic 2005 per impostazione predefinita non viene scritto il descrittore. Per scrivere il descrittore, impostare il ArrayIsDynamic parametro True. Quando si scrive la matrice, è necessario cercare il modo in cui che la matrice verrà letta. Se verrà visualizzato con il descrittore, è necessario scrivere il descrittore. Il descrittore specifica il numero di dimensioni della matrice, le dimensioni e i limiti inferiori di ogni indice. La lunghezza è uguale a 2 più 8 volte il numero di dimensioni: (2 + 8 * NumberOfDimensions). La lunghezza del record specificata da di RecordLength clausola il FileOpen funzione deve essere maggiore o uguale alla somma di tutti i byte necessari per scrivere i dati e il descrittore della matrice. Ad esempio, la seguente dichiarazione richiede 218 byte quando la matrice viene scritta su disco.

    Dim MyArray(4, 9) As Integer
    
  • Se la variabile scritta è qualsiasi altro tipo di variabile (non una stringa a lunghezza variabile o un oggetto), FilePut scrive solo i dati della variabile. La lunghezza del record specificata da di RecordLength clausola il FileOpen funzione deve essere maggiore o uguale alla lunghezza dei dati da scrivere.

  • FilePut scrive gli elementi delle strutture come se fossero scritti individualmente, ma non è presente riempimento tra gli elementi. Il VBFixedString attributo può essere applicato ai campi stringa nelle strutture per indicare le dimensioni della stringa quando viene scritta su disco.

    System_CAPS_noteNota

    Campi che il numero di byte rispetto a quanto specificato dalla stringa di VBFixedString attributo vengono troncati quando scritto su disco,

Per i file aperti Binary la maggior parte delle modalità di Random modalità regole si applicano, con alcune eccezioni. Le seguenti regole per i file aperti in Binary modalità differiscono dalle regole per Random modalità:

  • Il RecordLength clausola il FileOpen funzione non ha alcun effetto.FilePut Scrive tutte le variabili su disco in successione, vale a dire, senza spazi tra i record.

  • Per qualsiasi matrice diversa da una matrice in una struttura FilePut scrive solo i dati. Viene scritto alcun descrittore.

  • FilePut Scrive le 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. Le istruzioni seguenti, ad esempio, scrivere 11 byte nel file numero 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • La scrittura in un file mediante la FilePut funzione richiede Write tramite il FileIOPermissionAccess enumerazione.

Questo esempio viene utilizzato il FilePut funzione per scrivere dati in un file. Cinque record della struttura Person vengono scritti nel file.

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

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: