FileSystem.FilePut Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace naleznete v tématu FileSystem.
Přetížení
| Name | Description |
|---|---|
| FilePut(Int32, Int64, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, String, Int64, Boolean) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Object, Object, Object) |
Zastaralé.
Zastaralé.
Zastaralé.
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, ValueType, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, Single, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, Int32, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, Array, Int64, Boolean, Boolean) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, Double, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, Decimal, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, DateTime, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, Char, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, Byte, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, Boolean, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
| FilePut(Int32, Int16, Int64) |
Zapíše data z proměnné do souboru disku. Tato |
FilePut(Int32, Int64, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- Int64
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, String, Int64, Boolean)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- String
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
- StringIsFixedLength
- Boolean
Optional. Platí pouze při zápisu řetězce. Určuje, jestli se má napsat dvoubajtů popisovač délky řetězce pro řetězec do souboru. Výchozí hodnota je False.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Object, Object, Object)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
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í
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í
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu FileSystem.
public:
static void FilePut(System::Object ^ FileNumber, System::Object ^ Value, System::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("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("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("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("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("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
Required. Libovolné platné číslo souboru.
- Value
- Object
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Object
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
- Atributy
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, ValueType, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu FileSystem.
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")]
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")>]
static member FilePut : int * ValueType * int64 -> unit
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Required. Libovolné platné číslo souboru.
- Value
- ValueType
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých 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á funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, Single, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- Single
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, Int32, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- Int32
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, Array, Int64, Boolean, Boolean)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu FileSystem.
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")]
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")>]
static member FilePut : int * Array * int64 * bool * bool -> unit
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
Required. Libovolné platné číslo souboru.
- Value
- Array
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
- ArrayIsDynamic
- Boolean
Optional. 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
Optional. Platí pouze při zápisu řetězce. Určuje, jestli se má napsat dvoubajtů popisovač délky řetězce pro řetězec do souboru. Výchozí hodnota je False.
- Atributy
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, Double, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- Double
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, Decimal, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- Decimal
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, DateTime, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- DateTime
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, Char, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- Char
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, Byte, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- Byte
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, Boolean, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- Boolean
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic
Platí pro
FilePut(Int32, Int16, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapíše data z proměnné do souboru disku. Tato My funkce poskytuje lepší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace najdete na webu 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
Required. Libovolné platné číslo souboru.
- Value
- Int16
Required. Platný název proměnné, který obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Optional. Číslo záznamu (Random soubory v režimu) nebo bajtové číslo (Binary soubory režimu), na kterých začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá funkci k zápisu FilePut dat do souboru. Do souboru je zapsáno 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 v režimu.
Data zapsaná FilePut pomocí souboru se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru je na pozici 1, druhý záznam nebo bajt je na pozici 2 atd. Pokud vynecháte RecordNumber, další záznam nebo bajt za poslední FileGetFilePut nebo funkcí nebo odkazuje na poslední Seek funkci, je zapsán.
Argument StringIsFixedLength určuje, zda funkce interpretuje řetězce jako proměnnou nebo pevnou délku.
FilePut nezapisuje popisovač délky, pokud je Trueargument . Pokud používáte s StringIsFixedLength = TrueFilePut , musíte provést totéž 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
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následné záznamy o hranicích 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. Vzhledem k tomu, že množství odsazení dat nelze určit s jistotou, 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á vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvoubajtů popisovač obsahující délku řetězce a zapíše data, která do proměnné přejdou. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci proto musí být alespoň dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objekt obsahující číselný typ,
FilePutzapíše dva bajty identifikujícíVarTypeobjekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePutzapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)(Integer) a čtyři bajty obsahující data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objekt, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a zapíše řetězcová data. Délka záznamuRecordLengthzadaná parametrem veFileOpenfunkci musí být alespoň čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měliTrueStringIsFixedLengthbyste předat parametru a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je zapisovaná proměnná matice, máte na výběr, jestli chcete napsat popisovač pro velikost a rozměry pole. Visual Basic 6.0 a starších verzích zapisuje popisovač souboru pro dynamické pole, ale ne pro pole s pevnou velikostí. Visual Basic 2005 se ve výchozím nastavení nezapisuje popisovač. Chcete-li napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při psaní pole musíte odpovídat způsobu, jakým bude pole přečteno; pokud se bude číst s popisovačem, musíte napsat popisovač. Popisovač určuje pořadí pole, velikost a dolní mez pro každé pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů požadovaný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 IntegerPokud je zapisovaná proměnná jiným typem proměnné (nikoli řetězcem s délkou proměnné nebo objektem),
FilePutzapíše pouze data proměnných. Délka záznamuRecordLengthzadaná klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedStringlze použít u řetězcových polí ve strukturách, které označují velikost řetězce při zápisu na disk.Note
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu platí většina Random pravidel režimu s některými výjimkami. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel režimu Random :
Klauzule
RecordLengthveFileOpenfunkci nemá žádný vliv.FilePutzapíše všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro libovolnou jinou matici než pole ve struktuře
FilePutzapisuje pouze data. Žádný popisovač není napsán.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez popisovače dvoubajtů. Počet bajtů zapsaných se rovná počtu znaků v řetězci. Například následující příkazy zapisují 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
FilePutfunkce vyžadujeWritepřístup z výčtu FileIOPermissionAccess .
Viz také
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Writing to Files in Visual Basic