FileSystem.FilePut Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. F Zie voor meer informatie FileSystem.
Overloads
| Name | Description |
|---|---|
| FilePut(Int32, Int64, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, String, Int64, Boolean) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Object, Object, Object) |
Verouderd.
Verouderd.
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, ValueType, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, Single, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, Int32, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, Array, Int64, Boolean, Boolean) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, Double, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, Decimal, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, DateTime, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, Char, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, Byte, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, Boolean, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
| FilePut(Int32, Int16, Int64) |
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De |
FilePut(Int32, Int64, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, long Value, long RecordNumber = -1);
static member FilePut : int * int64 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Long, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- Int64
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, String, Int64, Boolean)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, string Value, long RecordNumber = -1, bool StringIsFixedLength = false);
static member FilePut : int * string * int64 * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As String, Optional RecordNumber As Long = -1, Optional StringIsFixedLength As Boolean = false)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- String
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
- StringIsFixedLength
- Boolean
Optional. Is alleen van toepassing bij het schrijven van een tekenreeks. Hiermee geeft u op of een tekenreekslengte van twee bytes moet worden geschreven voor de tekenreeks naar het bestand. De standaardwaarde is False.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Object, Object, Object)
Let op
Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types
Let op
This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
[System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")]
public static void FilePut(object FileNumber, object Value, object RecordNumber = -1);
[<System.Obsolete("Use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types")>]
static member FilePut : obj * obj * obj -> unit
[<System.Obsolete("This member has been deprecated. Please use FilePutObject to write Object types, or coerce FileNumber and RecordNumber to Integer for writing non-Object types. http://go.microsoft.com/fwlink/?linkid=14202")>]
static member FilePut : obj * obj * obj -> unit
Public Sub FilePut (FileNumber As Object, Value As Object, Optional RecordNumber As Object = -1)
Parameters
- FileNumber
- Object
Required. Elk geldig bestandsnummer.
- Value
- Object
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Object
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
- Kenmerken
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, ValueType, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, ValueType Value, long RecordNumber = -1);
static member FilePut : int * ValueType * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As ValueType, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- ValueType
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, Single, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, float Value, long RecordNumber = -1);
static member FilePut : int * single * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Single, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- Single
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, Int32, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, int Value, long RecordNumber = -1);
static member FilePut : int * int * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Integer, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- Int32
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, Array, Int64, Boolean, Boolean)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, Array Value, long RecordNumber = -1, bool ArrayIsDynamic = false, bool StringIsFixedLength = false);
static member FilePut : int * Array * int64 * bool * bool -> unit
Public Sub FilePut (FileNumber As Integer, Value As Array, Optional RecordNumber As Long = -1, Optional ArrayIsDynamic As Boolean = false, Optional StringIsFixedLength As Boolean = false)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- Array
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
- ArrayIsDynamic
- Boolean
Optional. Is alleen van toepassing bij het schrijven van een matrix. Hiermee geeft u op of de matrix moet worden behandeld als dynamisch en of een matrixdescriptor moet worden geschreven voor de tekenreeks die de lengte beschrijft.
- StringIsFixedLength
- Boolean
Optional. Is alleen van toepassing bij het schrijven van een tekenreeks. Hiermee geeft u op of een tekenreekslengte van twee bytes moet worden geschreven voor de tekenreeks naar het bestand. De standaardwaarde is False.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, Double, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, double Value, long RecordNumber = -1);
static member FilePut : int * double * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Double, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- Double
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, Decimal, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, decimal Value, long RecordNumber = -1);
static member FilePut : int * decimal * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Decimal, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- Decimal
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, DateTime, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, DateTime Value, long RecordNumber = -1);
static member FilePut : int * DateTime * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As DateTime, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- DateTime
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, Char, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, char Value, long RecordNumber = -1);
static member FilePut : int * char * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Char, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- Char
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, Byte, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, byte Value, long RecordNumber = -1);
static member FilePut : int * byte * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Byte, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- Byte
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, Boolean, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, bool Value, long RecordNumber = -1);
static member FilePut : int * bool * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Boolean, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- Boolean
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic
Van toepassing op
FilePut(Int32, Int16, Int64)
Hiermee schrijft u gegevens van een variabele naar een schijfbestand. De My functie biedt u betere productiviteit en prestaties in bestands-I/O-bewerkingen dan FilePut. Zie FileSystem voor meer informatie.
public static void FilePut(int FileNumber, short Value, long RecordNumber = -1);
static member FilePut : int * int16 * int64 -> unit
Public Sub FilePut (FileNumber As Integer, Value As Short, Optional RecordNumber As Long = -1)
Parameters
- FileNumber
- Int32
Required. Elk geldig bestandsnummer.
- Value
- Int16
Required. Geldige variabelenaam die gegevens bevat die naar schijf zijn geschreven.
- RecordNumber
- Int64
Optional. Recordnummer (Random modusbestanden) of bytenummer (Binary modusbestanden) waarop het schrijven begint.
Uitzonderingen
RecordNumber
< 1 en niet gelijk aan -1.
De bestandsmodus is ongeldig.
Voorbeelden
In dit voorbeeld wordt de FilePut functie gebruikt om gegevens naar een bestand te schrijven. Vijf records van de structuur Person worden naar het bestand geschreven.
Structure Person
Public ID As Integer
Public Name As String
End Structure
Sub WriteData()
Dim PatientRecord As Person
Dim recordNumber As Integer
' Open file for random access.
FileOpen(1, "C:\TESTFILE.txt", OpenMode.Binary)
' Loop 5 times.
For recordNumber = 1 To 5
' Define ID.
PatientRecord.ID = recordNumber
' Create a string.
PatientRecord.Name = "Name " & recordNumber
' Write record to file.
FilePut(1, PatientRecord)
Next recordNumber
FileClose(1)
End Sub
Opmerkingen
FilePut is alleen geldig in Random en in de Binary modus.
Gegevens die zijn geschreven met FilePut , worden meestal gelezen uit een bestand met behulp van FileGet.
De eerste record of byte in een bestand bevindt zich op positie 1, de tweede record of byte bevindt zich op positie 2, enzovoort. Als u weglaat RecordNumber, wordt de volgende record of byte na de laatste FileGet of FilePut functie geschreven of waarnaar de laatste Seek functie wijst.
Het StringIsFixedLength argument bepaalt of de functie tekenreeksen interpreteert als variabele of vaste lengte.
FilePut schrijft de lengtedescriptor niet wanneer het argument is True. Als u StringIsFixedLength = True met FilePut, moet u hetzelfde doen met FileGet, en u moet ervoor zorgen dat de tekenreeks wordt geïnitialiseerd tot de verwachte lengte.
Willekeurige modus
Voor bestanden die in Random de modus worden geopend, zijn de volgende regels van toepassing:
Als de lengte van de gegevens die worden geschreven kleiner is dan de lengte die is opgegeven in de
RecordLengthcomponent van deFileOpenfunctie,FilePutschrijft u volgende records op recordlengtegrenzen. De ruimte tussen het einde van de ene record en het begin van de volgende record wordt opgevuld met de bestaande inhoud van de bestandsbuffer. Omdat de hoeveelheid opvullingsgegevens met enige zekerheid niet kan worden bepaald, is het over het algemeen een goed idee om de recordlengte overeen te laten komen met de lengte van de gegevens die worden geschreven. Als de lengte van de gegevens die worden geschreven groter is dan de lengte die is opgegeven in deRecordLengthcomponent van deFileOpenfunctie, wordt er een uitzondering gegenereerd.Als de variabele die wordt geschreven een tekenreeks is,
FilePutschrijft u een twee-bytedescriptor die de tekenreekslengte bevat en schrijft u vervolgens de gegevens die in de variabele worden opgenomen. Daarom moet de recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie ten minste twee bytes groter zijn dan de werkelijke lengte van de tekenreeks.Als de variabele die wordt geschreven een object is dat een numeriek type bevat,
FilePutschrijft u twee bytes die hetVarTypeobject identificeren en schrijft u vervolgens de variabele. Als u bijvoorbeeld een object schrijft dat een geheel getal bevat,FilePutschrijft u zes bytes: twee bytes waarmee het object wordt geïdentificeerd alsVarType(3)(Integer) en vier bytes die de gegevens bevatten. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste twee bytes groter zijn dan het werkelijke aantal bytes dat is vereist om de variabele op te slaan.Als de variabele die wordt geschreven een object is dat een tekenreeks bevat,
FilePutschrijft u een twee bytedescriptor die hetVarType(8)object identificeert, een twee-bytedescriptor die de lengte van de tekenreeks aangeeft en schrijft vervolgens de tekenreeksgegevens. De recordlengte die is opgegeven door deRecordLengthparameter in deFileOpenfunctie, moet ten minste vier bytes groter zijn dan de werkelijke lengte van de tekenreeks. Als u een tekenreeks zonder descriptor wilt plaatsen, moet u deStringIsFixedLengthparameter doorgevenTrueen moet de tekenreeks die u hebt gelezen, de juiste lengte hebben.Als de variabele die wordt geschreven een matrix is, kunt u kiezen of u een descriptor wilt schrijven voor de grootte en dimensies van de matrix. Visual Basic 6.0 en eerdere versies schrijven de bestandsdescriptor voor een dynamische matrix, maar niet voor een matrix met vaste grootte. Visual Basic 2005 wordt standaard ingesteld op het niet schrijven van de descriptor. Als u de descriptor wilt schrijven, stelt u de
ArrayIsDynamicparameter in opTrue. Bij het schrijven van de matrix moet u overeenkomen met de manier waarop de matrix wordt gelezen; als deze wordt gelezen met de descriptor, moet u de descriptor schrijven. De descriptor geeft de rang van de matrix, de grootte en de ondergrenzen voor elke rang aan. De lengte is gelijk aan 2 plus 8 keer het aantal dimensies: (2 + 8 * NumberOfDimensions). De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de som van alle bytes die nodig zijn om de matrixgegevens en de matrixdescriptor te schrijven. De volgende matrixdeclaratie vereist bijvoorbeeld 218 bytes wanneer de matrix naar de schijf wordt geschreven.Dim MyArray(4, 9) As IntegerAls de variabele die wordt geschreven een ander type variabele is (geen tekenreeks met de lengte van een variabele of een object),
FilePutschrijft u alleen de variabelegegevens. De recordlengte die is opgegeven door deRecordLengthcomponent in deFileOpenfunctie, moet groter zijn dan of gelijk zijn aan de lengte van de gegevens die worden geschreven.FilePutschrijft elementen van structuren alsof ze afzonderlijk zijn geschreven, behalve dat er geen opvulling tussen elementen is. HetVBFixedStringkenmerk kan worden toegepast op tekenreeksvelden in de structuren om de grootte van de tekenreeks aan te geven wanneer deze naar de schijf wordt geschreven.Note
Tekenreeksvelden met meer bytes dan opgegeven door het
VBFixedStringkenmerk worden afgekapt wanneer ze naar schijf worden geschreven.
Binaire modus
Voor bestanden die in Binary de modus worden geopend, zijn de Random meeste modusregels van toepassing, met enkele uitzonderingen. De volgende regels voor bestanden die in Binary de modus worden geopend, verschillen van de regels voor Random de modus:
De
RecordLengthcomponent in deFileOpenfunctie heeft geen effect.FilePutschrijft alle variabelen naar de schijf aaneengesloten, dat wil gezegd, zonder opvulling tussen records.Voor een andere matrix dan een matrix in een structuur
FilePutschrijft u alleen de gegevens. Er is geen descriptor geschreven.FilePutschrijft tekenreeksen met een variabele lengte die geen elementen van structuren zijn zonder de beschrijving van de lengte van twee bytes. Het aantal geschreven bytes is gelijk aan het aantal tekens in de tekenreeks. De volgende instructies schrijven bijvoorbeeld 11 bytes naar bestandnummer 1:Dim hellow As String = "Hello World" FilePut(1, hellow)Schrijven naar een bestand met behulp van de
FilePutfunctie vereistWritetoegang vanuit de FileIOPermissionAccess opsomming.
Zie ook
- FileGet
- FileOpen(Int32, String, OpenMode, OpenAccess, OpenShare, Int32)
- Seek
- FileGetObject(Int32, Object, Int64)
- VBFixedStringAttribute
- Len(UInt16)
- ArgumentException
- IOException
- Schrift naar bestanden in Visual Basic