[Delphi] Temp-files opslaan

Pagina: 1
Acties:

  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
Ik heb een programmaatje geschreven die gebruik maakt van een .ini bestandje.
Het probleem is, dat het programma vanaf CD gaat draaien, en dus ergens op de harde schrijf zijn bestand kwijt moet.

Welke directory zou ik kunnen gebruiken om dit bestandje op te slaan?
De voorwaarden zijn, dat die directory voor elke windowsversie (95 t/m XP) hetzelfde is, of dynamisch vanuit delphi is op te vragen, én dat élke gebruiker schrijfrecht heeft in die directory.

  • MaxxRide
  • Registratie: April 2000
  • Laatst online: 09-01 10:13

MaxxRide

Surf's up

Je zou de gebruiker een werkdir aan kunnen laten maken. Deze kun je vervolgens creeren vanuit je proggie.

If you are not wiping out you are nog pushing enough...


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

check eens in je enviroment variables. Daar zijn altijd de temp en tmp variabelen beschikbaar. Die waardes kan je uitlezen en gebruiken als temp map (precies waar ze voor bedoeld zijn....)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:12

Creepy

Tactical Espionage Splatterer

En anders is er ook nog een mooie windows API call om de temp dir op te vragen..

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

GetTempPath

We adore chaos because we like to restore order - M.C. Escher


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:49
Gaat het echt om een tijdelijk bestand? Dan kun je 'm inderdaad op een lokatie bedoelt voor tijdelijke bestanden neerzetten.

Als het echter een configuratiebestand is, kan ik me voorstellen dat het bestand moet blijven bestaan (bestanden in een tijdelijke directory kunnen met een zekere regelmaat verwijderd worden). Je kunt dan je gegevens waarschijnlijk het beste kwijt in de Windows registry, die hier voor bedoeld is.

Als je per se een bestand wilt blijven gebruiken, kun je overwegen om een programmadirectory aan te maken (C:\Program Files\Mijn App) met daarin je bestand. Desnoods kun je 'm gewoon in de Windows directory neerzetten (zoals php bijvoorbeeld doet) maar dat is naar mijn mening erg lomp (en biedt ook weinig voordelen, behalve dat je de directory niet hoeft aan te maken).

De directories van Windows, Program Files en tijdelijke bestanden zijn te vinden met API calls, zodat je die directories niet hoeft te hardcoden. Zie hiervoor de API documentatie.

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:58
Waarom schrijf je uw instellingen/configuratie-waarden (want ik vermoed toch dat je daarvoor dat ini bestand gebruikt) niet weg in het register?

edit:
Blijkbaar heeft Soultaker dat ook al gezegd
:+

https://fgheysels.github.io/


  • mjax
  • Registratie: September 2000
  • Laatst online: 28-07 20:20
Volgens mij, als je TIniFile.Create('myfile.ini') gebruikt (dus zonder volledig pad), worden deze altijd automatisch in de Windows directory opgeslagen. Dan is je probleem toch opgelost?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:49
mjax schreef op 26 september 2002 @ 20:25:
Volgens mij, als je TIniFile.Create('myfile.ini') gebruikt (dus zonder volledig pad), worden deze altijd automatisch in de Windows directory opgeslagen. Dan is je probleem toch opgelost?
Volgens mij zijn INI files (en de daarbij behorende API) al sinds de introductie van Windows 95 acht jaar geleden 'deprecated'. Als je niet vast zit aan een of ander bestandsformaat (en de routines om dat bestand te lezen en schrijven) gebruik dan gewoon de registry.

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Niet meer sinds XP/2000 :). Daar is het weer de bedoeling het in bestanden op te slaan in de 'Documents and Settings'.

We adore chaos because we like to restore order - M.C. Escher


  • FastWallie
  • Registratie: September 2001
  • Laatst online: 25-11-2024
Gebruik hiervoor het user profile (voor win2K/ XP) en de temp/tmp als die userprofile niet beschikbaar is. Schrijven in de windows directory vind ik niet netjes en misschien is deze voor sommige gebruikers niet beschrijfbaar (of in de toekomst). Ook blijven de instelling (die je opslaan in je ini file dan mooi aan de gebruiker hangen.

http://www.jawal.nl


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 18:58

Tomatoman

Fulltime prutser

Programmagegevens die kleiner zijn dan ± 1 kilobyte hoor je in het register op te slaan. Als ze groter zijn, doe je dat in een ini file. Ini files sla je op een van de volgende locaties op:
  • Windows-directory
  • System-directory
  • Directory waar je programma in is geïnstalleerd.
Bron: Delphi-documentatie.

Een goede grap mag vrienden kosten.


  • Zynth
  • Registratie: September 2001
  • Laatst online: 29-07 15:30
aha..
het register lijkt me inderdaad wel leuk!
is het dan ook zo dat elke gebruiker een eigen HKEY_Current_User heeft?
dat zou helemaal leuk zijn :D
(ik neem trouwens aan dat win95/XP dezelfde paden in het register gebruikt...)

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 18:58

Tomatoman

Fulltime prutser

Zynth schreef op 28 september 2002 @ 15:10:[...]
is het dan ook zo dat elke gebruiker een eigen HKEY_Current_User heeft?
dat zou helemaal leuk zijn :D
(ik neem trouwens aan dat win95/XP dezelfde paden in het register gebruikt...)
Iedere gebruiker heeft zijn eigen HKEY_CURRENT_USER en die is globaal hetzelfde ingericht op Win9x en WinNT/2000/XP.

Als jouw bedrijf MacZynth heet en je programma Zynth Professional 2.0, sla je je gegevens op onder
  • HKEY_CURRENT_USER\Software\MacZynth\Zynth Professional\2.0\
De keys <Bedrijfsnaam> en <Programmanaam> zijn verplicht. De key <versie> is niet verplicht, maar wel erg handig. Daaronder kun je net zo'n grote kerstboom bouwen als je zelf wilt.

Een goede grap mag vrienden kosten.

Pagina: 1