Partilhar via


Função FileGet

Lê dados de um arquivo aberto de disco para uma variável.

O recurso My dá a você maior produtividade e desempenho em operações de I/O em arquivos que FileGet.Para obter mais informações, consulte Objeto My.Computer.FileSystem.

Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Object, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Short, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Integer, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Single, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Double, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Decimal, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Byte, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Boolean, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As Date, _
   Optional RecordNumber As Integer = -1 _
)
' -or-
Public Overloads Sub FileGet( _
   ByVal FileNumber As Integer, _
   ByRef Value As System.Array, _
   Optional RecordNumber As Integer = -1, _
   Optional ArrayIsDynamic As Boolean = False _
)
' -or-
Public Overloads Sub FileGet(
   ByVal FileNumber As Integer, _
   ByRef 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 em que dados sejam lidos.

  • RecordNumber
    Opcional.Gravar número (arquivos de modo Randoms) 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 é necessário gravar um descritor de matriz que descreve o tamanho e limites da matriz.

  • StringIsFixedLength
    Opcional.Aplica-se somente quando se grava uma sequência de caracteres.Especifica se deve gravar um descritor de dois bytes para a sequência de caracteres que descreve o comprimento.O padrão é False.

Exceções

Tipo de exceção

Número de erro

Condição

ArgumentException

63

RecordNumber < 1 e não igual a -1.

IOException

52

FileNumber não existe.

IOException

54

Modo de arquivo é inválido.

Ver a coluna " número de erro " se você estiver atualizando aplicativos Visual Basic 6.0 que usam manipulação de erros não estruturada.(Você pode comparar o número do erro com a Propriedade do Número (Erro de objeto).) No entanto, quando possível, você deve considerar substituir tal controle de erro por Visão Geral sobre a Manipulação Estruturada de Exceções para o Visual Basic.

Comentários

FileGet é válido somente nos modos Random e Binary.

Dados lidos com FileGet geralmente são escritos em um arquivo com FilePut.

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,o próximo registro ou de bytes após a última FileGet ou FilePut função (ou apontada pelo último Seek funcionar) é lido.

Observação de segurança:

Quando ler arquivos, não faça decisões sobre o conteúdo do arquivo baseado no nome de sua extensão.Por exemplo, um arquivo chamado Form1.VB não pode ser um arquivo de fonte do Visual Basic.

Modo Aleatório

Para arquivos abertos no modo Random as seguintes regras se aplicam:

  • Se o comprimento dos dados que está sendo lidos é menor do que o comprimento especificado na cláusula RecordLength da função FileOpen,FileGet lê registros subsequentes em limites de comprimento 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.Porque a quantidade de dados a serem preenchidos não pode ser determinada com certeza, ela é geralmente uma boa ideia para que o comprimento do registro coincida com o tamanho dos dados que estão sendo lidos.

  • Por padrão, se for a variável sendo lida é uma sequência de caracteres, FileGet lê um descritor de dois bytes que contém o comprimento da sequência de caracteres e, em seguida, lê os dados que vão para a variável.Portanto, o comprimento do registro especificado pela cláusula RecordLength ou função FileOpen deve ser pelo menos dois bytes maior do que o comprimento real da sequência de caracteres.Visual Basic 6.0 e versões anteriores oferecem suporte a sequências de comprimento fixo, quando gravados em um arquivo, o comprimento do descritor não é gravado.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 em deve ser o tamanho correto.

  • Se a variável sendo lida for uma matriz, então você pode optar ler um descritor para o tamanho e dimensão da matriz.Para gravar o descritor, defina o parâmetro ArrayIsDynamic como True.Durante a leitura da matriz, você precisará coincidir com a forma que de matriz foi escrita.Se ele foi gravado com o descritor, você precisará ler o descritor.Se o descritor não for usado, o tamanho e limites da matriz passada para FileGet são usados para determinar o que ler.

    O descritor especifica a classificação de matriz, o tamanho e os limites inferiores para cada posição.Seu comprimento é 2, além de 8 vezes igual ao número de dimensões: (2 + 8 * NumberOfDimensions).O comprimento do registro especificado pelo parâmetro RecordLength na função FileOpen deve ser maior ou igual a soma de todos os bytes necessário para gravar os dados de matriz e o descritor de matriz.Por exemplo, a seguinte declaração de matriz necessitará de 218 bytes quando a matriz for gravada no disco:

    Dim MyArray(4,9) As Integer
    

    Os 218 bytes são distribuídos da seguinte maneira:

    • 18 bytes para o descritor: (2 + 8 * 2)

    • 200 bytes de dados: (5 * 10 * 4).

  • Se a variável que está sendo lida for qualquer outro tipo de variável (não uma a sequência de caracteres de comprimento variável ou um objeto), FileGet lê somente os dados da variável.O comprimento do registro especificado pela cláusula RecordLength na função FileOpen deve ser maior ou igual ao comprimento dos dados que estão sendo gravados.

  • FileGet lê elementos de estruturas como se cada um estava sendo lido individualmente, exceto pelo fato de que haja nenhum preenchimento entre elementos.No disco, uma matriz dinâmica em um tipo definido pelo usuário (escrito com FilePut) tem o prefixo de um descritor cujo tamanho é igual 2, além de 8 horas ao 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 a soma de todos os bytes necessário para ler os elementos individuais.Isso inclui quaisquer matrizes e seus descritores.O atributo VBFixedString pode ser aplicado a campos de sequência de caracteres nas estruturas para indicar o tamanho da sequência de caracteres quando gravadas em disco.

Modo Binário

Para arquivos abertos no modo Binary, a maioria das regras de modo Random se aplicam, com algumas exceções.As seguintes regras para arquivos abertos no modo Binary diferem das regras do modo Random :

  • The RecordLength cláusula de FileOpen função não tem efeito. FileGet lê todas as variáveis do disco de forma contígua, ou seja, sem preenchimento entre registros.

  • Para qualquer matriz que não seja uma matriz em uma estrutura, FileGet lê apenas os dados.Nenhum descritor é lido.

  • FileGet lê sequências de comprimento variável que não são elementos das estruturas sem esperar o descritor de dois bytes comprimento.O número de bytes lidos é igual ao número de caracteres já na sequência.

    Observação de segurança:

    Reading de um arquivo, usando o FileGet função requer Read acesso das FileIOPermissionAccess enumeração.

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 FileOpen

Função FilePut

Função Buscar

Função FileGetObject

Outros recursos

Leitura de arquivos no Visual Basic

Gravando em Arquivos no Visual Basic