FileSystem.FilePut Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
Sobrecargas
FilePut(Int32, Int64, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, String, Int64, Boolean) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Object, Object, Object) |
Obsoleto.
Obsoleto.
Obsoleto.
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, ValueType, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, Single, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, Int32, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, Array, Int64, Boolean, Boolean) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, Double, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, Decimal, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, DateTime, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, Char, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, Byte, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, Boolean, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, Int16, Int64) |
Grava dados de uma variável em um arquivo de disco. O recurso |
FilePut(Int32, Int64, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, long Value, long RecordNumber = -1);
static member FilePut : int * int64 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Long, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Int64
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada para o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula daFileOpen
função,FilePut
gravará registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivo. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo, a maioria das regras de Random
modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contíguamente, ou seja, sem preenchimento entre registros.Para qualquer matriz diferente de uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as seguintes instruções gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, String, Int64, Boolean)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FilePut : int * string * int64 * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- String
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
- StringIsFixedLength
- Boolean
Opcional. Aplica-se somente ao gravar uma cadeia de caracteres. Especifica se um descritor de comprimento de cadeia de caracteres de dois bytes da cadeia de caracteres deve ou não ser gravado no arquivo. O padrão é False
.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada para o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula daFileOpen
função,FilePut
gravará registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivo. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo, a maioria das regras de Random
modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contíguamente, ou seja, sem preenchimento entre registros.Para qualquer matriz diferente de uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as seguintes instruções gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Object, Object, Object)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Cuidado
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
Cuidado
FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.
Cuidado
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte 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
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Object
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Object
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
- Atributos
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada para o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula daFileOpen
função,FilePut
gravará registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivo. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo, a maioria das regras de Random
modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contíguamente, ou seja, sem preenchimento entre registros.Para qualquer matriz diferente de uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as seguintes instruções gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, ValueType, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, ValueType Value, long RecordNumber = -1);
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- ValueType
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada para o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula daFileOpen
função,FilePut
gravará registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivos. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo , a Random
maioria das regras de modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contígua, ou seja, sem preenchimento entre registros.Para qualquer matriz que não seja uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as instruções a seguir gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, Single, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, float Value, long RecordNumber = -1);
static member FilePut : int * single * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Single, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Single
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada com o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula da função,FilePut
gravaráFileOpen
registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivos. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo , a Random
maioria das regras de modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contígua, ou seja, sem preenchimento entre registros.Para qualquer matriz que não seja uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as instruções a seguir gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, Int32, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, int Value, long RecordNumber = -1);
static member FilePut : int * int * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Integer, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Int32
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada para o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula daFileOpen
função,FilePut
gravará registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivo. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo, a maioria das regras de Random
modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contíguamente, ou seja, sem preenchimento entre registros.Para qualquer matriz diferente de uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as seguintes instruções gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, Array, Int64, Boolean, Boolean)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Array
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
- ArrayIsDynamic
- Boolean
Opcional. Aplica-se somente ao gravar uma matriz. Especifica se a matriz deve ou não ser tratada como dinâmica e se um descritor de matriz deve ou não ser gravado na cadeia de caracteres que descreve o comprimento.
- StringIsFixedLength
- Boolean
Opcional. Aplica-se somente ao gravar uma cadeia de caracteres. Especifica se um descritor de comprimento de cadeia de caracteres de dois bytes da cadeia de caracteres deve ou não ser gravado no arquivo. O padrão é False
.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada para o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula daFileOpen
função,FilePut
gravará registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivo. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo , a Random
maioria das regras de modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contígua, ou seja, sem preenchimento entre registros.Para qualquer matriz que não seja uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as instruções a seguir gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, Double, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, double Value, long RecordNumber = -1);
static member FilePut : int * double * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Double, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Double
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada com o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula da função,FilePut
gravaráFileOpen
registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivos. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo , a Random
maioria das regras de modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contígua, ou seja, sem preenchimento entre registros.Para qualquer matriz que não seja uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as instruções a seguir gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, Decimal, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, decimal Value, long RecordNumber = -1);
static member FilePut : int * decimal * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Decimal, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Decimal
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada para o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula daFileOpen
função,FilePut
gravará registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivo. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo, a maioria das regras de Random
modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contíguamente, ou seja, sem preenchimento entre registros.Para qualquer matriz diferente de uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as seguintes instruções gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, DateTime, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, DateTime Value, long RecordNumber = -1);
static member FilePut : int * DateTime * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As DateTime, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- DateTime
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada para o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula daFileOpen
função,FilePut
gravará registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivo. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento do registro especificado peloRecordLength
parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo , a Random
maioria das regras de modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contígua, ou seja, sem preenchimento entre registros.Para qualquer matriz que não seja uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as instruções a seguir gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, Char, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, char Value, long RecordNumber = -1);
static member FilePut : int * char * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Char, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Char
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada com o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula da função,FilePut
gravaráFileOpen
registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivos. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo , a Random
maioria das regras de modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contígua, ou seja, sem preenchimento entre registros.Para qualquer matriz que não seja uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as instruções a seguir gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, Byte, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, byte Value, long RecordNumber = -1);
static member FilePut : int * byte * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Byte, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Byte
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada com o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula da função,FilePut
gravaráFileOpen
registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivos. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo , a Random
maioria das regras de modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contígua, ou seja, sem preenchimento entre registros.Para qualquer matriz que não seja uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as instruções a seguir gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, Boolean, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, bool Value, long RecordNumber = -1);
static member FilePut : int * bool * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Boolean, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Boolean
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada com o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula da função,FilePut
gravaráFileOpen
registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivos. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo , a Random
maioria das regras de modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contígua, ou seja, sem preenchimento entre registros.Para qualquer matriz que não seja uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as instruções a seguir gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic
Aplica-se a
FilePut(Int32, Int16, Int64)
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
- Origem:
- FileSystem.vb
Grava dados de uma variável em um arquivo de disco. O recurso My
oferece melhor produtividade e desempenho em operações de E/S do arquivo do que FilePut
. Para obter mais informações, consulte FileSystem.
public static void FilePut (int FileNumber, short Value, long RecordNumber = -1);
static member FilePut : int * int16 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Short, Optional RecordNumber As Long = -1)
Parâmetros
- FileNumber
- Int32
Obrigatórios. Qualquer número de arquivo válido.
- Value
- Int16
Obrigatórios. Nome de variável válido que contém dados gravados em disco.
- RecordNumber
- Int64
Opcional. Registre o número (arquivos de modo Random
) ou número de byte (arquivos de modo Binary
) no qual a gravação começa.
Exceções
RecordNumber
< 1 e não é igual a -1.
O modo de arquivo é inválido.
Exemplos
Este exemplo usa a FilePut
função para gravar dados em um arquivo. Cinco registros da estrutura Person
são gravados no arquivo.
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
Comentários
FilePut
é válido somente no Random
modo e Binary
.
Dados gravados com FilePut
costumam ser lidos a partir de um arquivo usando FileGet
.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou byte está na posição 2 e assim por diante. Se você omitir RecordNumber
, o próximo registro ou byte após a última FileGet
função ou FilePut
ou apontado pela última Seek
função será gravado.
O argumento StringIsFixedLength
controla se a função interpreta cadeias de caracteres como sendo de tamanho variável ou fixo. FilePut
não grava o descritor de comprimento quando o argumento é True
. Se você usar StringIsFixedLength
= True
com FilePut
, precisará fazer o mesmo com FileGet
e precisa garantir que a cadeia de caracteres seja inicializada com o comprimento esperado.
Modo Aleatório
Para arquivos abertos no Random
modo , as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo gravados for menor que o comprimento especificado na
RecordLength
cláusula da função,FilePut
gravaráFileOpen
registros subsequentes em limites de comprimento de registro. O espaço entre o final de um registro e o início do próximo registro é preenchido com o conteúdo existente do buffer de arquivos. Como a quantidade de dados de preenchimento não pode ser determinada com certeza, geralmente é uma boa ideia fazer com que o comprimento do registro corresponda ao comprimento dos dados que estão sendo gravados. Se o comprimento dos dados que estão sendo gravados for maior que o comprimento especificado naRecordLength
cláusula daFileOpen
função, uma exceção será gerada.Caso a variável que está sendo gravada seja uma cadeia de caracteres,
FilePut
grava um descritor de dois bytes que contém o tamanho da cadeia de caracteres e, em seguida, grava os dados que vão para a variável. Portanto, o comprimento do registro especificado pelaRecordLength
cláusula naFileOpen
função deve ser pelo menos dois bytes maior que o comprimento real da cadeia de caracteres.Caso a variável que está sendo gravada seja um objeto que contém um tipo numérico,
FilePut
grava dois bytes que identificam oVarType
do objeto e, em seguida, grava a variável. Por exemplo, ao escrever um objeto que contém um inteiro,FilePut
grava seis bytes: dois bytes que identificam o objeto comoVarType(3)
(Integer
) e quatro bytes que contêm os dados. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos dois bytes maior que o número real de bytes necessários para armazenar a variável.Se a variável que está sendo gravada for um objeto que contém uma cadeia de caracteres,
FilePut
gravará um descritor de dois bytes identificando oVarType(8)
do objeto, um descritor de dois bytes que indica o comprimento da cadeia de caracteres e grava os dados da cadeia de caracteres. O comprimento doRecordLength
registro especificado pelo parâmetro naFileOpen
função deve ser pelo menos quatro bytes maior que o comprimento real da cadeia de caracteres. Caso queira colocar uma cadeia de caracteres sem o descritor, você deve passarTrue
para o parâmetroStringIsFixedLength
, e a cadeia de caracteres lida deve ter o tamanho correto.Caso a variável gravada seja uma matriz, você tem a opção de gravar ou não um descritor para o tamanho e as dimensões da matriz. O Visual Basic 6.0 e versões anteriores gravam o descritor de arquivo para uma matriz dinâmica, mas não para uma matriz de tamanho fixo. O Visual Basic 2005 usa como padrão não gravar o descritor. Para gravar o descritor, defina o
ArrayIsDynamic
parâmetro comoTrue
. Ao escrever a matriz, você precisa comparar a forma com que a matriz será lida; se ela for lida com o descritor, você precisará escrever o descritor. O descritor especifica a classificação da matriz, o tamanho e os limites inferiores para cada classificação. Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions). O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz. Por exemplo, a declaração de matriz a seguir requer 218 bytes quando a matriz é gravada em disco.Dim MyArray(4, 9) As Integer
Se a variável que está sendo gravada for qualquer outro tipo de variável (não uma cadeia de caracteres de comprimento variável ou um objeto),
FilePut
gravará apenas os dados da variável. O comprimento doRecordLength
registro especificado pela cláusula naFileOpen
função deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.FilePut
grava elementos de estruturas como se cada uma fosse escrita individualmente, exceto que não há preenchimento entre elementos. OVBFixedString
atributo pode ser aplicado a campos de cadeia de caracteres nas estruturas para indicar o tamanho da cadeia de caracteres quando gravado em disco.Observação
Os campos de cadeia de caracteres que têm mais bytes do que o
VBFixedString
especificado pelo atributo são truncados quando gravados em disco,
Modo binário
Para arquivos abertos no Binary
modo , a Random
maioria das regras de modo se aplicam, com algumas exceções. As seguintes regras para arquivos abertos no Binary
modo diferem das regras para Random
o modo:
A cláusula
RecordLength
na função deFileOpen
não está em vigor.FilePut
grava todas as variáveis no disco contígua, ou seja, sem preenchimento entre registros.Para qualquer matriz que não seja uma matriz em uma estrutura,
FilePut
grava apenas os dados. Nenhum descritor é gravado.FilePut
grava cadeias de caracteres de comprimento variável que não são elementos de estruturas sem o descritor de comprimento de dois bytes. O número de bytes gravados é igual ao número de caracteres na cadeia de caracteres. Por exemplo, as instruções a seguir gravam 11 bytes no arquivo número 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
A gravação em um arquivo usando a função
FilePut
requer o acessoWrite
da enumeração FileIOPermissionAccess.
Confira também
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Gravando em arquivos no Visual Basic