IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Intraweb 12 : comment intégrer l'utilisation d'un fichier ini ou équivalent ?


Sujet :

Web & réseau Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    décembre 2004
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : décembre 2004
    Messages : 461
    Points : 128
    Points
    128
    Par défaut Intraweb 12 : comment intégrer l'utilisation d'un fichier ini ou équivalent ?
    Bonjour,
    Je possède la version 12 d'Intraweb.
    Comment récupérer des données de configuration au démarrage?
    (l'utilisation d'un fichier ini ne semble pas possible)
    Merci pour votre aide
    PhilLu

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    mars 2005
    Messages
    3 789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : mars 2005
    Messages : 3 789
    Points : 11 107
    Points
    11 107
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    Les fichiers ini sont souvent remplacés par des bases SQLite : ne serait-ce pas possible ?
    Delphi 5 Pro - Delphi 10.4 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2013
    Messages : 1 876
    Points : 3 609
    Points
    3 609
    Par défaut
    IntraWeb est un programme qui s'exécute en tant que serveur. C'est du Delphi compilé. Tu peux donc utiliser System.IniFile comme tu le ferais dans n'importe quel programme sous Windows (ou ailleurs).

    (par contre méfiance si tu écris dedans car il y a du multi threading : chaque utilisateur d'un site IntraWeb peut faire des actions en même temps qu'un autre, pas forcément compatible avec de l'écriture dans un fichier texte ni même une base de données de type SQLite si on ne fait pa les choses proprement avec par exemple des verrous logiciels pour limiter les accès concurrents)

  4. #4
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    décembre 2004
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : décembre 2004
    Messages : 461
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par pprem Voir le message
    IntraWeb est un programme qui s'exécute en tant que serveur. C'est du Delphi compilé. Tu peux donc utiliser System.IniFile comme tu le ferais dans n'importe quel programme sous Windows (ou ailleurs).

    (par contre méfiance si tu écris dedans car il y a du multi threading : chaque utilisateur d'un site IntraWeb peut faire des actions en même temps qu'un autre, pas forcément compatible avec de l'écriture dans un fichier texte ni même une base de données de type SQLite si on ne fait pa les choses proprement avec par exemple des verrous logiciels pour limiter les accès concurrents)
    Merci pour ta réponse pprem
    C'est seulement de la lecture
    Je teste ça...

  5. #5
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    décembre 2004
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : décembre 2004
    Messages : 461
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par pprem Voir le message
    IntraWeb est un programme qui s'exécute en tant que serveur. C'est du Delphi compilé. Tu peux donc utiliser System.IniFile comme tu le ferais dans n'importe quel programme sous Windows (ou ailleurs).

    (par contre méfiance si tu écris dedans car il y a du multi threading : chaque utilisateur d'un site IntraWeb peut faire des actions en même temps qu'un autre, pas forcément compatible avec de l'écriture dans un fichier texte ni même une base de données de type SQLite si on ne fait pa les choses proprement avec par exemple des verrous logiciels pour limiter les accès concurrents)
    Voilà
    Mais ne va pas chercher les infos dont j'ai besoin...

    Voici le code (dans unit1.pas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    var
    ini: Tinifile;
    IniFileName, Exe_Path: string;
    Images_Path: String;
     
    procedure TIWForm1.IWAppFormCreate(Sender: TObject);
    var
    ini: Tinifile;
    IniFileName: string;
    begin
        IniFileName := 'config.ini';
        IWLabel5.Caption:=IniFileName;
      ini := TIniFile.Create(IniFileName);
      Images_Path:=ini.readstring('Main','Images_Path', Images_Path);
      Exe_Path:=ini.readstring('Main','Exe_Path',Exe_Path);
         ini.free;
         IWLabel5.Caption:=Images_Path;
         IWLabel6.Caption:=Exe_Path;
    end;
    et le config.ini suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [Main]
    Exe_Path=D:\Documents\RAD Studio\Projets\VisionViewer\Win32\Debug\
    Images_Path=D:\Documents\RAD Studio\Projets\OCD Traitement images Vision V2\Win32\Debug\ImageDest\
    Quel chemin donner dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IniFileName := 'config.ini';
    un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini := Tinifile.Create(extractFilePath(application.exename)+'config.ini');
    ne fonctionne pas, vu que application.exename n'est pas reconnu...

    Merci pour votre aide
    PhilLu

  6. #6
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2013
    Messages : 1 876
    Points : 3 609
    Points
    3 609
    Par défaut
    normalement paramstr(0) contient le chemin vers l'exécutable, donc même si tu n'as pas application.exename, tu devrais pouvoir le trouver par là

  7. #7
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    décembre 2004
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : décembre 2004
    Messages : 461
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par pprem Voir le message
    normalement paramstr(0) contient le chemin vers l'exécutable, donc même si tu n'as pas application.exename, tu devrais pouvoir le trouver par là
    Yessssss
    De fait ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TIWForm1.IWAppFormCreate(Sender: TObject);
    var
    ini: Tinifile;
    IniFileName: string;
    begin
       ini := Tinifile.Create(ExtractFilePath(ParamStr(0)) + 'config.ini');
      Images_Path:=ini.readstring('Main','Images_Path', Images_Path);
      Exe_Path:=ini.readstring('Main','Exe_Path',Exe_Path);
         ini.free;
         IWLabel5.Caption:=Images_Path;
         IWLabel6.Caption:=Exe_Path;
    end;
    marche super

    Super merci pprem

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WM21] Comment intégrer et utiliser un fichier xml dans un projet
    Par Woote dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 03/04/2017, 09h35
  2. Comment afficher le contenu d'un fichier ini dans un mémo?
    Par Jayceblaster dans le forum Langage
    Réponses: 7
    Dernier message: 13/05/2014, 17h38
  3. Comment intégrer la BD dans le fichier APK
    Par jerem_orga dans le forum Android
    Réponses: 1
    Dernier message: 23/01/2012, 17h07
  4. Comment écrire une section dans un fichier ini?
    Par Jayceblaster dans le forum Delphi
    Réponses: 5
    Dernier message: 26/06/2006, 14h08
  5. [VB.Net] Comment lire une url depuis un fichier .ini ?
    Par lewebdalex dans le forum VB.NET
    Réponses: 7
    Dernier message: 06/05/2006, 20h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo