Função FilePutObject
Grava dados de uma variável para um arquivo do disco.
O recurso My dá a você maior produtividade e desempenho em operações de E/S de arquivos que FilePutObject.Para obter mais informações, consulte Objeto My.Computer.FileSystem.
Public Sub FilePutObject( _
FileNumber As Integer, _
Value As Object, _
RecordNumber As Integer = -1 _
)
' -or-
Overloads Public Sub FilePutObject( _
FileNumber As Integer, _
Value As Short, _
Optional RecordNumber As Integer = -1 _
)
' -or-
Overloads Public Sub FilePutObject( _
FileNumber As Integer, _
Value As Integer, _
Optional RecordNumber As Integer = -1 _
)
' -or-
Overloads Public Sub FilePutObject( _
FileNumber As Integer, _
Value As Single, _
Optional RecordNumber As Integer = -1 _
)
' -or-
Overloads Public Sub FilePutObject( _
FileNumber As Integer, _
Value As Double, _
RecordNumber As Integer = -1 _
)
' -or-
Overloads Public Sub FilePutObject( _
FileNumber As Integer, _
Value As Decimal, _
Optional RecordNumber As Integer = -1 _
)
' -or-
Overloads Public Sub FilePutObject( _
FileNumber As Integer, _
Value As Byte, _
Optional RecordNumber As Integer = -1 _
)
' -or-
Overloads Public Sub FilePutObject( _
FileNumber As Integer, _
Value As Boolean, _
Optional RecordNumber As Integer = -1 _
)
' -or-
Overloads Public Sub FilePutObject( _
FileNumber As Integer, _
Value As Date, _
Optional RecordNumber As Integer = -1 _
)
' -or-
Overloads Public Sub FilePutObject( _
FileNumber As Integer, _
Value As System.Array, _
Optional RecordNumber As Integer = -1, _
Optional ArrayIsDynamic As Boolean = False _
)
' -or-
Overloads Public Sub FilePutObject( _
FileNumber As Integer, _
Value As String, _
Optional RecordNumber As Integer = -1, _
Optional StringIsFixedLength As Boolean = False _
)
Parâmetros
FileNumber
Obrigatório.Qualquer número de arquivo válido.Value
Obrigatório.Nome de variável válido que contenha os dados gravados no disco.RecordNumber
Opcional.Gravar número (arquivos de modo Random) ou número de byte (arquivos de modo Binary) no qual a leitura começa.ArrayIsDynamic
Opcional.Aplica-se somente quando se escreve uma matriz.Especifica se a matriz deve ser tratada como dinâmica, e se deve gravar um descritor de matriz para a sequência de caracteres que descreve o comprimento.StringIsFixedLength
Opcional.Aplica-se somente quando se grava uma sequência de caracteres.Especifica se deve gravar um descritor para a sequência de caracteres que descreve o comprimento.O padrão é False.
Comentários
A função FilePutObject é usada no lugar de FilePut para evitar ambiguidades no tempo de compilação se tipo Object é passado em vez de outro tipo, como Integer,Long,Short,e assim por diante.
FilePutObject grava e lê descritores que descrevem o objeto.Se você pretende gravar o tipo Variant, FilePutObject será necessário.Quando em dúvida, se você estiver usando um objeto para o segundo parâmetro, é sempre recomendável usar FilePutObject e FileGetObject.
FilePutObject é válido somente nos modos Random e Binary.
Dados escritos com FilePutObject são normalmente lidos a partir de um arquivo com FileGetObject.
O primeiro registro ou byte em um arquivo está na posição 1, o segundo registro ou de byte está na posição 2 e assim por diante.Se você omitir RecordNumber,FilePutObject grava o próximo registro ou de byte após a última função FileGetObject ou FilePutObject (ou o registro ou byte apontado pela última função Seek )..
The StringIsFixedLength argumento controla se a função interpreta sistema autônomo seqüências de caracteres sistema autônomo comprimento fixo ou variável. FilePutObject não gravar quando o argumento é o descritor de comprimento True. Se você usar StringIsFixedLength = True com FilePutObject,você precisará fazer o mesmo com FileGetObject,e deverá certificar-se também de que a sequência de caracteres é inicializada com o tamanho esperado.
Modo Aleatório
Para arquivos abertos no modo Random as seguintes regras se aplicam:
Se o comprimento dos dados que estão sendo escritos for menor do que o comprimento especificado na cláusula RecordLength da função FileOpen,FilePutObject escreverá registros subsequentes nos 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 no buffer de arquivo.Como a quantidade de dados a serem preenchidos não pode ser precisamente determinada, ela é geralmente uma boa ideia para que o comprimento do registro coincida com o tamanho dos dados que estão sendo gravados.Se o comprimento dos dados que estão sendo gravados for maior do que o comprimento especificado na cláusula RecordLength da função FileOpen, uma exceção será lançada.
Se a variável que está sendo gravada for um objeto que contém um tipo numérico, FilePutObject grava dois bytes que identificam o VarType do objeto e, em seguida, grava a variável.Por exemplo, ao escrever um objeto que contém um número inteiro, FilePutObject grava seis bytes: dois bytes, identificando o objeto sistema autônomo VarType(3) (Integer) e quatro bytes que contém sistema autônomo dados. O comprimento do registro especificado pelo parâmetro RecordLength na função FileOpen deve ser pelo menos dois bytes maior do que o número real de bytes requeridos para armazenar a variável.
Se a variável que está sendo gravada for um objeto contendo uma sequência de caracteres, FilePutObject grava um descritor de dois bytes que identifica o VarType(8 ) do objeto, um descritor de dois bytes indicando o comprimento da sequência de caracteres e em seguida, grava os dados da sequência.O comprimento do registro especificado pelo parâmetro RecordLength na função FileOpen deve ser pelo menos quatro bytes maior do que o comprimento real da sequência de caracteres.Se você desejar ler uma sequência de caracteres sem o descritor, você deve passar True para o parâmetro StringIsFixedLength, e a sequência de caracteres que você ler deve ser do tamanho correto.
Se a variável que está sendo gravada for uma matriz, você pode optar por escrever um descritor para o tamanho e dimensões da matriz.Visual Basic 6.0 e versões anteriores poderiam gravar o arquivo descritor para uma matriz dinâmica, mas não para uma matriz de tamanho fixo; O padrão do Visual Basic é não gravar o descritor.Para gravar o descritor, defina o parâmetro ArrayIsDynamic como True.Ao escrever a matriz, você precisa corresponder a maneira segundo a qual a matriz é lida; se ela é lida com o descritor, você precisará escrever o descritor.O descritor especifica a classificação de matriz, o tamanho e os limites inferiores para cada posição.Seu comprimento é igual a 2 mais 8 vezes o número de dimensões: (2 + 8 * NumberOfDimensions).O comprimento do registro especificado pela cláusula RecordLength na função FileOpen deve ser maior ou igual à soma de todos os bytes necessários para gravar os dados da matriz e o descritor da matriz.
Modo Binário
Para arquivos abertos no modo Binary, todas as regras do modo Random se aplicam, exceto:
- The RecordLength cláusula de FileOpen função não tem efeito. FilePutObject grava todas as variáveis de disco de forma contígua, ou seja, com nenhum preenchimento entre registros.
Exemplo
Este exemplo usa a função FilePutObject para gravar uma sequência de caracteres em um arquivo.
Sub WriteData()
Dim text As String = "test"
FileOpen(1, "test.bin", OpenMode.Binary)
FilePutObject(1, text)
FileClose(1)
End Sub
Anotações Developer Dispositivo Inteligente
Não há suporte para esta função.
Requisitos
Namespace: Microsoft.VisualBasic
**Módulo:**FileSystem
Assembly: Visual Basic Runtime Library (em Microsoft.VisualBasic.dll)