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

 Delphi Discussion :

problème avec try except et try finally !?


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 89
    Points : 73
    Points
    73
    Par défaut problème avec try except et try finally !?
    Bonjour

    Voila j ai un petit problème avec ma procédure.
    J ai un try except quand je génère un fichier zip
    Et un try finally quand j envoie un mail.

    Mon problème je n arrive pas à trouvé mon erreur pour que le compilateur parcourt la procédure sans être bloqué par une erreur avec les fins de block « end » dans cette procédure.

    Merci de votre aide ou de vos remarques.

    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
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    procedure TForm1.zipmail(grid : TStringGrid; msgmail: TIdMessage);
     
    var
      k,nbre:Integer;
      nomfichier, nomzip, dossierfichier : String;
      host, port, user, pwd, exped, desti, corp, etude : string;
      //Ini4 : TIniFile;
      //archiver : TZipForge;
     
    begin
     
      // UPDATE DU FICHIER POUR STOCKER LA DATE DU FICHIER LE PLUS RECENT
      Ini1:=TIniFile.Create(repini+'CONFIG.INI');
      Ini1.WriteString('LIMIT','DATETIME',grid.Cells[0,0]); // dateheure fichier
      Ini1.WriteString('LIMIT','NOM',grid.Cells[1,0]); // nom fichier
      Ini1.WriteString('LIMIT','TAILLE',grid.Cells[2,0]); // taille
      Ini1.WriteString('LIMIT','PENETRATION',grid.Cells[3,0]); // pénétration
      Ini1.Free;
     
      // on parcourt Tstringrid
      For k:=0 To grid.rowcount-1 Do
      begin
     
          //************************************************************
          // CREATION DU FICHIER ZIP AVEC LE FICHIER PDF
          //************************************************************
          // creation de l instance de TZipForge class
          archiver := TZipForge.Create(nil);
          try
            with archiver do
            begin
              // compteur de fichier Zip
              n_zip := n_zip+1;
              Edit18.Text:= IntToStr(n_zip);
     
              // recupere le nom du fichier sans l extension .pdf pour nommé le fichier zip
              nomfichier := grid.Cells[1,k];
              nbre := Pos('.',nomfichier);
              nomzip := Copy(nomfichier,1,nbre);
     
              // creation du nom du fichier zip
              FileName := repdrop+nomzip+'zip';
     
              // ouverture du fichier zip
              OpenArchive(fmCreate);
     
              // je defini le repartoire pour ajouter le fichier
              // pour ne pas avoir arborescence jusqu au fichier pdf à ziper
              dossierfichier := grid.Cells[4,k];
              BaseDir := dossierfichier;
     
              // ajout du fichier pdf
              AddFiles(nomfichier);
     
              // fermeture du fichier zip
              CloseArchive();
     
            end; // With archiver do
        except
        on E: Exception do
        begin
              Writeln('Exception: ', E.Message);
              // Wait for the key to be pressed
              Readln;
        end; // Try except
     
          //*******************************************************
          // CREATION DE L EMAIL AVEC LE FICHIER ZIP EN PIECE JOINT
          //*******************************************************
     
          // RECUPERATION DES DONNEES POUR LES MAILS DANS LE FICHIER CONFIG.INI
     
          //[Erreur] Unit1.pas(349): 'END' attendu(e) mais identificateur 'Ini2' trouvé(e)
          Ini2:=TIniFile.Create(repini+'CONFIG.INI');
          host:=Ini2.ReadString('MAIL','HOST','na host'); // HOST
          port:=Ini2.ReadString('MAIL','PORT','na port'); // PORT
          user:=Ini2.ReadString('MAIL','USERNAME','na username'); // USERNAME
          pwd:=Ini2.ReadString('MAIL','PASSWORD','na password'); // PASSWORD
          exped:=Ini2.ReadString('MAIL','EXPEDITEUR','na expediteur'); // EXPEDITEUR
          desti:=Ini2.ReadString('MAIL','DESTINATAIRE','na destinataire'); // DESTINATAIRE
          Ini2.Free;
     
          // ENTETE DU MAIL
          msgmail.Clear; //Efface l'entête et le corps du message
          msgmail.From.Text :=exped; //Adresse email de l'expediteur
          msgmail.ReplyTo.EMailAddresses:=exped; //Adresse email où le destinataire pourra répondre
          msgmail.Recipients.EMailAddresses:=desti; //Adresse email du destinataire
          msgmail.Date:=Date; //Date de l'envoi du message
          etude := Edit17.Text;
          msgmail.Subject:='ESCRIBE ECG. Etude : '+etude; //Sujet du message
          msgmail.Priority:=mpNormal; //Priorité du message
          corp := 'ESCRIBE ECG message. Pièce jointe'+nomzip+'.zip';
          msgmail.Body.Text := corp; //Corps du message
     
          // PIECE JOINTE DU MAIL LE FICHIER ZIP
          TIdAttachment.Create(msgmail.MessageParts,repdrop+nomzip+'.zip'); //Attache le fichier
     
          // CONNEXION AU SERVER SMTP
          srvsmtp.AuthenticationType:=atLogin; //Type d'authentification
          srvsmtp.Host:=host; //Hôte
          srvsmtp.Port:=strtoint(port); //Port (par exemple  25)
          srvsmtp.UserName:=user; //Nom d'utilisateur
          srvsmtp.Password:=pwd; //Mot de passe
          srvsmtp.Connect; //Connexion
          // [Erreur] Unit1.pas(380): 'END' attendu(e) mais 'TRY' trouvé(e)
          try
            srvsmtp.Send(msgmail); //Envoi du message
            n_mail := n_mail+1;
            Edit19.Text:= IntToStr(n_mail);
          finally
            srvsmtp.Disconnect; //Déconnexion
          // [Erreur] Unit1.pas(386): '.' attendu(e) mais ';' trouvé(e)
          end; // Try finally
     
      Sleep(3000);
      // [Avertissement] Unit1.pas(389): Texte après le 'END.' final ignoré par le compilateur
      End; // For
     
      // RELECTURE DU FICHIER INI AVEC LES DONNEES SUR LE FICHIER LE RECENT CONNU
      Ini3:=TIniFile.Create(repini+'CONFIG.INI');
      Edit4.Text:=Ini3.ReadString('LIMIT','DATETIME','na datetime'); // dateheure fichier
      Edit5.Text:=Ini3.ReadString('LIMIT','NOM','na nom fichier'); // nom fichier
      Edit6.Text:=Ini3.ReadString('LIMIT','TAILLE','na taille'); // taille
      Edit7.Text:=Ini3.ReadString('LIMIT','PENETRATION','na penetration'); // pénétration
      Ini3.Free;
     
    End; // Procedure

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 562
    Points : 25 158
    Points
    25 158
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    except
        on E: Exception do
        begin
          ...
        end; 
    end;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 89
    Points : 73
    Points
    73
    Par défaut
    Merci c'était aussi bête que ça...

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

Discussions similaires

  1. [2012] Problème avec l'utilisation de TRY/CATCH à l'intérieure d'un trigger
    Par Fog-Thunder dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 12/02/2014, 09h20
  2. Problème avec la fonction de tri qsort
    Par Umlist dans le forum C
    Réponses: 2
    Dernier message: 19/06/2012, 08h53
  3. Problème avec les exceptions
    Par shenron666 dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 11/10/2006, 12h53
  4. Problème avec les exceptions
    Par Mucho dans le forum wxWidgets
    Réponses: 3
    Dernier message: 04/10/2006, 17h10
  5. probléme avec les exceptions
    Par sofiane44 dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2006, 16h30

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