Sdílet prostřednictvím


FileSystem.FilePut Metoda

Definice

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. F Další informace najdete v tématu FileSystem.

Přetížení

FilePut(Int32, Int64, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, String, Int64, Boolean)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Object, Object, Object)
Zastaralé.
Zastaralé.
Zastaralé.

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, ValueType, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, Single, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, Int32, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, Array, Int64, Boolean, Boolean)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, Double, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, Decimal, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, DateTime, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, Char, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, Byte, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, Boolean, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, Int16, Int64)

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

FilePut(Int32, Int64, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
Int64

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet funkcí nebo FilePut odkazem na poslední Seek funkci.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že je řetězec inicializován na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která jde do proměnné. Proto délka záznamu určená klauzulí RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvoubajtů popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého jste načetli, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt), FilePut zapíše pouze data proměnné. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. Atribut VBFixedString lze použít u řetězcových polí ve strukturách a indikovat tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLengthFileOpen ve funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.

  • Pro jakékoli jiné pole než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, String, Int64, Boolean)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
String

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

StringIsFixedLength
Boolean

Nepovinný parametr. Platí pouze při zápisu řetězce. Určuje, zda se má do souboru zapisovat dvoubajtů popisovač délky řetězce. Výchozí formát je False.

Výjimky

RecordNumber< 1 a ne rovno -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Pět záznamů struktury Person je zapsáno do souboru.

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet funkcí nebo FilePut odkazem na poslední Seek funkci.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že je řetězec inicializován na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která jde do proměnné. Proto délka záznamu určená klauzulí RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvoubajtů popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého jste načetli, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt), FilePut zapíše pouze data proměnné. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Object, Object, Object)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Upozornění

This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202

Upozornění

FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.

Upozornění

Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

public:
 static void FilePut(System::Object ^ FileNumber, System::Object ^ Value, System::Object ^ RecordNumber);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut (object FileNumber, object Value, object RecordNumber);
[System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")]
public static void FilePut (object FileNumber, object Value, object RecordNumber);
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut (object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut (object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, RecordNumber As Object)
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)

Parametry

FileNumber
Object

Povinná hodnota. Libovolné platné číslo souboru

Value
Object

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Object

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Atributy

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvou bajtový popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého načtete, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt), FilePut zapíše pouze data proměnné. Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, ValueType, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
ValueType

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná vRecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvou bajtový popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého načtete, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt), FilePut zapíše pouze data proměnné. Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, Single, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
Single

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvou bajtový popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého načtete, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt), FilePut zapíše pouze data proměnné. Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, Int32, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
Int32

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvou bajtový popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého načtete, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt), FilePut zapíše pouze data proměnné. Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, Array, Int64, Boolean, Boolean)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
Array

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

ArrayIsDynamic
Boolean

Nepovinný parametr. Platí pouze při zápisu pole. Určuje, zda má být pole považováno za dynamické a zda se má zapsat popisovač pole pro řetězec, který popisuje délku.

StringIsFixedLength
Boolean

Nepovinný parametr. Platí pouze při zápisu řetězce. Určuje, jestli se má do souboru zapsat dvou bajtový popisovač délky řetězce. Výchozí formát je False.

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvou bajtový popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého načtete, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt), FilePut zapíše pouze data proměnné. Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, Double, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
Double

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvou bajtový popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého načtete, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt), FilePut zapíše pouze data proměnné. Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, Decimal, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
Decimal

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvou bajtový popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého načtete, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt), FilePut zapíše pouze data proměnné. Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, DateTime, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
DateTime

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvou bajtový popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého načtete, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt), FilePut zapíše pouze data proměnné. Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, Char, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
Char

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvou bajtový popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého načtete, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt), FilePut zapíše pouze data proměnné. Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, Byte, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
Byte

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a nerovná se -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvoubajtů popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého jste načetli, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt), FilePut zapíše pouze data proměnné. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. Atribut VBFixedString lze použít u řetězcových polí ve strukturách a indikovat tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLengthFileOpen ve funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.

  • Pro jakékoli jiné pole než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, Boolean, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
Boolean

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a ne rovno -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Pět záznamů struktury Person je zapsáno do souboru.

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet funkcí nebo FilePut odkazem na poslední Seek funkci.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že je řetězec inicializován na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která jde do proměnné. Proto délka záznamu určená klauzulí RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvoubajtů popisovač identifikující VarType(8) objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého jste načetli, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt), FilePut zapíše pouze data proměnné. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. Atribut VBFixedString lze použít u řetězcových polí ve strukturách a indikovat tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLengthFileOpen ve funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.

  • Pro jakékoli jiné pole než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro

FilePut(Int32, Int16, Int64)

Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb
Zdroj:
FileSystem.vb

Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.

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

Parametry

FileNumber
Int32

Povinná hodnota. Libovolné platné číslo souboru

Value
Int16

Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.

RecordNumber
Int64

Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.

Výjimky

RecordNumber< 1 a ne rovno -1.

Režim souboru je neplatný.

Příklady

Tento příklad používá FilePut funkci k zápisu dat do souboru. Pět záznamů struktury Person je zapsáno do souboru.

Structure Person
    Public ID As Integer
    Public Name As String
End Structure

Sub WriteData()
    Dim PatientRecord As Person
    Dim recordNumber As Integer
    '    Open file for random access.
    FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
    ' Loop 5 times.
    For recordNumber = 1 To 5
        ' Define ID.
        PatientRecord.ID = recordNumber
        ' Create a string.
        PatientRecord.Name = "Name " & recordNumber
        ' Write record to file.
        FilePut(1, PatientRecord)
    Next recordNumber
    FileClose(1)
End Sub

Poznámky

FilePut je platný pouze v Random režimu a Binary .

Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.

První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.

Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku. FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.

Náhodný režim

Pro soubory otevřené v Random režimu platí následující pravidla:

  • Pokud je délka zapisovaných dat menší než délka zadaná v RecordLength klauzuli FileOpen funkce, FilePut zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná v RecordLength klauzuli FileOpen funkce, vyvolá se výjimka.

  • Pokud je zapisovaná proměnná řetězec, FilePut zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulí RecordLength ve FileOpen funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.

  • Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ, FilePut zapíše dva bajty identifikující VarType objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo, FilePut zapíše šest bajtů: dva bajty, které identifikují objekt jako VarType(3) (Integer) a čtyři bajty, které obsahují data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.

  • Pokud je zapisovaná proměnná objektem, který obsahuje řetězec, FilePut zapíše dvou bajtový popisovač identifikujícíVarType(8) objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametrem RecordLength ve FileOpen funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předat True parametru StringIsFixedLength a řetězec, do kterého načtete, by měl mít správnou délku.

  • Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte ArrayIsDynamic parametr na True. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.

    Dim MyArray(4, 9) As Integer
    
  • Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt), FilePut zapíše pouze data proměnné. Délka záznamu RecordLength určená klauzulí ve FileOpen funkci musí být větší nebo rovna délce zapisovaných dat.

  • FilePut zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. Atribut VBFixedString lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.

    Poznámka

    Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu VBFixedString na disk zkrátí.

Binární režim

U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:

  • Klauzule RecordLength ve FileOpen funkci nemá žádný účinek. FilePut zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.

  • Pro jakékoli pole jiné než pole ve struktuře zapíše FilePut pouze data. Není zapisován žádný popisovač.

  • FilePut zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:

    Dim hellow As String = "Hello World"
    FilePut(1, hellow)
    
  • Zápis do souboru pomocí FilePut funkce vyžaduje Write přístup z výčtu FileIOPermissionAccess .

Viz také

Platí pro