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

Langage Delphi Discussion :

problème de chemin


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2003
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2003
    Messages : 382
    Points : 161
    Points
    161
    Par défaut problème de chemin
    Bonjour,

    J'ai un problème avec le bout de code suivant.
    Si j'execute ce code au lancement de l'appli le fichier est bien copié dans le bon répertoire.
    Par contre si j'exécute ce code avec avoir utilisé une boite de dialogue "open" le fichier est copié dans le répertoire ouvert avec la boite de dialogue.

    Comment forcer la copie dans le bon répertoire




    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
     
    function GetInetFile(const fileURL, FileName: String): boolean;
    const BufferSize = 1024;
    var
      hSession, hURL: HInternet;
      Buffer: array[1..BufferSize] of Byte;
      BufferLen: DWORD;
      f: File;
      sAppName: string;
    begin
     
     Result:=False;
     sAppName := ExtractFileName(Application.ExeName);
     hSession := InternetOpen(PChar(sAppName),
                    INTERNET_OPEN_TYPE_PRECONFIG,
                   nil, nil, 0);
     try
      hURL := InternetOpenURL(hSession,
                PChar(fileURL),
                nil,0,INTERNET_FLAG_NO_CACHE_WRITE or INTERNET_FLAG_RELOAD,0);
      try
     
       AssignFile(f, fichier_texte);
       Rewrite(f,1);
       repeat
        InternetReadFile(hURL, @Buffer,
                         SizeOf(Buffer), BufferLen);
        BlockWrite(f, Buffer, BufferLen)
       until BufferLen = 0;
       CloseFile(f);
       Result:=True;
      finally
       InternetCloseHandle(hURL)
      end
     finally
      InternetCloseHandle(hSession)
     end
    end;
    //=====================================================================
     
    function DetectionConnexion: Boolean;
    // ---------verification de la connection ------------------
    var
      dwFlags: DWord;
    begin
      dwFlags := INTERNET_CONNECTION_MODEM or INTERNET_CONNECTION_LAN or INTERNET_CONNECTION_PROXY;
      Result := InternetGetConnectedState(@dwFlags, 0);
    end;
    //====================================================
    procedure Taffiche.Importationdunenouvellebase1Click(Sender: TObject);
    var
      FileOnNet, LocalFileName: string;
      SomeTxtFile : TextFile;
      buffer : string;
    begin
     
     if DetectionConnexion=false then
      begin
      ShowMessage('Pas de connection internet');
      exit;
      end;
     
    //-----------récupération du fichier--------------------
      fichier_texte:='base_collec_complet.txt';
      LocalFileName:=ExtractFilePath(Application.ExeName)+ fichier_texte;
      FileOnNet:='http://www."---------"/admi/Fic_texte/'+fichier_texte;
      Label104.Visible:=true;
      Label104.Caption := 'Transfert en Cours ...';
      Label104.Refresh;
      if GetInetFile(FileOnNet, LocalFileName)=True then
       begin
        Label104.Visible:=false;
        ShowMessage('Transfert terminé');
        end
      else
        ShowMessage('Une erreur c"est produite pendant le transfert');
     
    end;
    75 ans quelques dents en moins, mais toujours envie d'apprendre

  2. #2
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Cela est du au CurrentDirectory de ton processus. Le OpenDialog (entre autres) modifie ce chemin.
    Donc 2 possibilités:
    - Mettre le chemin complet de ton fichier quand tu veux y acceder (la propriete Application.Exename pourra t'etre utile)
    - Restaurer le dossier courant au moment adequat, grace aux fonctions Get[Set]CurrentDir (ou CurrDir, ou CurrentDirectory, ... je sais plus trop)

Discussions similaires

  1. [débutant][URL] problème de chemin
    Par soulhouf dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 14/09/2005, 16h25
  2. [MFC]Problème de chemin de fichier
    Par benahpets dans le forum MFC
    Réponses: 3
    Dernier message: 06/09/2005, 13h07
  3. [XSLT] Problème de chemin d'accès + XSLT
    Par Jorus dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/09/2004, 08h36
  4. Réponses: 17
    Dernier message: 13/07/2004, 20h37
  5. [JSP] Include, problème de chemin relatif
    Par dafly dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/04/2004, 14h11

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