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 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
RecordLengthbelirtilen uzunluktanFileOpenküçükse,FilePutObjectsonraki 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ü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 ardından değişkeni yazar. Örneğin, tamsayıFilePutObjectiçeren bir nesne yazarken altı bayt yazar: nesneyi (Integer) olarakVarType(3)tanımlayan iki bayt ve verileri içeren dört bayt. İşlevdekiFileOpenparametresi tarafındanRecordLengthbelirtilen 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,
FilePutObjectnesnesini tanımlayanVarType(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, 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 parametresineStringIsFixedLengthgeçmenizTrueve içinde okuduğunuz dizenin doğru uzunlukta olması gerekir.Yazılan değişken bir diziyse, işlevdeki
FileOpenyan tümcesi tarafındanRecordLengthbelirtilen 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ümcesininFileOpenhiçbir etkisi yoktur.FilePutObjecttüm değişkenleri bitişik olarak, yani kayıtlar arasında doldurma olmadan diske yazar.