FileSystem.FilePutObject(Int32, Object, Int64) Metódus

Definíció

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 RecordLengthFileOpen megadott hossz, FilePutObject a 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ában RecordLengthFileOpen megadott hossz, kivételt eredményez.

  • Ha a megírt változó egy numerikus típust tartalmazó objektum, FilePutObject két bájtot ír, amely azonosítja az VarType objektumot, 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, FilePutObject amelyek () néven VarType(3)Integerazonosítják az objektumot, és négy bájtot, amelyek tartalmazzák az adatokat. A függvény paramétere FileOpen által RecordLength megadott 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, FilePutObject egy két bájtos leírót ír, amely azonosítja az VarType(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étere FileOpen által RecordLength megadott 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éternek StringIsFixedLength kell á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 által RecordLength megadott 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 RecordLength függvény záradékának FileOpen nincs hatása. FilePutObject Az összes változót egybefüggően, azaz a rekordok közötti kitöltés nélkül írja a lemezre.

A következőre érvényes:

Lásd még