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 los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea la clase FileSystem.
Sobrecargas
FilePut(Int32, Int64, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, String, Int64, Boolean) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Object, Object, Object) |
Obsoletos.
Obsoletos.
Obsoletos.
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, ValueType, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, Single, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, Int32, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, Array, Int64, Boolean, Boolean) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, Double, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, Decimal, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, DateTime, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, Char, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, Byte, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, Boolean, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, Int16, Int64) |
Escribe los datos de una variable en un archivo de disco. La característica |
FilePut(Int32, Int64, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- Int64
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe 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, generalmente es una buena idea tener la longitud del registro que 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro de laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que ha leído debe ser la longitud correcta.Si la variable que se escribe 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 no escribe el descriptor de forma predeterminada. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, debe escribir el descriptor. El descriptor especifica la clasificación 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 laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de 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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary
modo, la mayoría de las Random
reglas de modo se aplican, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary
modo difieren de las reglas para Random
el modo:
La
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe todas las variables en disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz que no sea una matriz de una estructura,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, String, Int64, Boolean)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- String
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza la escritura.
- StringIsFixedLength
- Boolean
Opcional. Se aplica sólo al escribir una cadena. Especifica si se va a escribir un descriptor de longitud de cadena de 2 bytes para la cadena en el archivo. De manera predeterminada, 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. Cinco registros de la estructura Person
se escriben 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe 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, generalmente es una buena idea tener la longitud del registro que 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro de laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que ha leído debe ser la longitud correcta.Si la variable que se escribe 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 no escribe el descriptor de forma predeterminada. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, debe escribir el descriptor. El descriptor especifica la clasificación 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 laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de 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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary
modo, la mayoría de las Random
reglas de modo se aplican, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary
modo difieren de las reglas para Random
el modo:
La
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe todas las variables en disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz que no sea una matriz de una estructura,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Object, Object, Object)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
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
Precaución
FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.
Precaución
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea FileSystem.
public:
static void FilePut(System::Object ^ FileNumber, System::Object ^ Value, System::Object ^ RecordNumber);
[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);
[System.Obsolete("FileSystem.FilePut has been deprecated. 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);
[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("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
[<System.Obsolete("FileSystem.FilePut has been deprecated. 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("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
Public Sub FilePut (FileNumber As Object, Value As Object, RecordNumber As Object)
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
Parámetros
- FileNumber
- Object
Obligatorio. Cualquier número de archivo válido.
- Value
- Object
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Object
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza la escritura.
- Atributos
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. Cinco registros de la estructura Person
se escriben 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe 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, generalmente es una buena idea tener la longitud del registro que 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro de laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que ha leído debe ser la longitud correcta.Si la variable que se escribe 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 no escribe el descriptor de forma predeterminada. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, debe escribir el descriptor. El descriptor especifica la clasificación 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 laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de 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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary
modo, la mayoría de las Random
reglas de modo se aplican, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary
modo difieren de las reglas para Random
el modo:
La
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe todas las variables en disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz que no sea una matriz de una estructura,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, ValueType, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- ValueType
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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. Cinco registros de la estructura Person
se escriben 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe 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, generalmente es una buena idea tener la longitud del registro que 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro de laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que ha leído debe ser la longitud correcta.Si la variable que se escribe 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 no escribe el descriptor de forma predeterminada. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, debe escribir el descriptor. El descriptor especifica la clasificación 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 laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de 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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary
modo, la mayoría de las Random
reglas de modo se aplican, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary
modo difieren de las reglas para Random
el modo:
La
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe todas las variables en disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz que no sea una matriz de una estructura,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, Single, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- Single
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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. Cinco registros de la estructura Person
se escriben 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe 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, generalmente es una buena idea tener la longitud del registro que 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro de laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que ha leído debe ser la longitud correcta.Si la variable que se escribe 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 no escribe el descriptor de forma predeterminada. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. Al escribir la matriz, debe coincidir con la forma en que se leerá la matriz; si se leerá con el descriptor, debe escribir el descriptor. El descriptor especifica la clasificación 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 laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la suma de todos los bytes necesarios para escribir los datos de 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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, excepto que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo se truncan cuando se escriben en el disco,
Modo binario
En el caso de los archivos abiertos en Binary
modo, la mayoría de las Random
reglas de modo se aplican, con algunas excepciones. Las reglas siguientes para los archivos abiertos en Binary
modo difieren de las reglas para Random
el modo:
La
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe todas las variables en disco de forma contigua, es decir, sin relleno entre registros.Para cualquier matriz que no sea una matriz de una estructura,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, Int32, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- Int32
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del registro siguiente 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro en laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se escribe 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. El valor predeterminado de Visual Basic 2005 no es escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. 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 la clasificación 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 laRecordLength
cláusula de laFileOpen
funció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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, salvo que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo 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
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe 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,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, Array, Int64, Boolean, Boolean)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- Array
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza la escritura.
- ArrayIsDynamic
- Boolean
Opcional. Sólo se aplica al escribir una matriz. Especifica si la matriz se va a tratar como una matriz dinámica y si se va a escribir un descriptor de matriz para la cadena que describe la longitud.
- StringIsFixedLength
- Boolean
Opcional. Se aplica sólo al escribir una cadena. Especifica si se va a escribir un descriptor de longitud de cadena de 2 bytes para la cadena en el archivo. De manera predeterminada, 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del registro siguiente 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro en laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se escribe 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. El valor predeterminado de Visual Basic 2005 no es escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. 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 la clasificación 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 laRecordLength
cláusula de laFileOpen
funció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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, salvo que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo 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
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe 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,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, Double, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- Double
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del registro siguiente 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro en laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se escribe 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. El valor predeterminado de Visual Basic 2005 no es escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. 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 la clasificación 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 laRecordLength
cláusula de laFileOpen
funció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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, salvo que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo 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
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe 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,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, Decimal, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- Decimal
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del registro siguiente 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro en laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se escribe 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. El valor predeterminado de Visual Basic 2005 no es escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. 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 la clasificación 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 laRecordLength
cláusula de laFileOpen
funció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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, salvo que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo 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
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe 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,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, DateTime, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- DateTime
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del registro siguiente 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro en laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se escribe 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. El valor predeterminado de Visual Basic 2005 no es escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. 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 la clasificación 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 laRecordLength
cláusula de laFileOpen
funció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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, salvo que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo 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
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe 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,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, Char, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- Char
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del registro siguiente 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro en laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se escribe 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. El valor predeterminado de Visual Basic 2005 no es escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. 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 la clasificación 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 laRecordLength
cláusula de laFileOpen
funció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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, salvo que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo 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
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe 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,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, Byte, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- Byte
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del registro siguiente 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro en laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se escribe 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. El valor predeterminado de Visual Basic 2005 no es escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. 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 la clasificación 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 laRecordLength
cláusula de laFileOpen
funció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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, salvo que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo 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
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe 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,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, Boolean, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- Boolean
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del registro siguiente 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro en laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se escribe 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. El valor predeterminado de Visual Basic 2005 no es escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. 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 la clasificación 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 laRecordLength
cláusula de laFileOpen
funció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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, salvo que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo 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
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe 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,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic
Se aplica a
FilePut(Int32, Int16, Int64)
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
- Source:
- FileSystem.vb
Escribe los datos de una variable en un archivo de disco. La característica My
proporciona una mayor productividad y rendimiento en las operaciones de E/S de archivo que FilePut
. Para obtener más información, vea 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
Obligatorio. Cualquier número de archivo válido.
- Value
- Int16
Obligatorio. Nombre válido de variable que contiene los datos escritos en disco.
- RecordNumber
- Int64
Opcional. Número de registro (archivos en modo Random
) o número de byte (archivos en modo Binary
) en el que comienza 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 está en la posición 1, el segundo registro o byte está 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 longitud variable o fija. FilePut
no escribe el descriptor de longitud cuando el argumento es True
. Si usa StringIsFixedLength
= True
con FilePut
, tiene que hacer lo mismo con FileGet
y 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
RecordLength
cláusula de laFileOpen
función,FilePut
escribe los registros posteriores en los límites de longitud del registro. El espacio entre el final de un registro y el inicio del registro siguiente 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 laRecordLength
cláusula de laFileOpen
función, se producirá una excepción.Si la variable que se escribe es una cadena,
FilePut
escribe un descriptor de dos bytes que contiene la longitud de la cadena y, a continuación, escribe los datos que entran en la variable. Por lo tanto, la longitud del registro especificada por laRecordLength
cláusula de laFileOpen
funció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, escribe dos bytes que identifican el
VarType
del objeto y, a continuación,FilePut
escribe la variable. Por ejemplo, al escribir un objeto que contiene un entero,FilePut
escribe seis bytes: dos bytes que identifican el objeto comoVarType(3)
(Integer
) y cuatro bytes que contienen los datos. La longitud del registro especificada por elRecordLength
parámetro en laFileOpen
funció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,
FilePut
escribe 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 elRecordLength
parámetro en laFileOpen
función debe ser al menos cuatro bytes mayores que la longitud real de la cadena. Si desea colocar una cadena sin el descriptor, debe pasarTrue
alStringIsFixedLength
parámetro y la cadena en la que lee debe ser la longitud correcta.Si la variable que se escribe 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. El valor predeterminado de Visual Basic 2005 no es escribir el descriptor. Para escribir el descriptor, establezca el
ArrayIsDynamic
parámetro enTrue
. 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 la clasificación 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 laRecordLength
cláusula de laFileOpen
funció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 Integer
Si la variable que se escribe es cualquier otro tipo de variable (no una cadena de longitud variable o un objeto),
FilePut
escribe solo los datos de la variable. La longitud del registro especificada por laRecordLength
cláusula de laFileOpen
función debe ser mayor o igual que la longitud de los datos que se escriben.FilePut
escribe elementos de estructuras como si cada uno se escribiera individualmente, salvo que no hay relleno entre elementos. ElVBFixedString
atributo 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
VBFixedString
atributo 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
RecordLength
cláusula de laFileOpen
función no tiene ningún efecto.FilePut
escribe 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,
FilePut
escribe solo los datos. No se escribe ningún descriptor.FilePut
escribe 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 de 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)
Escribir en un archivo mediante la
FilePut
función requiereWrite
acceso 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
- Escribir en archivos en Visual Basic