FileSystem.FilePut Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. F Para obtener más información, vea FileSystem.
Sobrecargas
| Nombre | Description |
|---|---|
| FilePut(Int32, Int64, Int64) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, String, Int64, Boolean) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Object, Object, Object) |
Obsoletos.
Obsoletos.
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, ValueType, Int64) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, Single, Int64) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, Int32, Int64) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, Array, Int64, Boolean, Boolean) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, Double, Int64) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, Decimal, Int64) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, DateTime, Int64) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, Char, Int64) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, Byte, Int64) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, Boolean, Int64) |
Escribe datos de una variable en un archivo de disco. La |
| FilePut(Int32, Int16, Int64) |
Escribe datos de una variable en un archivo de disco. La |
FilePut(Int32, Int64, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- Int64
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, String, Int64, Boolean)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- String
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
- StringIsFixedLength
- Boolean
Optional. Solo se aplica al escribir una cadena. Especifica si se va a escribir un descriptor de longitud de cadena de dos bytes para la cadena en el archivo. El valor predeterminado es False.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Object, Object, Object)
Precaución
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Precaución
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
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Object
Required. Cualquier número de archivo válido.
- Value
- Object
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Object
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
- Atributos
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, ValueType, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- ValueType
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, Single, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- Single
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, Int32, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- Int32
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, Array, Int64, Boolean, Boolean)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- Array
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
- ArrayIsDynamic
- Boolean
Optional. Solo se aplica al escribir una matriz. Especifica si la matriz se va a tratar como dinámica y si se va a escribir un descriptor de matriz para la cadena que describe la longitud.
- StringIsFixedLength
- Boolean
Optional. Solo se aplica al escribir una cadena. Especifica si se va a escribir un descriptor de longitud de cadena de dos bytes para la cadena en el archivo. El valor predeterminado es False.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, Double, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- Double
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, Decimal, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- Decimal
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, DateTime, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- DateTime
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, Char, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- Char
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, Byte, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- Byte
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, Boolean, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- Boolean
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Se aplica a
FilePut(Int32, Int16, Int64)
Escribe datos de una variable en un archivo de disco. La My característica proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivos que FilePut. Para obtener más información, consulte 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)
Parámetros
- FileNumber
- Int32
Required. Cualquier número de archivo válido.
- Value
- Int16
Required. Nombre de variable válido que contiene los datos escritos en el disco.
- RecordNumber
- Int64
Optional. Número de registro (Random archivos de modo) o número de bytes (Binary archivos de modo) en el que se inicia la escritura.
Excepciones
RecordNumber
< 1 y no es igual a -1.
El modo de archivo no es válido.
Ejemplos
En este ejemplo se usa la FilePut función para escribir datos en un archivo. Se escriben cinco registros de la estructura Person en el archivo.
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
Comentarios
FilePut solo es válido en Random modo y Binary .
Los datos escritos con FilePut normalmente se leen desde un archivo mediante FileGet.
El primer registro o byte de un archivo se encuentra en la posición 1, el segundo registro o byte se encuentra en la posición 2, etc. Si omite RecordNumber, se escribe el siguiente registro o byte después de la última FileGet función o FilePut a la que apunta la última Seek función.
El StringIsFixedLength argumento controla si la función interpreta las cadenas como una longitud variable o fija.
FilePut no escribe el descriptor de longitud cuando el argumento es True. Si usa StringIsFixedLength = True con FilePut, debe hacer lo mismo con FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.
Modo aleatorio
En el caso de los archivos abiertos en Random modo, se aplican las reglas siguientes:
Si la longitud de los datos que se escriben es menor que la longitud especificada en la
RecordLengthcláusula de laFileOpenfunción,FilePutescribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del siguiente registro se rellena con el contenido existente del búfer de archivos. Dado que la cantidad de datos de relleno no se puede determinar con certeza, por lo general es una buena idea que la longitud del registro coincida con la longitud de los datos que se escriben. Si la longitud de los datos que se escriben es mayor que la longitud especificada en laRecordLengthcláusula de laFileOpenfunción, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePutescribe un descriptor de dos bytes que contiene la longitud de cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser al menos dos bytes mayores que la longitud real de la cadena.Si la variable que se escribe es un objeto que contiene un tipo numérico,
FilePutescribe dos bytes que identifican elVarTypedel objeto y, a continuación, escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePutescribe seis bytes: dos bytes que identifican el objeto comoVarType(3)(Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos dos bytes mayores que el número real de bytes necesarios para almacenar la variable.Si la variable que se escribe es un objeto que contiene una cadena,
FilePutescribe un descriptor de dos bytes que identifica elVarType(8)del objeto, un descriptor de dos bytes que indica la longitud de la cadena y, a continuación, escribe los datos de cadena. La longitud del registro especificada por elRecordLengthparámetro de laFileOpenfunción debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTruealStringIsFixedLengthparámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se está escribiendo es una matriz, tiene la opción de escribir o no un descriptor para el tamaño y las dimensiones de la matriz. Visual Basic 6.0 y versiones anteriores escriben el descriptor de archivo para una matriz dinámica, pero no para una matriz de tamaño fijo. Visual Basic 2005 tiene como valor predeterminado no escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamicparámetroTrueen . Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, tendrá que escribir el descriptor. El descriptor especifica el rango de la matriz, el tamaño y los límites inferiores para cada clasificación. Su longitud es igual a 2 más 8 veces el número de dimensiones: (2 + 8 * NumberOfDimensions). La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de la matriz y el descriptor de matriz. Por ejemplo, la siguiente declaración de matriz requiere 218 bytes cuando la matriz se escribe en el disco.Dim MyArray(4, 9) As IntegerSi la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePutescribe solo los datos de la variable. La longitud del registro especificada por laRecordLengthcláusula de laFileOpenfunción debe ser mayor o igual que la longitud de los datos que se escriben.FilePutescribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedStringatributo se puede aplicar a los campos de cadena de las estructuras para indicar el tamaño de la cadena cuando se escribe en el disco.Nota:
Los campos de cadena que tienen más bytes de los especificados por el
VBFixedStringatributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary modo, se aplican la mayoría de las Random reglas de modo, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary modo difieren de las reglas para Random el modo:
La
RecordLengthcláusula de laFileOpenfunción no tiene ningún efecto.FilePutescribe todas las variables en el disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz distinta de una matriz de una estructura,
FilePutescribe solo los datos. No se escribe ningún descriptor.FilePutescribe cadenas de longitud variable que no son elementos de estructuras sin el descriptor de longitud de dos bytes. El número de bytes escritos es igual al número de caracteres en la cadena. Por ejemplo, las siguientes instrucciones escriben 11 bytes en el número de archivo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)La escritura en un archivo mediante la
FilePutfunción requiereWriteacceso desde la FileIOPermissionAccess enumeración.
Consulte también
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic