Aracılığıyla paylaş


FileSystem.FilePutObject(Int32, Object, Int64) Yöntem

Tanım

Bir değişkenden gelen veriyi disk dosyasına yazar. Bu My özellik, dosya G/Ç işlemlerinde FilePutObjectdaha iyi üretkenlik ve performans sağlar. Daha fazla bilgi için bkz. 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)

Parametreler

FileNumber
Int32

Gereklidir. Herhangi bir geçerli dosya numarası.

Value
Object

Gereklidir. Diske yazılan veriyi içeren geçerli değişken adı.

RecordNumber
Int64

İsteğe bağlı. Yazmanın başladığı kayıt numarası (Random mod dosyaları) veya bayt numarası (Binary mod dosyaları).

Örnekler

Bu örnekte, bir dosyaya dize yazmak için işlevi kullanılır FilePutObject .

Sub WriteData()
    Dim text As String = "test"
    FileOpen(1, "test.bin", OpenMode.Binary)
    FilePutObject(1, text)
    FileClose(1)
End Sub

Açıklamalar

, FilePutObject vb. gibi LongIntegerShortbaşka bir tür yerine FilePut tür Object geçirilirse derleme zamanında belirsizliklerden kaçınmak yerine işlevi kullanılır.

FilePutObject nesnesini açıklayan tanımlayıcıları yazar ve okur. Türü yazmak Variant istiyorsanız gereklidir FilePutObject . Şüpheniz olduğunda, ikinci parametre için bir nesne kullanıyorsanız, her zaman ve FileGetObjectkullanmanızı FilePutObject öneririz.

FilePutObjectyalnızca ve Binary modunda Random geçerlidir.

ile FilePutObject yazılan veriler genellikle kullanılarak FileGetObjectbir dosyadan okunur.

Bir dosyadaki ilk kayıt veya bayt, 1 konumunda, ikinci kayıt veya bayt, 2 konumunda ve benzeri şekildedir. atlarsanızRecordNumber, FilePutObject son veya işlevden sonraki kaydı veya baytı (veya FilePutObject son FileGetObject işlevin işaret ettiği Seek kayıt veya bayt) yazar.

bağımsız değişkeni, StringIsFixedLength işlevin dizeleri değişken veya sabit uzunluk olarak yorumlayıp yorumlamayacağını denetler. FilePutObject bağımsız değişkeni olduğunda Trueuzunluk tanımlayıcısını yazmaz. ile FilePutObjectkullanıyorsanızStringIsFixedLength = True, ile aynı FileGetObjectişlemi yapmanız ve dizenin beklenen uzunlukta başlatıldığından da emin olmanız gerekir.

Rastgele Modu

Modda Random açılan dosyalar için aşağıdaki kurallar geçerlidir:

  • Yazılan verilerin uzunluğu işlevin yan tümcesinde RecordLength belirtilen uzunluktan FileOpen küçükse, FilePutObject sonraki kayıtları kayıt uzunluğu sınırlarına yazar. Bir kaydın bitişi ve sonraki kaydın başlangıç noktası arasındaki boşluk, dosya arabelleğinin varolan içeriğiyle doldurulur. Doldurma verilerinin miktarı tam olarak belirlenemediğinden, kayıt uzunluğunun yazılan verilerin uzunluğuyla eşleşmesi genellikle iyi bir fikirdir. Yazılan verilerin uzunluğu işlevin yan tümcesinde RecordLength belirtilen uzunluktan FileOpen büyükse, bir özel durum oluşturulur.

  • Yazılan değişken sayısal bir tür içeren bir nesneyse, FilePutObject nesnesini tanımlayan VarType iki bayt yazar ve ardından değişkeni yazar. Örneğin, tamsayı FilePutObject içeren bir nesne yazarken altı bayt yazar: nesneyi (Integer) olarak VarType(3) tanımlayan iki bayt ve verileri içeren dört bayt. İşlevdeki FileOpen parametresi tarafından RecordLength belirtilen kayıt uzunluğu, değişkeni depolamak için gereken gerçek bayt sayısından en az iki bayt büyük olmalıdır.

  • Yazılan değişken bir dize içeren bir nesneyse, FilePutObject nesnesini tanımlayan VarType(8) iki baytlık bir tanımlayıcı, dizenin uzunluğunu belirten iki baytlık bir tanımlayıcı yazar ve sonra dize verilerini yazar. İşlevdeki parametresi tarafından belirtilen kayıt uzunluğu, dizenin RecordLengthFileOpen gerçek uzunluğundan en az dört bayt büyük olmalıdır. Tanımlayıcısı olmayan bir dize koymak istiyorsanız parametresine StringIsFixedLength geçmeniz True ve içinde okuduğunuz dizenin doğru uzunlukta olması gerekir.

  • Yazılan değişken bir diziyse, işlevdeki FileOpen yan tümcesi tarafından RecordLength belirtilen kayıt uzunluğu, dizi verilerini ve dizi tanımlayıcısını yazmak için gereken tüm baytların toplamına eşit veya ondan büyük olmalıdır. Tanımlayıcı, her bir derece için dizi derecesi, boyutu ve alt sınırı belirtir. Uzunluğu, boyut sayısının 2 artı 8 katına eşittir: (2 + 8 * NumberOfDimensions).

İkili Mod

Modda Binary açılan dosyalar için, aşağıdakiler Random dışında tüm mod kuralları geçerlidir:

  • RecordLength İşlevdeki yan tümcesinin FileOpen hiçbir etkisi yoktur. FilePutObject tüm değişkenleri bitişik olarak, yani kayıtlar arasında doldurma olmadan diske yazar.

Şunlara uygulanır

Ayrıca bkz.