New_RFile | |||
Syntax: | |||
New_RFile() | |||
Return Values: | |||
| |||
Description: | |||
Erstellt ein neues RFile-Object | |||
Example: | |||
; Interface für RFile-Object, deklariert in PBOSL.res! Interface IRFile Create(FileName.s, RecordLength.l) ; Erstellt und öffnet FileName mit RecordLength Open(FileName.s) ; Öffnet bereits erstelltes RFile Close() ; Schließt RFile und gibt das Objekt frei RecCount() ; Anzahl Datensätze, null basiert! Eof() ; End of RFile, ergibt #True bei Dateiende Lof() ; Filesize vom RFile RecordLength() ; Länge der Datensätze MaxRecord() ; Max Datensätze (max. filesize: 2 GB) LastUpdate() ; Datum der letzten Änderung im PB-Date-Format CreationDate() ; Erstellungsdatum im PB-Date-Format Version() ; LibVersion: 2.0 = HighByte 2, LowByte 0 (512) VersionStr.s() ; LibVersion als Text: RFile-Version: 2.0 Put(RecordNumber.l, MemoryPointer.l) ; Speicher Daten vom Speicher nach Datensatz, wegen RecordNumber siehe Bemerkungen Get(RecordNumber.l, MemoryPointer.l) ; Lädt Datensatz in den Speicher Append(MemoryPointer.l) ; Hängt neuen Datensatz an Crypt(MemoryPointer.l, PassWord.s) ; Ver- oder Entschlüsselt Datensatz EndInterface ; Exmple 1 ; write data Structure URLS Name.b[40] URL.b[50] EndStructure Global File.IRFile Procedure Append(Name.s, URL.s) Adr.URLS PokeS(@Adr\Name[0], Left(Name, 40)) PokeS(@Adr\URL[0], Left(URL, 50)) File\Append(@Adr) EndProcedure ; create Object File.IRFile = New_RFile() If File If File\Open("adress.dat") = #False; if you run the example again, it's added 2 records File\Create("adress.dat", SizeOf(URLS)); new randomfile EndIf Append("TS-Soft", "http://purebasic.ts-soft-online.de") Append("PureBasic", "http://www.purebasic.com") MessageRequester(File\VersionStr(), "adress.dat with: " + Str(File\RecCount() + 1) + " records created", #MB_ICONINFORMATION) File\Close() Else MessageRequester("ERROR", "can't create RFile-Object", #MB_ICONERROR) EndIf ;Example 2 ; read data ; Structur of data in RFile Structure URLS Name.b[40] URL.b[50] EndStructure Adr.URLS ; create Object File.IRFile = New_RFile() If File If File\Open("adress.dat") Repeat File\Get(#RFile_Next, @Adr); read next record in structured Variable Text$ + PeekS(@Adr\Name[0]) + Chr(10) Text$ + PeekS(@Adr\URL[0]) + Chr(10) + Chr(10) Until File\Eof() Text$ + "Recordcount: " + Str(File\RecCount() + 1) + Chr(10) Text$ + "last modification: " + FormatDate("%yyyy/%mm/%dd", File\LastUpdate()) MessageRequester(File\VersionStr(), Text$, #MB_ICONINFORMATION) Else MessageRequester("ERROR", "can't open adress.dat", #MB_ICONERROR) EndIf File\Close() Else MessageRequester("ERROR", "can't create RFile-Object", #MB_ICONERROR) EndIf | |||
Remarks: | |||
Für RecordNumber können auch folgende Konstanten verwendet werden: #RFile_First #RFile_Previous #RFile_Next #RFile_Last #RFile_Current | |||
|