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 FilePutObject
daha 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 Long
Integer
Short
baş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 FileGetObject
kullanmanızı FilePutObject
öneririz.
FilePutObject
yalnızca ve Binary
modunda Random
geçerlidir.
ile FilePutObject
yazılan veriler genellikle kullanılarak FileGetObject
bir 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 True
uzunluk tanımlayıcısını yazmaz. ile FilePutObject
kullanıyorsanızStringIsFixedLength
= True
, ile aynı FileGetObject
iş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 uzunluktanFileOpen
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ümcesindeRecordLength
belirtilen uzunluktanFileOpen
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ımlayanVarType
iki bayt yazar ve ardından değişkeni yazar. Örneğin, tamsayıFilePutObject
içeren bir nesne yazarken altı bayt yazar: nesneyi (Integer
) olarakVarType(3)
tanımlayan iki bayt ve verileri içeren dört bayt. İşlevdekiFileOpen
parametresi tarafındanRecordLength
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ı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, dizeninRecordLength
FileOpen
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 parametresineStringIsFixedLength
geçmenizTrue
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ındanRecordLength
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ümcesininFileOpen
hiçbir etkisi yoktur.FilePutObject
tüm değişkenleri bitişik olarak, yani kayıtlar arasında doldurma olmadan diske yazar.