FileSystem.FilePut Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . F További információ: FileSystem.
Túlterhelések
| Name | Description |
|---|---|
| FilePut(Int32, Int64, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, String, Int64, Boolean) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Object, Object, Object) |
Elavult.
Elavult.
Elavult.
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, ValueType, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, Single, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, Int32, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, Array, Int64, Boolean, Boolean) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, Double, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, Decimal, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, DateTime, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, Char, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, Byte, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, Boolean, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
| FilePut(Int32, Int16, Int64) |
Adatokat ír egy változóból egy lemezfájlba. A |
FilePut(Int32, Int64, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- Int64
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, String, Int64, Boolean)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- String
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
- StringIsFixedLength
- Boolean
Optional. Csak sztring írásakor érvényes. Megadja, hogy a sztringhez két bájt hosszúságú leírót írjon-e a fájlba. Az alapértelmezett érték a False.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Object, Object, Object)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Figyelemfelhívás
FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.
Figyelemfelhívás
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
Figyelemfelhívás
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd FileSystem.
public:
static void FilePut(System::Object ^ FileNumber, System::Object ^ Value, System::Object ^ RecordNumber);
[System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")]
public static void FilePut(object FileNumber, object Value, object RecordNumber);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut(object FileNumber, object Value, object RecordNumber);
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("FileSystem.FilePut has been deprecated. Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types.")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, RecordNumber As Object)
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
Paraméterek
- FileNumber
- Object
Kötelező. Bármely érvényes fájlszám.
- Value
- Object
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Object
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
- Attribútumok
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, ValueType, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd FileSystem.
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")]
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")>]
static member FilePut : int * ValueType * int64 -> unit
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- ValueType
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
- Attribútumok
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, Single, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- Single
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, Int32, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- Int32
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, Array, Int64, Boolean, Boolean)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd FileSystem.
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")]
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")>]
static member FilePut : int * Array * int64 * bool * bool -> unit
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- Array
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
- ArrayIsDynamic
- Boolean
Optional. Csak tömb írásakor alkalmazható. Megadja, hogy a tömböt dinamikusként kell-e kezelni, és hogy a hosszt leíró sztringhez kíván-e tömbleírót írni.
- StringIsFixedLength
- Boolean
Optional. Csak sztring írásakor érvényes. Megadja, hogy a sztringhez két bájt hosszúságú leírót írjon-e a fájlba. Az alapértelmezett érték a False.
- Attribútumok
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, Double, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- Double
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, Decimal, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- Decimal
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, DateTime, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- DateTime
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, Char, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- Char
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, Byte, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- Byte
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, Boolean, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- Boolean
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic
A következőre érvényes:
FilePut(Int32, Int16, Int64)
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
- Forrás:
- FileSystem.vb
Adatokat ír egy változóból egy lemezfájlba. A My funkció jobb hatékonyságot és teljesítményt biztosít a fájl I/O-műveletekben, mint FilePuta . További információért lásd 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)
Paraméterek
- FileNumber
- Int32
Kötelező. Bármely érvényes fájlszám.
- Value
- Int16
Kötelező. Érvényes változónév, amely lemezre írt adatokat tartalmaz.
- RecordNumber
- Int64
Optional. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Kivételek
RecordNumber
< 1 és nem egyenlő -1-nek.
A fájlmód érvénytelen.
Példák
Ez a példa a függvény használatával FilePut ír adatokat egy fájlba. A rendszer öt rekordot ír a fájlba 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
Megjegyzések
FilePut csak és RandomBinary módban érvényes.
Az adatok írása FilePut általában egy fájlból történik a használatával FileGet.
A fájl első rekordja vagy bájtja az 1. pozícióban van, a második rekord vagy bájt a 2. pozícióban van stb. Ha kihagyja RecordNumbera következő rekordot vagy bájtot az utolsó FileGet vagy függvény után, FilePut vagy az utolsó Seek függvény mutat rá, meg lesz írva.
Az StringIsFixedLength argumentum azt határozza meg, hogy a függvény változóként vagy rögzített hosszként értelmezi-e a sztringeket.
FilePutnem írja meg a hosszleírót, ha az argumentum .True Ha ezt StringIsFixedLengthhasználja = TrueFilePut, ugyanezt FileGetkell tennie, és meg kell győződnie arról, hogy a sztring inicializálva van a várt hosszúságra.
Véletlenszerű mód
A módban megnyitott Random fájlokra a következő szabályok vonatkoznak:
Ha a megírt adatok hossza kisebb, mint a függvény záradékában
RecordLengthFileOpenmegadott hossz,FilePuta rekordhossz határvonalán további rekordokat ír. Az egyik rekord vége és a következő rekord kezdete közötti térköz a fájlpuffer meglévő tartalmával van elválasztva. Mivel a kitöltési adatok mennyisége nem határozható meg bizonyossággal, általában jó ötlet, ha a rekord hossza megegyezik a megírt adatok hosszával. Ha a megírt adatok hossza nagyobb, mint a függvény záradékábanRecordLengthFileOpenmegadott hossz, kivételt ad a rendszer.Ha a megírt változó egy sztring,
FilePutírjon egy két bájtos leírót, amely tartalmazza a karakterlánc hosszát, majd megírja a változóba kerülő adatokat. Ezért a függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutkét bájtot ír, amely azonosítja azVarTypeobjektumot, majd megírja a változót. Ha például egy egész számot tartalmazó objektumot ír, hat bájtot ír: két bájtot,FilePutamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább két bájttal nagyobbnak kell lennie, mint a változó tárolásához szükséges bájtok tényleges száma.Ha a megírt változó egy sztringet tartalmazó objektum,
FilePutegy két bájtos leírót ír, amely azonosítja azVarType(8)objektumot, egy két bájtos leírót, amely a sztring hosszát jelzi, majd megírja a sztringadatokat. A függvény paramétereRecordLengtháltalFileOpenmegadott rekordhossznak legalább négy bájttal nagyobbnak kell lennie, mint a sztring tényleges hossza. Ha leíró nélkül szeretne sztringet elhelyezni, akkor a paraméternekTruekell átadniaStringIsFixedLength, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, választhatja, hogy a tömb méretéhez és méretéhez írjon-e leírót. Visual Basic 6.0-s és korábbi verziók a fájlleírót dinamikus tömbhöz írják, rögzített méretű tömbhöz azonban nem. Visual Basic 2005 alapértelmezés szerint nem írja meg a leírót. A leíró írásához állítsa a paramétert a
ArrayIsDynamickövetkezőreTrue: . A tömb írásakor meg kell egyeznie a tömb olvasási módjával; ha a leíróval együtt olvassa, meg kell írnia a leírót. A leíró megadja a tömb rangját, méretét és alsó határát az egyes rangokhoz. Hossza 2 és 8-szorosa a méretek számának: (2 + 8 * NumberOfDimensions). A függvény záradékaRecordLengtháltalFileOpenmegadott rekordhossznak nagyobbnak vagy egyenlőnek kell lennie a tömbadatok és a tömbleíró írásához szükséges bájtok összegével. Az alábbi tömbdeklarációhoz például 218 bájt szükséges, amikor a tömb lemezre van írva.Dim MyArray(4, 9) As IntegerHa a megírt változó bármilyen más típusú változó (nem változó hosszúságú sztring vagy objektum),
FilePutcsak a változó adatait írja. A függvény záradékábanRecordLengthmegadottFileOpenrekordhossznak nagyobbnak vagy egyenlőnek kell lennie az írott adatok hosszánál.FilePutúgy írja a struktúrák elemeit, mintha mindegyik külön-külön lett volna megírva, kivéve, hogy nincs párnázás az elemek között. AzVBFixedStringattribútum a struktúrák sztringmezőire alkalmazható, hogy a lemezre írott sztring méretét jelezze.Note
Az attribútum által
VBFixedStringmegadottnál több bájttal rendelkező sztringmezők csonkulnak a lemezre írásakor,
Bináris mód
A módban megnyitott Binary fájlokra a Random legtöbb módszabály érvényes, néhány kivétellel. A módban megnyitott Binary fájlokra vonatkozó alábbi szabályok eltérnek a mód szabályaitól Random :
A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.A struktúra
FilePuttömbön kívüli tömbjeihez csak az adatokat írja. Nincs leíró megírva.FilePutOlyan változó hosszúságú sztringeket ír, amelyek nem a struktúrák elemei a két bájt hosszúságú leíró nélkül. A megírt bájtok száma megegyezik a sztringben szereplő karakterek számával. A következő utasítások például 11 bájtot írnak az 1-es fájlszámra:Dim hellow As String = "Hello World" FilePut(1, hellow)A függvény használatával
FilePutfájlba történő íráshoz hozzáférésre van szükségWriteaz FileIOPermissionAccess enumerálásból.
Lásd még
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
Az Visual Basic