Ga naar inhoud

Delphi - bestanden openen


Aanbevolen berichten

Er zijn in Delphi drie manieren om bestanden te gebruiken: Pascal file types, Windows file handles en streams. Van de eerste manier staat in de help: "These file types are obsolete and are incompatible with Windows file handles", terwijl ergens anders in de help vermeldt staat: "Use of the non-native Pascal file handlers such as FileOpen is not encouraged. These routines map to system routines and return OS file handles, not normal Pascal file variables. These are low-level file access routines. For normal file operations use AssignFile, Rewrite, and Reset instead." Welke van de drie is het beste te gebruiken als file-methode in een Windows-programma? De help spreekt zichzelf hier een beetje tegen. Het makkelijkst zou voor mij zijn, om gewoon de eerste vorm te gebruiken, omdat ik een oud Pascal-programma aan het omzetten ben. Maar misschien is een Windows-variant beter... Wie kan hier wat over zeggen?
Link naar reactie
[quote:be320c1eb0="KVU"]Er zijn in Delphi drie manieren om bestanden te gebruiken: Pascal file types, Windows file handles en streams.[/quote:be320c1eb0] [list:be320c1eb0]1. oude methode (non-native Pascal file handlers). Deze methode wordt mogelijk in de toekomst niet meer ondersteund. Niet gebruiken dus. 2. nieuwe methode (via native Pascal functies, zoals [i:be320c1eb0]FileOpen[/i:be320c1eb0]. Aanbevolen manier. Alle administratie overhead wordt door Pascal opgevangen en verder transparant afgehandeld. 3. FileStream. Uitbreiding op punt 2. 4. Direct via de verschillende Win32 API functies waarvan [i:be320c1eb0]CreateFile[/i:be320c1eb0] de belangrijkste is.[/list:u:be320c1eb0] [quote:be320c1eb0="KVU"] Van de eerste manier staat in de help: "These file types are obsolete and are incompatible with Windows file handles", terwijl ergens anders in de help vermeldt staat: "Use of the non-native Pascal file handlers such as FileOpen is not encouraged. These routines map to system routines and return OS file handles, not normal Pascal file variables. These are low-level file access routines. [/quote:be320c1eb0] Ze willen hiermee zeggen dat je de verschillende functies niet zonder meer blindelings kunt vervangen door de andere variant. Gebruik dus alle bijbehorende functies uit dezelfde reeks voor een bepaalde taak. [quote:be320c1eb0="KVO"] [i:be320c1eb0]For normal file operations use AssignFile, Rewrite, and Reset instead.[/i:be320c1eb0]" [/quote:be320c1eb0] Lijkt me duidelijk. [quote:be320c1eb0="KVO"] Welke van de drie is het beste te gebruiken als file-methode in een Windows-programma? De help spreekt zichzelf hier een beetje tegen. Het makkelijkst zou voor mij zijn, om gewoon de eerste vorm te gebruiken, omdat ik een oud Pascal-programma aan het omzetten ben. Maar misschien is een Windows-variant beter... Wie kan hier wat over zeggen?[/quote:be320c1eb0] punt 2. Verschil in de functies AssignFile, Rewrite, Reset, etc. is minimaal in vergelijking met de oude functies.
Link naar reactie
Volgens mij haal ik een aantal dingen door elkaar. [code:1:796146e27b]var F:file of save_results; results:save_results; begin if FileExists(FName) then begin AssignFile(F,FName); Reset(F); Read(F,results); CloseFile(F); end; ...[/code:1:796146e27b] Hier het stukje code dat ik nu gebruik (en perfect werkt). save_results is hierbij een monsterlijk record type, dat ik letterlijk uit het oude Pascal-programma overgenomen heb. Is dit de juiste Delphi-manier, of zitten hier gedateerde elementen in?
Link naar reactie
[quote:a5d460f857="KVU"]Volgens mij haal ik een aantal dingen door elkaar. [code:1:a5d460f857]var F:file of save_results; results:save_results; begin if FileExists(FName) then begin AssignFile(F,FName); Reset(F); Read(F,results); CloseFile(F); end; ...[/code:1:a5d460f857] Hier het stukje code dat ik nu gebruik (en perfect werkt). save_results is hierbij een monsterlijk record type, dat ik letterlijk uit het oude Pascal-programma overgenomen heb. Is dit de juiste Delphi-manier, of zitten hier gedateerde elementen in?[/quote:a5d460f857] Lijkt mij zo wel goed. Wellicht dat je onder meer op basis van de [url=http://community.borland.com/soapbox/techvoyage/article/1,1795,10280,00.html]Object Pascal Style Guide[/url] nog wat kunt aanpassen. [code:1:a5d460f857] var F: File of TSave_results; results: TSave_results; begin if FileExists(FName) then begin AssignFile(F,FName); Reset(F); try Read(F,results); finally CloseFile(F); end; end; ...[/code:1:a5d460f857]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...