New_RFile

Syntax:

New_RFile()

Return Values:

0

=

fehler


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



Supported OS:   Windows