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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že je řetězec inicializován na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která jde do proměnné. Proto délka záznamu určená klauzulíRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvoubajtů popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt),
FilePut
zapíše pouze data proměnné. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedString
lze použít u řetězcových polí ve strukturách a indikovat tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
FileOpen
ve funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro jakékoli jiné pole než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že je řetězec inicializován na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která jde do proměnné. Proto délka záznamu určená klauzulíRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvoubajtů popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt),
FilePut
zapíše pouze data proměnné. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvou bajtový popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePut
zapíše pouze data proměnné. Délka záznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvou bajtový popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePut
zapíše pouze data proměnné. Délka záznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvou bajtový popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePut
zapíše pouze data proměnné. Délka záznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvou bajtový popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePut
zapíše pouze data proměnné. Délka záznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvou bajtový popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePut
zapíše pouze data proměnné. Délka záznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvou bajtový popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePut
zapíše pouze data proměnné. Délka záznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvou bajtový popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePut
zapíše pouze data proměnné. Délka záznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvou bajtový popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePut
zapíše pouze data proměnné. Délka záznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvou bajtový popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePut
zapíše pouze data proměnné. Délka záznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvoubajtů popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt),
FilePut
zapíše pouze data proměnné. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedString
lze použít u řetězcových polí ve strukturách a indikovat tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
FileOpen
ve funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro jakékoli jiné pole než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že je řetězec inicializován na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která jde do proměnné. Proto délka záznamu určená klauzulíRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvoubajtů popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a pak zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého jste načetli, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud je zapisovaná proměnná jiným typem proměnné (ne řetězec s proměnnou délkou nebo objekt),
FilePut
zapíše pouze data proměnné. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by byly zapsány jednotlivě, s výjimkou odsazení mezi prvky. AtributVBFixedString
lze použít u řetězcových polí ve strukturách a indikovat tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut, se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
FileOpen
ve funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tj. bez odsazení mezi záznamy.Pro jakékoli jiné pole než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnnou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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 True
argument . Pokud používáte StringIsFixedLength
= True
s FilePut
, musíte to samé udělat s FileGet
a musíte se ujistit, že se řetězec inicializuje na očekávanou délku.
Náhodný režim
Pro soubory otevřené v Random
režimu platí následující pravidla:
Pokud je délka zapisovaných dat menší než délka zadaná v
RecordLength
klauzuliFileOpen
funkce,FilePut
zapíše následující záznamy na hranice délky záznamů. Mezera mezi koncem jednoho záznamu a začátkem dalšího záznamu je vyplněna existujícím obsahem vyrovnávací paměti souboru. Protože množství dat odsazení nelze s jistotou určit, je obecně vhodné, aby délka záznamu odpovídala délce zapisovaných dat. Pokud je délka zapisovaných dat větší než délka zadaná vRecordLength
klauzuliFileOpen
funkce, vyvolá se výjimka.Pokud je zapisovaná proměnná řetězec,
FilePut
zapíše dvou bajtový popisovač, který obsahuje délku řetězce, a pak zapíše data, která do proměnné přejdou. Délka záznamu určená klauzulíRecordLength
veFileOpen
funkci proto musí být alespoň o dva bajty větší než skutečná délka řetězce.Pokud je zapisovaná proměnná objektem, který obsahuje číselný typ,
FilePut
zapíše dva bajty identifikujícíVarType
objekt a pak zapíše proměnnou. Například při zápisu objektu, který obsahuje celé číslo,FilePut
zapíše šest bajtů: dva bajty, které identifikují objekt jakoVarType(3)
(Integer
) a čtyři bajty, které obsahují data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o dva bajty větší než skutečný počet bajtů potřebných k uložení proměnné.Pokud je zapisovaná proměnná objektem, který obsahuje řetězec,
FilePut
zapíše dvou bajtový popisovač identifikujícíVarType(8)
objekt, dvoubajtů popisovač označující délku řetězce a poté zapíše řetězcová data. Délka záznamu určená parametremRecordLength
veFileOpen
funkci musí být alespoň o čtyři bajty větší než skutečná délka řetězce. Pokud chcete vložit řetězec bez popisovače, měli byste předatTrue
parametruStringIsFixedLength
a řetězec, do kterého načtete, by měl mít správnou délku.Pokud je proměnná zapisována do pole, můžete zvolit, zda se má zapsat popisovač pro velikost a rozměry pole. Visual Basic verze 6.0 a starší zapíše popisovač souboru pro dynamické pole, ale nikoli pro pole s pevnou velikostí. Ve výchozím nastavení Visual Basic 2005 popisovač nezapíše. Pokud chcete napsat popisovač, nastavte
ArrayIsDynamic
parametr 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áznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna součtu všech bajtů potřebných k zápisu dat pole a popisovače pole. Například následující deklarace pole vyžaduje při zápisu pole na disk 218 bajtů.Dim MyArray(4, 9) As Integer
Pokud zapisovaná proměnná představuje jiný typ proměnné (ne řetězec délky proměnné ani objekt),
FilePut
zapíše pouze data proměnné. Délka záznamuRecordLength
určená klauzulí veFileOpen
funkci musí být větší nebo rovna délce zapisovaných dat.FilePut
zapisuje prvky struktur, jako by každý z nich byl napsán samostatně, s tím rozdílem, že mezi prvky neexistuje žádné odsazení. AtributVBFixedString
lze použít u polí řetězců ve strukturách a označit tak velikost řetězce při zápisu na disk.Poznámka
Pole řetězců, která mají více bajtů, než určuje atribut , se při zápisu
VBFixedString
na disk zkrátí.
Binární režim
U souborů otevřených v Binary
režimu se s některými výjimkami použije většina Random
pravidel režimu. Následující pravidla pro soubory otevřené v Binary
režimu se liší od pravidel pro Random
režim:
Klauzule
RecordLength
veFileOpen
funkci nemá žádný účinek.FilePut
zapisuje všechny proměnné na disk souvisle, tedy bez odsazení mezi záznamy.Pro jakékoli pole jiné než pole ve struktuře zapíše
FilePut
pouze data. Není zapisován žádný popisovač.FilePut
zapíše řetězce s proměnlivou délkou, které nejsou prvky struktur bez dvoubajtů popisovače délky. Počet zapsaných bajtů se rovná počtu znaků v řetězci. Například následující příkazy zapíší 11 bajtů do souboru číslo 1:Dim hellow As String = "Hello World" FilePut(1, hellow)
Zápis do souboru pomocí
FilePut
funkce vyžadujeWrite
pří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