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