Udostępnij za pośrednictwem


FileSystem.FileGet Metoda

Definicja

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

Przeciążenia

FileGet(Int32, Array, Int64, Boolean, Boolean)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, String, Int64, Boolean)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, ValueType, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, Single, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, Int64, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, Int32, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, Decimal, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, Double, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, DateTime, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, Char, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, Byte, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, Boolean, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, Int16, Int64)

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

FileGet(Int32, Array, Int64, Boolean, Boolean)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą produktywność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
static member FileGet : int * Array * int64 * bool * bool -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
Array

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczyt.

ArrayIsDynamic
Boolean

Opcjonalny. Dotyczy tylko podczas pisania tablicy. Określa, czy tablica ma być traktowana jako dynamiczna i czy deskryptor tablicy opisujący rozmiar i granice tablicy jest konieczne.

StringIsFixedLength
Boolean

Opcjonalny. Stosuje się tylko przy pisaniu ciągów. Określa, czy należy napisać deskryptor dwu bajtowy dla ciągu, który opisuje długość. Wartość domyślna to False.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGet jest prawidłowy tylko w Random trybie i Binary .

Dane odczytywane FileGet za pomocą polecenia są zwykle zapisywane w pliku przy użyciu polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, zostanie odczytany następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy na granicach długości rekordu. Odstęp między końcem jednego rekordu a rozpoczęciem następnego rekordu jest dopełniane istniejącą zawartością buforu pliku. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, FileGet a następnie odczytuje dane, które przechodzą do zmiennej. W związku z tym długość rekordu FileOpen określona przez RecordLength klauzulę funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien mieć prawidłową długość.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazane do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaOfDimensions). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna, do którego jest odczytywana, jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (napisanym FilePutprzy użyciu ) jest poprzedzona deskryptorem, którego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie Random większość reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwieranych w Binary trybie różnią się od reguł Random trybu:

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku stale; oznacza to, że bez dopełniania między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z wyliczenia FileIOPermissionAccess .

Zobacz też

Dotyczy

FileGet(Int32, String, Int64, Boolean)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FileGet : int * string * int64 * bool -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
String

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczytywanie.

StringIsFixedLength
Boolean

Opcjonalny. Stosuje się tylko przy pisaniu ciągów. Określa, czy należy napisać deskryptor dwu bajtowy dla ciągu opisującego długość. Wartość domyślna to False.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGet jest prawidłowy tylko w Random trybie i Binary .

Dane odczytywane FileGet za pomocą polecenia są zwykle zapisywane w pliku przy użyciu polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, zostanie odczytany następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy na granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, FileGet a następnie odczytuje dane, które przechodzą do zmiennej. W związku z tym długość rekordu FileOpen określona przez RecordLength klauzulę funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien mieć prawidłową długość.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazane do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaOfDimensions). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna, do którego jest odczytywana, jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (napisanym FilePutprzy użyciu ) jest poprzedzona deskryptorem, którego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie Random większość reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwartych w Binary trybie różnią się od reguł trybu Random :

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku w sposób ciągły; oznacza to, że bez dopełnienia między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z FileIOPermissionAccess wyliczenia.

Zobacz też

Dotyczy

FileGet(Int32, ValueType, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref ValueType Value, long RecordNumber = -1);
static member FileGet : int * ValueType * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As ValueType, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
ValueType

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczyt.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGetjest prawidłowy tylko w Random trybie i .Binary

Odczytywanie FileGet danych za pomocą polecenia jest zwykle zapisywane w pliku przy użyciu polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, odczytany jest następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy w granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana do elementu jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, a następnie odczytuje dane, FileGet które przechodzą do zmiennej. W związku z tym długość rekordu określona przez RecordLength klauzulę FileOpen funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien być prawidłową długością.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazanej do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaDimensionów). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna do odczytu jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu określona przez klauzulę RecordLength w FileOpen funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (zapisywanym za pomocą FilePutpolecenia ) jest poprzedzona deskryptorem, którego długość jest równa 2 plus 8 razy krotnie liczbie wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu określona przez klauzulę RecordLength w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie większość Random reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwartych w Binary trybie różnią się od reguł trybu Random :

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku w sposób ciągły; oznacza to, że bez dopełnienia między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z FileIOPermissionAccess wyliczenia.

Zobacz też

Dotyczy

FileGet(Int32, Single, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą produktywność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref float Value, long RecordNumber = -1);
static member FileGet : int * single * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As Single, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
Single

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczyt.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGetjest prawidłowy tylko w Random trybie i .Binary

Odczytywanie FileGet danych za pomocą polecenia jest zwykle zapisywane w pliku przy użyciu polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, odczytany jest następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy w granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana do elementu jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, a następnie odczytuje dane, FileGet które przechodzą do zmiennej. W związku z tym długość rekordu określona przez RecordLength klauzulę FileOpen funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien być prawidłową długością.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazane do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaOfDimensions). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna, do którego jest odczytywana, jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (napisanym FilePutprzy użyciu ) jest poprzedzona deskryptorem, którego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie Random większość reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwieranych w Binary trybie różnią się od reguł Random trybu:

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku stale; oznacza to, że bez dopełniania między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z wyliczenia FileIOPermissionAccess .

Zobacz też

Dotyczy

FileGet(Int32, Int64, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą produktywność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref long Value, long RecordNumber = -1);
static member FileGet : int * int64 * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As Long, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
Int64

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczytywanie.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGet jest prawidłowy tylko w Random trybie i Binary .

Dane odczytywane FileGet za pomocą polecenia są zwykle zapisywane w pliku przy użyciu polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, zostanie odczytany następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy na granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, FileGet a następnie odczytuje dane, które przechodzą do zmiennej. W związku z tym długość rekordu FileOpen określona przez RecordLength klauzulę funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien mieć prawidłową długość.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazane do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaOfDimensions). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna, do którego jest odczytywana, jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (napisanym FilePutprzy użyciu ) jest poprzedzona deskryptorem, którego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie Random większość reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwieranych w Binary trybie różnią się od reguł Random trybu:

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku stale; oznacza to, że bez dopełniania między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z wyliczenia FileIOPermissionAccess .

Zobacz też

Dotyczy

FileGet(Int32, Int32, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą produktywność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref int Value, long RecordNumber = -1);
static member FileGet : int * int * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As Integer, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
Int32

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczytywanie.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGet jest prawidłowy tylko w Random trybie i Binary .

Dane odczytywane FileGet za pomocą polecenia są zwykle zapisywane w pliku przy użyciu polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, zostanie odczytany następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy na granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, FileGet a następnie odczytuje dane, które przechodzą do zmiennej. W związku z tym długość rekordu FileOpen określona przez RecordLength klauzulę funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien mieć prawidłową długość.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazane do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaOfDimensions). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna, do którego jest odczytywana, jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (napisanym FilePutprzy użyciu ) jest poprzedzona deskryptorem, którego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie Random większość reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwieranych w Binary trybie różnią się od reguł Random trybu:

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku stale; oznacza to, że bez dopełniania między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z wyliczenia FileIOPermissionAccess .

Zobacz też

Dotyczy

FileGet(Int32, Decimal, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref decimal Value, long RecordNumber = -1);
static member FileGet : int * decimal * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As Decimal, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
Decimal

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczytywanie.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGet jest prawidłowy tylko w Random trybie i Binary .

Dane odczytywane FileGet za pomocą polecenia są zwykle zapisywane w pliku przy użyciu polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, zostanie odczytany następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy na granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, FileGet a następnie odczytuje dane, które przechodzą do zmiennej. W związku z tym długość rekordu FileOpen określona przez RecordLength klauzulę funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien mieć prawidłową długość.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazane do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaOfDimensions). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna, do którego jest odczytywana, jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (napisanym FilePutprzy użyciu ) jest poprzedzona deskryptorem, którego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie Random większość reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwieranych w Binary trybie różnią się od reguł Random trybu:

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku stale; oznacza to, że bez dopełniania między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z FileIOPermissionAccess wyliczenia.

Zobacz też

Dotyczy

FileGet(Int32, Double, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref double Value, long RecordNumber = -1);
static member FileGet : int * double * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As Double, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
Double

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczyt.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGetjest prawidłowy tylko w Random trybie i .Binary

Odczytywanie FileGet danych za pomocą polecenia jest zwykle zapisywane w pliku przy użyciu polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, odczytany jest następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy w granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana do elementu jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, a następnie odczytuje dane, FileGet które przechodzą do zmiennej. W związku z tym długość rekordu określona przez RecordLength klauzulę FileOpen funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien być prawidłową długością.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazanej do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaDimensionów). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna do odczytu jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu określona przez klauzulę RecordLength w FileOpen funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (zapisywanym za pomocą FilePutpolecenia ) jest poprzedzona deskryptorem, którego długość jest równa 2 plus 8 razy krotnie liczbie wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu określona przez klauzulę RecordLength w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie większość Random reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwartych w Binary trybie różnią się od reguł trybu Random :

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku w sposób ciągły; oznacza to, że bez dopełnienia między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciuFileGet funkcji wymaga Read dostępu z FileIOPermissionAccess wyliczenia.

Zobacz też

Dotyczy

FileGet(Int32, DateTime, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref DateTime Value, long RecordNumber = -1);
static member FileGet : int * DateTime * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As DateTime, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
DateTime

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczyt.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGetjest prawidłowy tylko w Random trybie i .Binary

Dane odczytywane FileGet przy użyciu są zwykle zapisywane w pliku za pomocą polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, odczytany jest następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji,FileGet odczytuje kolejne rekordy w granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana do elementu jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, a następnie odczytuje dane, FileGet które przechodzą do zmiennej. W związku z tym długość rekordu określona przez RecordLength klauzulę FileOpen funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien być prawidłową długością.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazanej do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaDimensionów). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna do odczytu jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu określona przez klauzulę RecordLength w FileOpen funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (zapisywanym za pomocą FilePutpolecenia ) jest poprzedzona deskryptorem, którego długość jest równa 2 plus 8 razy krotnie liczbie wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu określona przez klauzulę RecordLength w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie większość Random reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwartych w Binary trybie różnią się od reguł trybu Random :

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku w sposób ciągły; oznacza to, że bez dopełnienia między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z FileIOPermissionAccess wyliczenia.

Zobacz też

Dotyczy

FileGet(Int32, Char, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref char Value, long RecordNumber = -1);
static member FileGet : int * char * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As Char, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
Char

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczyt.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGetjest prawidłowy tylko w Random trybie i .Binary

Dane odczytywane FileGet przy użyciu są zwykle zapisywane w pliku za pomocą polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, odczytany jest następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy w granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana do elementu jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, a następnie odczytuje dane, FileGet które przechodzą do zmiennej. W związku z tym długość rekordu określona przez RecordLength klauzulę FileOpen funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien być prawidłową długością.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazanej do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaDimensionów). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna do odczytu jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu określona przez klauzulę RecordLength w FileOpen funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (zapisywanym za pomocą FilePutpolecenia ) jest poprzedzona deskryptorem, którego długość jest równa 2 plus 8 razy krotnie liczbie wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu określona przez klauzulę RecordLength w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie większość Random reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwartych w Binary trybie różnią się od reguł trybu Random :

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku w sposób ciągły; oznacza to, że bez dopełnienia między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z FileIOPermissionAccess wyliczenia.

Zobacz też

Dotyczy

FileGet(Int32, Byte, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą produktywność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref byte Value, long RecordNumber = -1);
static member FileGet : int * byte * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As Byte, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
Byte

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczyt.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGetjest prawidłowy tylko w Random trybie i .Binary

Dane odczytywane FileGet przy użyciu są zwykle zapisywane w pliku za pomocą polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, odczytany jest następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy na granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, FileGet a następnie odczytuje dane, które przechodzą do zmiennej. W związku z tym długość rekordu FileOpen określona przez RecordLength klauzulę funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien mieć prawidłową długość.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany. Następnie rozmiar i granice tablicy przekazane do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaOfDimensions). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna, do którego jest odczytywana, jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (napisanym FilePutprzy użyciu ) jest poprzedzona deskryptorem, którego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie Random większość reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwieranych w Binary trybie różnią się od reguł Random trybu:

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku stale; oznacza to, że bez dopełniania między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z wyliczenia FileIOPermissionAccess .

Zobacz też

Dotyczy

FileGet(Int32, Boolean, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref bool Value, long RecordNumber = -1);
static member FileGet : int * bool * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As Boolean, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
Boolean

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczytywanie.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGet jest prawidłowy tylko w Random trybie i Binary .

Dane odczytywane za pomocą FileGet polecenia są zwykle zapisywane w pliku za pomocą polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, zostanie odczytany następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy na granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, FileGet a następnie odczytuje dane, które przechodzą do zmiennej. W związku z tym długość rekordu FileOpen określona przez RecordLength klauzulę funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien mieć prawidłową długość.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazane do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaOfDimensions). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna, do którego jest odczytywana, jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (napisanym FilePutprzy użyciu ) jest poprzedzona deskryptorem, którego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu FileOpen określona przez klauzulę RecordLength w funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie Random większość reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwieranych w Binary trybie różnią się od reguł Random trybu:

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku stale; oznacza to, że bez dopełniania między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciuFileGet funkcji wymaga Read dostępu z wyliczenia FileIOPermissionAccess .

Zobacz też

Dotyczy

FileGet(Int32, Int16, Int64)

Źródło:
FileSystem.vb
Źródło:
FileSystem.vb
Źródło:
FileSystem.vb

Wczytuje dane z otwartego pliku dysku do zmiennej. Ta My funkcja zapewnia lepszą wydajność i wydajność operacji we/wy plików niż FileGet. Aby uzyskać więcej informacji, zobacz FileSystem.

public static void FileGet (int FileNumber, ref short Value, long RecordNumber = -1);
static member FileGet : int * int16 * int64 -> unit
Public Sub FileGet (FileNumber As Integer, ByRef Value As Short, Optional RecordNumber As Long = -1)

Parametry

FileNumber
Int32

Wymagane. Dowolna prawidłowa liczba plików.

Value
Int16

Wymagane. Prawidłowa nazwa zmiennej, do której wczytywane są dane.

RecordNumber
Int64

Opcjonalny. Liczba rekordów (Random pliki trybu) lub liczba bajtów (Binary pliki trybu), w których rozpoczyna się odczyt.

Wyjątki

RecordNumber< 1 i nie równe -1.

Tryb pliku jest nieprawidłowy.

Uwagi

FileGetjest prawidłowy tylko w Random trybie i .Binary

Odczytywanie FileGet danych za pomocą polecenia jest zwykle zapisywane w pliku przy użyciu polecenia FilePut.

Pierwszy rekord lub bajt w pliku znajduje się na pozycji 1, drugi rekord lub bajt na pozycji 2 i tak dalej. Jeśli pominięto RecordNumber, odczytany jest następny rekord lub bajt po ostatniej FileGet funkcji lub FilePut (lub wskazywany przez ostatnią Seek funkcję).

Ważne

Podczas odczytu z plików, nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik o nazwie Form1.vb nie może być plikiem źródłowym programu Visual Basic.

Tryb losowy

W przypadku plików otwartych w Random trybie obowiązują następujące reguły:

  • Jeśli długość odczytywanych danych jest mniejsza niż długość określona w RecordLength klauzuli FileOpen funkcji, FileGet odczytuje kolejne rekordy w granicach długości rekordu. Odstęp między końcem jednego rekordu a początkiem następnego rekordu jest wypełniany istniejącą zawartością buforu plików. Ponieważ ilości danych uzupełniania nie można dokładnie określić, to zazwyczaj dobrze jest, gdy długość rekordu jest zgodna z długością odczytywanych danych.

  • Domyślnie, jeśli zmienna odczytywana do elementu jest ciągiem, odczytuje deskryptor dwu bajtowy zawierający długość ciągu, a następnie odczytuje dane, FileGet które przechodzą do zmiennej. W związku z tym długość rekordu określona przez RecordLength klauzulę FileOpen funkcji musi być co najmniej dwie bajty większe niż rzeczywista długość ciągu. Program Visual Basic 6.0 i jego starsze wersje obsługują ciągi o stałej długości; przy wprowadzaniu do pliku, deskryptor długości nie jest zapisywany. Jeśli chcesz odczytać ciąg bez deskryptora, należy przekazać True go do parametru StringIsFixedLength , a odczytany ciąg powinien być prawidłową długością.

  • Jeśli wczytywana zmienna jest tablicą, można wybrać, czy odczytać deskryptor, by uzyskać informacje o wielkości i wymiarze tablicy. Aby napisać deskryptor, ustaw ArrayIsDynamic parametr na True. Podczas odczytywania tablicy należy dopasować sposób zapisu tablicy. Jeśli został on zapisany z deskryptorem, należy odczytać deskryptor. Jeśli deskryptor nie jest używany, rozmiar i granice tablicy przekazanej do FileGet określenia, co należy odczytać.

    Deskryptor określa rangę tablicy, rozmiar i dolne granice dla każdej rangi. Jego długość wynosi 2 plus 8 razy więcej wymiarów: (2 + 8 * LiczbaDimensionów). Długość rekordu RecordLength określona przez parametr w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do zapisania danych tablicy i deskryptora tablicy. Na przykład następująca deklaracja tablicy wymaga 218 bajtów, jeśli tablica zapisywana jest na dysku.

    Dim MyArray(4, 9) As Integer
    

    218 bajtów zostało rozdzielonych w następujący sposób:

    • 18 bajtów deskryptora: (2 + 8 * 2)

    • 200 bajtów dla danych: (5 * 10 * 4).

  • Jeśli zmienna do odczytu jest dowolnym innym typem zmiennej (a nie ciągiem o zmiennej długości lub obiektem), FileGet odczytuje tylko dane zmiennej. Długość rekordu określona przez klauzulę RecordLength w FileOpen funkcji musi być większa lub równa długości odczytywanych danych.

  • FileGet odczytuje elementy struktur tak, jakby były odczytywane indywidualnie, z tą różnicą, że nie ma dopełniania między elementami. Na dysku tablica dynamiczna w typie zdefiniowanym przez użytkownika (zapisywanym za pomocą FilePutpolecenia ) jest poprzedzona deskryptorem, którego długość jest równa 2 plus 8 razy krotnie liczbie wymiarów: (2 + 8 * NumberOfDimensions). Długość rekordu określona przez klauzulę RecordLength w FileOpen funkcji musi być większa lub równa sumie wszystkich bajtów wymaganych do odczytania poszczególnych elementów. Obejmuje to wszystkie tablice i ich deskryptory. Atrybut VBFixedString można zastosować do pól ciągów w strukturach, aby wskazać rozmiar ciągu podczas zapisywania na dysku.

Tryb binarny

W przypadku plików otwartych w Binary trybie większość Random reguł trybu ma zastosowanie z pewnymi wyjątkami. Następujące reguły dotyczące plików otwartych w Binary trybie różnią się od reguł trybu Random :

  • Klauzula RecordLengthFileOpen w funkcji nie ma wpływu. FileGet odczytuje wszystkie zmienne z dysku w sposób ciągły; oznacza to, że bez dopełnienia między rekordami.

  • W przypadku dowolnej tablicy innej niż tablica w strukturze FileGet odczytuje tylko dane. Deskryptor nie jest odczytywany.

  • FileGet odczytuje ciągi o zmiennej długości, które nie są elementami struktur bez oczekiwania deskryptora o długości dwóch bajtów. Liczba bajtów odczytanych jest równa liczbie znaków znajdujących się już w ciągu.

    Ważne

    Odczytywanie z pliku przy użyciu FileGet funkcji wymaga Read dostępu z FileIOPermissionAccess wyliczenia.

Zobacz też

Dotyczy