Compartilhar via


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)

Consulte também

Referência

Função FileGet

Função FileOpen

Função Buscar

Função FilePut

Objeto My.Computer.FileSystem

Outros recursos

Gravando em Arquivos no Visual Basic