FileSystem.FilePutObject(Int32, Object, Int64) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir değişkenden disk dosyasına veri yazar. Bu My özellik, dosya G/Ç işlemlerinde FilePutObjectdaha iyi üretkenlik ve performans sağlar. Daha fazla bilgi için bkz. FileSystem.
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")]
public static void FilePutObject(int FileNumber, object Value, long RecordNumber = -1);
public static void FilePutObject(int FileNumber, object Value, long RecordNumber = -1);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The origin object type could not be statically analyzed and may be trimmed")>]
static member FilePutObject : int * obj * int64 -> unit
static member FilePutObject : int * obj * int64 -> unit
Public Sub FilePutObject (FileNumber As Integer, Value As Object, Optional RecordNumber As Long = -1)
Parametreler
- FileNumber
- Int32
Gerekli. Geçerli herhangi bir dosya numarası.
- Value
- Object
Gerekli. Diske yazılan verileri içeren geçerli değişken adı.
- RecordNumber
- Int64
Optional. Yazma işleminin başladığı kayıt numarası (Random mod dosyaları) veya bayt numarası (Binary mod dosyaları).
- Öznitelikler
Örnekler
Bu örnek, FilePutObject bir dosyaya dize yazmak için işlevini kullanır.
Sub WriteData()
Dim text As String = "test"
FileOpen(1, "test.bin", OpenMode.Binary)
FilePutObject(1, text)
FileClose(1)
End Sub
Açıklamalar
, FilePutObject , FilePutve benzeri gibi ObjectIntegerbaşka bir tür yerine Long tür Short geçirilirse derleme zamanında belirsizliği önlemek için yerine işlevi kullanılır.
FilePutObject nesnesini tanımlayan tanımlayıcıları yazar ve okur. Türü yazmak Variant istiyorsanız gereklidir FilePutObject . Şüpheniz varsa, ikinci parametre için bir nesne kullanıyorsanız, her zaman ve FilePutObjectkullanmanızı FileGetObject öneririz.
FilePutObjectyalnızca ve Random modunda Binary 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 konumundadır, vb. atlarsanızRecordNumber, FilePutObject son veya işlevden sonraki kaydı veya baytı (veya FileGetObject son FilePutObject işlevin işaret ettiği Seek kayıt veya bayt) yazar.
Bağımsız değişken, StringIsFixedLength işlevin dizeleri değişken veya sabit uzunluk olarak yorumlayıp yorumlamayacağını denetler.
FilePutObject bağımsız değişkeni Trueolduğunda uzunluk tanımlayıcısını yazmaz. ile StringIsFixedLengthkullanıyorsanız = TrueFilePutObject, ile FileGetObjectaynı işlemi yapmanız ve dizenin beklenen uzunlukta başlatıldığından da emin olmanız gerekir.
Rastgele Mod
Modda Random açılan dosyalar için aşağıdaki kurallar geçerlidir:
Yazılan verilerin uzunluğu işlevin yan tümcesinde
RecordLengthbelirtilen uzunluktanFileOpenküçükse,FilePutObjectsonraki kayıtları kayıt uzunluğu sınırlarına yazar. Bir kaydın sonu ile sonraki kaydın başlangıcı arasındaki boşluk, dosya arabelleğinin mevcut içeriğiyle doldurulur. Doldurma verilerinin miktarı kesin 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ümcesindeRecordLengthbelirtilen uzunluktanFileOpenbüyükse bir özel durum oluşturulur.Yazılan değişken sayısal bir tür içeren bir nesneyse,
FilePutObjectnesnesini tanımlayanVarTypeiki bayt yazar ve sonra değişkeni yazar. Örneğin, tamsayıFilePutObjectiçeren bir nesne yazarken altı bayt yazar: nesneyi (VarType(3)) olarakIntegertanımlayan iki bayt ve verileri içeren dört bayt. İşlevdekiRecordLengthparametresi tarafındanFileOpenbelirtilen kayıt uzunluğu, değişkeni depolamak için gereken gerçek bayt sayısından en az iki bayt daha büyük olmalıdır.Yazılan değişken dize içeren bir nesneyse,
FilePutObjectnesnesini tanımlayanVarType(8)iki baytlık bir tanımlayıcı, dizenin uzunluğunu belirten iki baytlık bir tanımlayıcı yazar ve ardından dize verilerini yazar. İşlevdeki parametresi tarafından belirtilen kayıt uzunluğu, dizeninRecordLengthFileOpengerçek uzunluğundan en az dört bayt büyük olmalıdır. Tanımlayıcısı olmayan bir dize koymak istiyorsanız parametresineTruegeçmenizStringIsFixedLengthgerekir ve okuduğunuz dize doğru uzunlukta olmalıdır.Yazılan değişken bir diziyse, işlevdeki
RecordLengthyan tümcesi tarafındanFileOpenbelirtilen kayıt uzunluğu, dizi verilerini ve dizi tanımlayıcısını yazmak için gereken tüm baytların toplamından büyük veya buna eşit olmalıdır. Tanımlayıcı, dizinin derecesini, boyutunu ve her derece için alt sınırları 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ı uygulanır:
-
RecordLengthİşlevdeki yan tümcesininFileOpenhiçbir etkisi yoktur.FilePutObjecttüm değişkenleri bitişik olarak, yani kayıtlar arasında doldurma olmadan diske yazar.