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 :

Erreur validation fichier après un OpenDialog


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Erreur validation fichier après un OpenDialog
    Dans mon programme, je dois saisir et valider deux fichiers.

    Le premier fichier doit exister dans le répertoire par défaut du programme.

    Le deuxième fichier possède un bouton CHOISIR qui utilise OpenDialog pour choisir un fichier dans un autre répertoire.

    Sur le bouton OK, je valide que les deux fichiers existent. Ça fonctionne toujours si je tape un ou deux fichiers existants.

    Par contre, si j'utilise le bouton CHOISIR pour trouver mon deuxième fichier, la validation du premier fichier ne fonctionne plus. On dirait que le bouton choisir change le répertoire par défaut de mon programme, l'empêchant ainsi de trouver le premier fichier. Que faire?

    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;
     
    type
      TForm1 = class(TForm)
        Fichier1: TEdit;
        BtnOK: TButton;
        Fichier2: TEdit;
        BtnChoisir: TButton;
        OpenDialog1: TOpenDialog;
        Label1: TLabel;
        Label2: TLabel;
        procedure BtnChoisirClick(Sender: TObject);
        procedure BtnOKClick(Sender: TObject);
        function ValideFichier(Fichier: String): Boolean;
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.DFM}
     
    { Sélection d'un fichier dans un autre répertoire }
     
    procedure TForm1.BtnChoisirClick(Sender: TObject);
    begin
      if (OpenDialog1.Execute) then
        Fichier2.Text := OpenDialog1.FileName;
    end;
     
    { Sortie de la forme }
     
    procedure TForm1.BtnOKClick(Sender: TObject);
    begin
      if (Not ValideFichier(Fichier1.Text)) then
      begin
        Fichier1.SetFocus;
        Exit;
      end;
     
      if (Not ValideFichier(Fichier2.Text)) then
      begin
        Fichier2.SetFocus;
        Exit;
      end;
     
      Close;
    end;
     
    { Validation des fichier }
     
    function TForm1.ValideFichier(Fichier: String): Boolean;
    var
      Fid: TextFile;
    begin
      ValideFichier := False;
     
      try
        AssignFile(Fid, Fichier);
      except
        Showmessage('Erreur d''assignation du fichier ' + Fichier);
        Exit;
      end;
     
      {$I-}
      Reset(Fid);
      {$I+}
      if ioresult <> 0 then
      begin
        ShowMessage('Erreur de validation du fichier ' + Fichier);
        CloseFile(Fid);
        Exit;
      end;
     
      CloseFile(Fid);
      ValideFichier := True;
    end;
     
     
    end.
    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
    object Form1: TForm1
      Left = 192
      Top = 107
      Width = 565
      Height = 229
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object Label1: TLabel
        Left = 24
        Top = 32
        Width = 37
        Height = 13
        Caption = 'Fichier1'
      end
      object Label2: TLabel
        Left = 24
        Top = 96
        Width = 37
        Height = 13
        Caption = 'Fichier2'
      end
      object Fichier1: TEdit
        Left = 72
        Top = 24
        Width = 121
        Height = 21
        MaxLength = 12
        TabOrder = 0
      end
      object BtnOK: TButton
        Left = 240
        Top = 152
        Width = 75
        Height = 25
        Caption = 'OK'
        TabOrder = 1
        OnClick = BtnOKClick
      end
      object Fichier2: TEdit
        Left = 72
        Top = 88
        Width = 353
        Height = 21
        MaxLength = 100
        TabOrder = 2
      end
      object BtnChoisir: TButton
        Left = 448
        Top = 88
        Width = 75
        Height = 25
        Caption = 'Choisir'
        TabOrder = 3
        OnClick = BtnChoisirClick
      end
      object OpenDialog1: TOpenDialog
        Left = 32
        Top = 152
      end
    end

  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Tu tapes qoui au juste dans Edit1 ? le nom de fichier tout court ?
    si c oui, fais ceci :
    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
     
     
    procedure TForm1.BtnOKClick(Sender: TObject); 
    begin 
      if (Not ValideFichier(ExtractFilePath(Application.exeName) +Fichier1.Text)) then  // <---**************
      begin 
        Fichier1.SetFocus; 
        Exit; 
      end; 
     
      if (Not ValideFichier(Fichier2.Text)) then 
      begin 
        Fichier2.SetFocus; 
        Exit; 
      end;
    Esperant que ca va t'aider.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    Merci, ça a réglé mon problème!

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

Discussions similaires

  1. Erreur sur validation fichier afin de le convertir en lien
    Par cavrom dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 18/04/2011, 16h51
  2. Réponses: 1
    Dernier message: 13/07/2010, 09h30
  3. [XSD] Validation fichier XML - détection ligne en erreur
    Par thesmall dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 05/05/2010, 19h46
  4. Réponses: 0
    Dernier message: 14/10/2009, 22h52
  5. Réponses: 4
    Dernier message: 07/06/2008, 11h32

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