FileSystem.FilePut Método

Definición

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 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.

FilePut(Int32, String, Int64, Boolean)

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.

FilePut(Object, Object, Object)
Obsoletos.
Obsoletos.
Obsoletos.

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.

FilePut(Int32, ValueType, Int64)

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.

FilePut(Int32, Single, Int64)

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.

FilePut(Int32, Int32, Int64)

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.

FilePut(Int32, Array, Int64, Boolean, Boolean)

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.

FilePut(Int32, Double, Int64)

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.

FilePut(Int32, Decimal, Int64)

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.

FilePut(Int32, DateTime, Int64)

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.

FilePut(Int32, Char, Int64)

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.

FilePut(Int32, Byte, Int64)

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.

FilePut(Int32, Boolean, Int64)

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.

FilePut(Int32, Int16, Int64)

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.

FilePut(Int32, Int64, Int64)

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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 recomendable 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro de la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 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 requiere Write acceso desde la FileIOPermissionAccess enumeración.

Consulte también

Se aplica a

FilePut(Int32, String, Int64, Boolean)

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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 recomendable 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro de la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 requiere Write acceso desde la FileIOPermissionAccess enumeración .

Consulte también

Se aplica a

FilePut(Object, Object, Object)

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. 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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro en la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 requiere Write acceso desde la FileIOPermissionAccess enumeración .

Consulte también

Se aplica a

FilePut(Int32, ValueType, Int64)

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. 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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en laRecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro en la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 requiere Write acceso desde la FileIOPermissionAccess enumeración .

Consulte también

Se aplica a

FilePut(Int32, Single, Int64)

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. 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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro en la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 requiere Write acceso desde la FileIOPermissionAccess enumeración .

Consulte también

Se aplica a

FilePut(Int32, Int32, Int64)

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. 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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 recomendable 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro de la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 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 requiere Write acceso desde la FileIOPermissionAccess enumeración.

Consulte también

Se aplica a

FilePut(Int32, Array, Int64, Boolean, Boolean)

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. 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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 recomendable 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro de la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 requiere Write acceso desde la FileIOPermissionAccess enumeración .

Consulte también

Se aplica a

FilePut(Int32, Double, Int64)

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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro en la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 requiere Write acceso desde la FileIOPermissionAccess enumeración .

Consulte también

Se aplica a

FilePut(Int32, Decimal, Int64)

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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro en la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 requiere Write acceso desde la FileIOPermissionAccess enumeración .

Consulte también

Se aplica a

FilePut(Int32, DateTime, Int64)

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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro en la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 requiere Write acceso desde la FileIOPermissionAccess enumeración .

Consulte también

Se aplica a

FilePut(Int32, Char, Int64)

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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro en la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 requiere Write acceso desde la FileIOPermissionAccess enumeración .

Consulte también

Se aplica a

FilePut(Int32, Byte, Int64)

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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro de la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 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 requiere Write acceso desde la FileIOPermissionAccess enumeración.

Consulte también

Se aplica a

FilePut(Int32, Boolean, Int64)

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. 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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 recomendable 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro de la FileOpen 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 el VarType(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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 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 requiere Write acceso desde la FileIOPermissionAccess enumeración.

Consulte también

Se aplica a

FilePut(Int32, Int16, Int64)

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. 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 FileGety debe asegurarse de que la cadena se inicializa con la longitud esperada.

Modo aleatorio

En el caso de los archivos abiertos en Random modo , se aplican las reglas siguientes:

  • Si la longitud de los datos que se escriben es menor que la longitud especificada en la RecordLength cláusula de la FileOpen 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 recomendable 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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 como VarType(3) (Integer) y cuatro bytes que contienen los datos. La longitud del registro especificada por el RecordLength parámetro de la FileOpen 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 el RecordLength parámetro en la FileOpen 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 pasar True al StringIsFixedLength 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 en True. 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 la RecordLength cláusula de la FileOpen 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 la RecordLength cláusula de la FileOpen 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. El VBFixedString 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 la FileOpen 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 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 requiere Write acceso desde la FileIOPermissionAccess enumeración.

Consulte también

Se aplica a