Schnelles auslesen einer Datei

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Pelagio
Beiträge: 424
Registriert: 11.11.2004 17:52
Computerausstattung: AMD Ryzen 5 7600 6-Core Prozessor 3.80 GHz
16,0 GB Arbeitsspeicher
Windows 11 Pro Betriebssystem
Wohnort: Bremen

Schnelles auslesen einer Datei

Beitrag 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.
Ohne Zeit kein Fleiß
Auf neustem Stand zu sein ist eine Kunst die nicht jeder perfektioniert [Win11Pro; PB6.20 LTS]. :allright:
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Schnelles auslesen einer Datei

Beitrag 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.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Antworten