Seite 1 von 1

Schnelles auslesen einer Datei

Verfasst: 20.02.2010 16:40
von Pelagio
Hallo,

Ich würde gerne wissen welche Variante beim Auslesen einer Datei (bis zu 10 MB) schneller ist und dies merklich.

Code: Alles auswählen

#File = "Info.txt"

NewList FileDS.s()
*MemoryID.l
FileData.s

;1)
If ReadFile(0, #File)
   While Eof(0) = 0        
      AddElement(FileDS()): FileDS() = ReadString(0)
   Wend
   CloseFile(0)
EndIf

;2)
If ReadFile(0, #File)
   *memoryID = AllocateMemory(Lof(0))  
   ReadData(0, *MemoryID, Lof(0)) 
   CloseFile(0)
EndIf
Das Problem ist, das ich eine Datei habe in der alle 1-3 Minuten Daten geschrieben werden die ich hier und da überprüfen muss. Daher kommt es vor das ich gerade Daten auslese und in der gleichen Zeit Daten in die Datei geschrieben werden sollen. Wenn das Programm welches die Daten hineinschreibt dies nicht kann, da die Datei geöffnet ist, bleibt es mit einer Fehlermeldung stehen, da es leider diesbezüglich nicht abgesichert wurde. Daher, um die Zeit in der die Datei offen ist so kurz wie möglich zu halten, meine Frage.

Re: Schnelles auslesen einer Datei

Verfasst: 20.02.2010 16:44
von RSBasic
Die zweite Variante ist auf jeden Fall schneller, da du sie auf einmal ausliest.
Bei der ersten Variante liest du nur zeilenweise aus und bei einer Datei, die bis zu 10 MB groß ist, kann es schon sehr lange dauern.