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í.
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. F Další informace najdete v tématu FileSystem.
Přetížení
| FilePut(Int32, Int64, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, String, Int64, Boolean) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Object, Object, Object) |
Zastaralé.
Zastaralé.
Zastaralé.
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, ValueType, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, Single, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, Int32, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, Array, Int64, Boolean, Boolean) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, Double, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, Decimal, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, DateTime, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, Char, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, Byte, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, Boolean, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
| FilePut(Int32, Int16, Int64) |
Zapisuje data z proměnné na soubor na disku. Tato |
FilePut(Int32, Int64, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, long Value, long RecordNumber = -1);
static member FilePut : int * int64 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Long, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Int64
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet funkcí nebo FilePut odkazem na poslední Seek funkci.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že je řetězec inicializován na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která jde do proměnné. Proto délka záznamu určená klauzulíRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt),
FilePutzapíše pouze data proměnné. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci 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 a indikovat tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthFileOpenve funkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro jakékoli jiné pole než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, String, Int64, Boolean)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FilePut : int * string * int64 * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- String
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
- StringIsFixedLength
- Boolean
Nepovinný parametr. Platí pouze při zápisu řetězce. Určuje, zda se má do souboru zapisovat dvoubajtů popisovač délky řetězce. Výchozí formát je False.
Výjimky
RecordNumber
< 1 a ne rovno -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Pět záznamů struktury Person je zapsáno do souboru.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet funkcí nebo FilePut odkazem na poslední Seek funkci.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že je řetězec inicializován na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která jde do proměnné. Proto délka záznamu určená klauzulíRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt),
FilePutzapíše pouze data proměnné. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Object, Object, Object)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Upozornění
This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202
Upozornění
FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.
Upozornění
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public:
static void FilePut(System::Object ^ FileNumber, System::Object ^ Value, System::Object ^ RecordNumber);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut (object FileNumber, object Value, object RecordNumber);
[System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")]
public static void FilePut (object FileNumber, object Value, object RecordNumber);
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut (object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut (object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, RecordNumber As Object)
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
Parametry
- FileNumber
- Object
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Object
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Object
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
- Atributy
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvou bajtový popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePutzapíše pouze data proměnné. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, ValueType, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, ValueType Value, long RecordNumber = -1);
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- ValueType
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvou bajtový popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePutzapíše pouze data proměnné. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, Single, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, float Value, long RecordNumber = -1);
static member FilePut : int * single * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Single, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Single
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvou bajtový popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePutzapíše pouze data proměnné. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, Int32, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, int Value, long RecordNumber = -1);
static member FilePut : int * int * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Integer, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Int32
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvou bajtový popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePutzapíše pouze data proměnné. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, Array, Int64, Boolean, Boolean)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Array
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
- ArrayIsDynamic
- Boolean
Nepovinný parametr. Platí pouze při zápisu pole. Určuje, zda má být pole považováno za dynamické a zda se má zapsat popisovač pole pro řetězec, který popisuje délku.
- StringIsFixedLength
- Boolean
Nepovinný parametr. Platí pouze při zápisu řetězce. Určuje, jestli se má do souboru zapsat dvou bajtový popisovač délky řetězce. Výchozí formát je False.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvou bajtový popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePutzapíše pouze data proměnné. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, Double, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, double Value, long RecordNumber = -1);
static member FilePut : int * double * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Double, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Double
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvou bajtový popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePutzapíše pouze data proměnné. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, Decimal, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, decimal Value, long RecordNumber = -1);
static member FilePut : int * decimal * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Decimal, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Decimal
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvou bajtový popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePutzapíše pouze data proměnné. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, DateTime, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, DateTime Value, long RecordNumber = -1);
static member FilePut : int * DateTime * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As DateTime, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- DateTime
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvou bajtový popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePutzapíše pouze data proměnné. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, Char, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, char Value, long RecordNumber = -1);
static member FilePut : int * char * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Char, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Char
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvou bajtový popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePutzapíše pouze data proměnné. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, Byte, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, byte Value, long RecordNumber = -1);
static member FilePut : int * byte * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Byte, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Byte
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a nerovná se -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Do souboru se zapíše pět záznamů struktury Person .
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt),
FilePutzapíše pouze data proměnné. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci 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 a indikovat tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthFileOpenve funkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro jakékoli jiné pole než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, Boolean, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích souborů než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, bool Value, long RecordNumber = -1);
static member FilePut : int * bool * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Boolean, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Boolean
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a ne rovno -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Pět záznamů struktury Person je zapsáno do souboru.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet funkcí nebo FilePut odkazem na poslední Seek funkci.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že je řetězec inicializován na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která jde do proměnné. Proto délka záznamu určená klauzulíRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvoubajtů popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8násobek počtu dimenzí: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt),
FilePutzapíše pouze data proměnné. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci 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 a indikovat tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthFileOpenve funkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro jakékoli jiné pole než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic
Platí pro
FilePut(Int32, Int16, Int64)
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
- Zdroj:
- FileSystem.vb
Zapisuje data z proměnné na soubor na disku. Tato My funkce poskytuje vyšší produktivitu a výkon při vstupně-výstupních operacích se soubory než FilePut. Další informace naleznete v tématu FileSystem.
public static void FilePut (int FileNumber, short Value, long RecordNumber = -1);
static member FilePut : int * int16 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Short, Optional RecordNumber As Long = -1)
Parametry
- FileNumber
- Int32
Povinná hodnota. Libovolné platné číslo souboru
- Value
- Int16
Povinná hodnota. Platný název proměnné, která obsahuje data zapsaná na disk.
- RecordNumber
- Int64
Nepovinný parametr. Číslo záznamu (Random soubory režimu) nebo číslo bajtu (Binary soubory režimu), od kterého začíná zápis.
Výjimky
RecordNumber
< 1 a ne rovno -1.
Režim souboru je neplatný.
Příklady
Tento příklad používá FilePut funkci k zápisu dat do souboru. Pět záznamů struktury Person je zapsáno do souboru.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Poznámky
FilePut je platný pouze v Random režimu a Binary .
Data zapsaná pomocí FilePut se obvykle čtou ze souboru pomocí FileGet.
První záznam nebo bajt v souboru se nachází na pozici 1, druhý záznam nebo bajt na pozici 2 atd. Pokud vynecháte RecordNumber, zapíše se další záznam nebo bajt za poslední FileGet nebo FilePut funkcí nebo odkazem poslední Seek funkce.
Argument StringIsFixedLength určuje, jestli funkce interpretuje řetězce jako proměnné nebo jako pevnou délku.
FilePut nezapíše popisovač délky, pokud je Trueargument . Pokud používáte StringIsFixedLength = True s FilePut, musíte to samé udělat s FileGeta musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLengthklauzuliFileOpenfunkce,FilePutzapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLengthklauzuliFileOpenfunkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePutzapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLengthveFileOpenfunkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
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, které obsahují data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePutzapíše dvou bajtový popisovač identifikujícíVarType(8)objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLengthveFileOpenfunkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrueparametruStringIsFixedLengtha řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamicparametr naTrue. Při zápisu pole je třeba dodržet způsob, jakým bude pole čteno; pokud bude čteno s popisovačem, je třeba zapsat popisovač. Popisovač určuje pořadí pole, velikost a dolní meze každého pořadí. Jeho délka se rovná 2 plus 8 násobku počtu rozměrů: (2 + 8 * NumberOfDimensions). Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As IntegerPokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePutzapíše pouze data proměnné. Délka záznamuRecordLengthurčená klauzulí veFileOpenfunkci musí být větší nebo rovna délce zapisovaných dat.FilePutzapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedStringlze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedStringna disk zkrátí.
Binární režim
U souborů otevřených v Binary režimu se s některými výjimkami použije většina Random pravidel režimu. Následující pravidla pro soubory otevřené v Binary režimu se liší od pravidel pro Random režim:
Klauzule
RecordLengthveFileOpenfunkci nemá žádný účinek.FilePutzapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePutpouze data. Není zapisován žádný popisovač.FilePutzapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Zápis do souboru pomocí
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
- Zápis do souborů v jazyce Visual Basic