Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Delphi: Application Path Ini-tiedostosta?

0 views
Skip to first unread message

Erkki Latomaa

unread,
Jul 24, 2007, 12:07:03 PM7/24/07
to
Ohjelmaa käynnistettäessä luetaan ini-tiedostoa, johon tallennetaan
käyttäjäprofiili ini-tiedoston nimi.
[User]
Profiele=C:\Program\MyApp\Profiles\default.pro

Tämä toimii, kun ohjelmatiedoston sijainti tunnetaan. Ohjelman
asennusvaiheessa hakureitti voi olla siis melkeimpä mitä tahansa.
Esim. InnoSetup tekee asennus vaiheessa näin : DestDir: "{app}
\IniFiles";

Tuosta {app} en ole löytänyt mitään TIniFiles luokassa.
Kuinka saisi toimimaan tyyliin :
[User]
Profiele={app}\Profiles\default.pro

Tarkoituksena on siis, että ensikäyttäjän ei tarvitse lähteä aivan
tyhjältä pöydältä, vaan oletusarvot ovat tuossa default.pro
tiedostossa.

Eki

Asko Telinen

unread,
Jul 24, 2007, 5:01:24 PM7/24/07
to
Erkki Latomaa kirjoitti:

Miksi et käytä suhteellista polkua profiilin määrktyksessä? Tyyliin:

Profiele=.\Profiles\default.pro

silloinhan voit ohjelmassa tarkistaa onko kyseessä absoluuttinen polku
ja jos ei niin voit muodostaa koko polun ajonaikaisesti hakemalla
ohjelman polun ja yhdistämällä sen määritettyyn suhteelliseen polkuun.

Esim.

var appPath: string;
begin
if ( OnkoSuhteellinenPolku(iniPolku) ) then begin
appPath := ... // Haet ohjelman polun, vaikka
// GetModuleFileName:a käyttämällä.
// Liität suhteellisen polun perään
appPath := appPath + iniPolku;
end
else begin
// Absoluuttinen polku. ei tarvi tehdä mitään
end

Asko.

--

It is not necessary to understand things in order to argue about them.
Pierre Beaumarchais (1732 - 1799)

Jyri Leino

unread,
Jul 24, 2007, 5:49:03 PM7/24/07
to
Erkki Latomaa kirjoitti:

> Ohjelmaa käynnistettäessä luetaan ini-tiedostoa, johon tallennetaan
> käyttäjäprofiili ini-tiedoston nimi.
> [User]
> Profiele=C:\Program\MyApp\Profiles\default.pro
>
> Tämä toimii, kun ohjelmatiedoston sijainti tunnetaan. Ohjelman
> asennusvaiheessa hakureitti voi olla siis melkeimpä mitä tahansa.
> Esim. InnoSetup tekee asennus vaiheessa näin : DestDir: "{app}
> \IniFiles";
>
> Tuosta {app} en ole löytänyt mitään TIniFiles luokassa.
> Kuinka saisi toimimaan tyyliin :
> [User]
> Profiele={app}\Profiles\default.pro

Jos käsitin kysymyksesi oikein, suosittelen että vilkaiset mitä
ParamStr(0) tai Application.ExeName palauttavat.
=> pitäisi löytyä .exe tiedoston nimi polkuineen.
Siitä ExtractFilePath antaa polun.

jl

Erkki Latomaa

unread,
Jul 29, 2007, 6:17:36 PM7/29/07
to
Jyri Leino wrote:
> ParamStr(0) tai Application.ExeName palauttavat.
> => pitäisi löytyä .exe tiedoston nimi polkuineen.
> Siitä ExtractFilePath antaa polun.

Tuo on aivan OK kun polkua tutkitaan ohjelmasta, mutta ajatusena oli
lukea polku INI tiedostosta.
Löysin vähän yksinkertaisemman ratkaisun ilman rekursiota.
Tuo .\Profiles\ vaikuttaa toimivalta, vaikka en ole vielä kokeillut.
Kiitokset vinkeistä.

Eki

0 new messages