FileSystem.FilePutObject(Int32, Object, Int64) 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 FilePutObjecta . További információért lásd FileSystem.
public static void FilePutObject(int FileNumber, object Value, long RecordNumber = -1);
static member FilePutObject : int * obj * int64 -> unit
Public Sub FilePutObject (FileNumber As Integer, Value As Object, Optional RecordNumber As Long = -1)
Paraméterek
- FileNumber
- Int32
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
- Int64
Opcionális. Rekordszám (Random módfájlok) vagy bájtszám (Binary módfájlok), amelyeknél az írás elindul.
Példák
Ez a példa a függvény használatával FilePutObject ír egy sztringet egy fájlba.
Sub WriteData()
Dim text As String = "test"
FileOpen(1, "test.bin", OpenMode.Binary)
FilePutObject(1, text)
FileClose(1)
End Sub
Megjegyzések
A FilePutObject függvény ahelyett, FilePut hogy a fordítási időpontban kétértelműségeket használ, ha egy másik típus helyett a típust Object adjuk át, például Integer: , LongShort, stb.
FilePutObject az objektumot leíró leírókat ír és olvas. Ha ki szeretné írni a típust Variant , FilePutObject szükség van rá. Ha kétségei vannak, ha a második paraméterhez objektumot használ, javasoljuk, hogy mindig használja FilePutObject és FileGetObject.
FilePutObject csak és RandomBinary módban érvényes.
Az adatok írása FilePutObject általában egy fájlból történik a használatával FileGetObject.
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 RecordNumber, FilePutObject a következő rekordot vagy bájtot írja az utolsó FileGetObject vagy FilePutObject függvény után (vagy az utolsó Seek függvény által mutatott rekordot vagy bájtot).
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.
FilePutObjectnem írja meg a hosszleírót, ha az argumentum .True Ha ezt használjaStringIsFixedLength = True, ugyanezt kell tennie a következővel FilePutObjectFileGetObjectis, és azt is meg kell győződnie, 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,FilePutObjecta 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 pontosan, á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 eredményez.Ha a megírt változó egy numerikus típust tartalmazó objektum,
FilePutObjectké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,FilePutObjectamelyek () névenVarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétereFileOpenáltalRecordLengthmegadott 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,
FilePutObjectegy 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étereFileOpenáltalRecordLengthmegadott 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éternekStringIsFixedLengthkell átadniaTrue, és a beolvasott sztringnek a megfelelő hosszúságúnak kell lennie.Ha a megírt változó tömb, akkor a függvény záradéka
FileOpenáltalRecordLengthmegadott 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. 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).
Bináris mód
A módban megnyitott Binary fájlokra az Random összes módszabály érvényes, kivéve:
- A
RecordLengthfüggvény záradékánakFileOpennincs hatása.FilePutObjectAz összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.