pictogram Auteur: Patrick Biker
Date: 18 mars 2006
Maj : 21 Mars 2015

Des exemples d'utilisation des fonctions du WLangage

Rien de tel qu'un exemple pour comprendre une fonction de WLangage. Dans cette section, vous trouverez des exemples simples.

Des exemples évolués, où la fonction est utilisée en contexte, sont également disponible sur ce site.

Aller à la page des exemples évolués

EmailEnvoie (en anglais EmailSend)

// Construction du message
SI fSauveTexte("ContenuEmail.txt", ...
       ChaîneConstruit(ContenuMessage,Email.Expéditeur,Email.AdresseExpéditeur, ...
       Email.Destinataire[1],Email.Sujet,Email.Message)) = Faux  ALORS
   Erreur(ErreurInfo())
SINON
   EmailEnvoie ("SessionSMTP","ContenuEmail.txt")
   SI ErreurDétectée ALORS
      Erreur(ErreurInfo())
   FIN
FIN


Début de la page

EmailEnvoieMessage (en anglais EmailSendMessage)

// Envoi d'un e-mail par le protocole SMTP
SI EmailOuvreSession(USER, PASSWORD, "pop3.ifrance.fr", ...
                     "smtp.ifrance.fr") = Vrai ALORS
    NomUser =USER
SINON
    NomUser = ""
    Erreur("Impossible d'établir la connexion"+ RC + ...
                ErreurInfo( ErrMessage )
FIN

// Initialisation de la structure e-mail
Email.Destinataire = "support@pcsoft.fr"
Email.Expéditeur = "Tartampion@boite.net.fr"
Email.Message = "Test Auto eMail"
Email.nbDestinataire = 1

// Envoie le mail
SI EmailEnvoieMessage (NomUser) = Faux ALORS
    Erreur("EmMailEnvoieMessage a échoué '" + ...
            ErreurInfo( errMessage ) + "'")
SINON
    Info("EmMailEnvoieMessage a réussi")
FIN


Début de la page

EmailEtat (en anglais EmailStatus)

// Envoi d'un e-mail par le protocole SMTP
SI EmailOuvreSession(USER, PASSWORD, "pop3.ifrance.fr", ...
       "smtp.ifrance.fr", Vrai) = Vrai ALORS
   NomUser = USER
SINON
  NomUser = ""
  Erreur("Impossible d'établir la connexion"+ RC + ...
    EmailMsgErreur(Email.Erreur))
FIN

// Initialisation de la structure e-mail
Email.Destinataire = "support@pcsoft.fr"
Email.Expéditeur = "Tartampion@boite.net.fr"
Email.Message = "Test Auto eMail"
Email.nbDestinataire = 1

// Envoie le mail
SI EmailEnvoieMessage(NomUser) = Faux  ALORS
  Erreur("EmailEnvoieMessage a échoué '" + ErreurInfo( errMessage ) + "'")
SINON
  Info("EmailEnvoieMessage a réussi")
FIN
...
// Suivi de l'e-mail
Selon EmailEtat (Email.IdentifiantMail)
   CAS EmailEnvoyé : Trace("L'email a été envoyé")
   CAS EmailEnAttente : Trace("Email en cours de traitement")
   CAS EmailErreur : Trace("Erreur : " + ErreurInfo( errMessage ))
FIN


Début de la page

EmailFermeSession (en anglais EmailCloseSession)

// Ouverture d'une session d'e-mails par le protocole SMTP/POP3
SI EmailOuvreSession(USER, PASSWORD, "pop3.ifrance.fr", ...
                      "smtp.ifrance.fr") = Vrai ALORS
   NomUser = USER
SINON
   NomUser = ""
  
Erreur("Impossible d'établir la connexion")
FIN
// Si une session est ouverte, fermeture de cette session
SI NomUser <> "" ALORS
    EmailFermeSession(NomUser)
    NomUser = ""
FIN


Début de la page

EmailJauge (en anglais EmailProgressBar)

// Affichage de la jauge dans le champ CH_Jauge
EmailJauge (CH_Jauge)
...
// Annulation de cette jauge
EmailJauge ("")


Début de la page

EmailJauge (en anglais EmailProgressBar)

// La jauge est gérée par la procédure GestionProgression
EmailJauge (GestionProgression)

Procédure GestionProgression(TotalOctet, TotalTransmis)
Message("Transfert en cours : " +TotalTransmis+" / "+ TotalOctet)
CH_Jauge = TotalTransmis/ TotalOctet


Début de la page

EmailJauge (en anglais EmailProgressBar)

// La jauge est gérée par l'événement ProgressionEmail
EmailJauge("ProgressionEmail")

-- Code d'initialisation de la fenêtre
Evénement(GestionBarre,"*.*", "ProgressionEmail")

Procédure GestionBarre(TotalOctet, TotalTransmis)
Trace("Transfert en cours : " +TotalTransmis+" / "+ TotalOctet)


Début de la page

EmailLitDernier (en anglais EmailReadLast)

// Lecture du dernier e-mail
SI EmailLitDernier (NomUser) = Vrai ALORS
  // Si l'e-mail existe, ouvre la fenêtre MAIL_RCV permettant de le lire
  SI Email.EnDehors = Faux ALORS
    Ouvre("MAIL_RCV")
  SINON
   Info("Pas de mail")
  FIN
SINON
  Erreur(EmailMsgErreur(Email.Erreur))
FIN


Début de la page

EmailLitEnteteDernier (en anglais EmailReadLastHeader)

// Supprime les e-mails envoyés par des expéditeurs "black-listé"
// Parcours des e-mails
// Lecture de l'en-tête uniquement
// (pour économiser la bande passante)
// Si l'e-mail est "interdit", on le supprime
// Les e-mails "autorisés" pourront alors être
// lus complètement dans un deuxième temps
SI EmailLitEntêteDernier (MaSessionPOP) ALORS
   BOUCLE
   // Est-ce-que l'expéditeur fait partie d'une 
   // liste de gens "interdit" ?
   SI ExpediteurInterdit ( Email . AdresseExpéditeur ) OU ...
            ExpediteurInterdit ( Email . Expéditeur ) ALORS
      EmailSupprimeMessage(MaSessionPOP)
   FIN
   A FAIRE TANTQUE EmailLitEntêtePrécédent ( MaSessionPOP )
FIN


Début de la page

EmailLitEnteteMessage (en anglais EmailReadMessageHeader)

// Lecture des e-mails dont la taille ne dépasse pas TailleMax
I est un entier
POUR I = 1 à EmailNbMessage(NomUser)
   SI EmailTailleMessage(NomUser, I) < TailleMax ALORS
      // Procédure de Lecture et traitement du message
      LireMessage()
   SINON
  
   EmailLitEntêteMessage (NomUser, I)
      // Procédure de réponse signalant que l'e-mail n'a pas été lu
      RenvoiMessage(Email.AdresseExpéditeur)
   FIN
FIN


Début de la page

EmailLitEntetePrecedent (en anglais EmailReadPreviousHeader)

// Supprime les e-mails envoyés par des expéditeurs "black-listé"
// Parcours des e-mails
// Lecture de l'en-tête uniquement
// (pour économiser la bande passante)
// Si l'e-mail est "interdit", on le supprime
// Les e-mails "autorisés" pourront alors être
// lus complètement dans un deuxième temps
SI EmailLitEntêteDernier(MaSessionPOP) ALORS
   BOUCLE
   // Est-ce-que l'expéditeur fait partie d'une 
   // liste de gens "interdit" ?
   SI ExpediteurInterdit ( Email . AdresseExpéditeur ) OU ...
            ExpediteurInterdit ( Email . Expéditeur ) ALORS
      EmailSupprimeMessage(MaSessionPOP)
   FIN
   A FAIRE TANTQUE EmailLitEntêtePrécédent ( MaSessionPOP )
FIN


Début de la page

EmailLitEntetePremier (en anglais EmailReadFirstHeader)

// Lecture du premier e-mail
EmailLitEntêtePremier (IdEmail)
SI Email.EnDehors = Faux ALORS
   // Affiche l'e-mail dans la fenêtre "Email_Rcv"
   Ouvre("Email_Rcv")
FIN


Début de la page

EmailLitEnteteSuivant (en anglais EmailReadNextHeader)

// Lecture du premier e-mail
EmailLitEntêtePremier(IdEmail)
SI Email.EnDehors = Faux ALORS
   // Affiche l'expéditeur et le sujet dans une table
   TableAjoute("Table_Recus", Email.Expéditeur + TAB + Email.Sujet)
   // Lecture de l'e-mail suivant
   EmailLitEntêteSuivant (IdEmail)
FIN


Début de la page

EmailLitMessage (en anglais EmailReadMessage)

I est un entier
nbMSG est un entier = EmailNbMessage(NomUser)
POUR I = 1 à nbMSG
  
SI EmailLitMessage (NomUser, I) = Vrai ALORS
      SI Email.Endehors <> Vrai ALORS
         CL.NOM = Email.Expediteur
        
CL.MESSAGE = Email.Message
         
...
      SINON
         Info("Ce message a été supprimé")
      FIN
   FIN
FIN


Début de la page

EmailLitPrecedent (en anglais EmailReadPrevious)

// Lecture du dernier e-mail
EmailLitDernier(NomUser)
// Lecture des e-mails (du dernier au premier)
TANTQUE Email.EnDehors = Faux
   // Demande à l'utilisateur s'il veut lire le message
   SI Confirmer("Message de " +Email.Expéditeur+ ...
                "Voulez vous lire ce message ?") ALORS
      // Ouvre la fenêtre de visualisation du message
      Ouvre("RCV_MSG")
   SINON
      // lecture de l'e-mail précédent
      EmailLitPrécédent (NomUser)
   FIN
FIN


Début de la page

EmailLitPremier (en anglais EmailReadFirst)

// Lecture du premier e-mail
EmailLitPremier (IdEmail)
SI Email.EnDehors = Faux ALORS
   // Affiche l'e-mail dans la fenêtre Email_Rcv
   Ouvre("Email_Rcv")
FIN


Début de la page

EmailLitSuivant (en anglais EmailReadNext)

// Lecture du premier e-mail
EmailLitPremier(IdEmail)
SI Email.EnDehors = Faux ALORS
   // Affiche l'expéditeur et le sujet dans une table
   TableAjoute("Table_Recus", Email.Expéditeur + TAB + Email.Sujet)
   // Lecture de l'e-mail suivant
   EmailLitSuivant(IdEmail)
FIN


Début de la page

EmailMiseAJour (en anglais EmailUpdate)

IdEmail est un entier
// Ouverture de la session d'e-mail
IdEmail = EmailOuvreSession("PROFILE_Exemple")
// Récupération des messages dans la boite de réception de MS Exchange
SI EmailMiseAJour (IdEmail) = Vrai ALORS
    Info("Messages récupérés")
SINON
    Erreur(EmailMsgErreur(Email.Erreur))
FIN


Début de la page

EmailMsgErreur (en anglais EmailMsgError)

// Envoie le mail
SI EmailEnvoieMessage(NomUser) = Faux  ALORS
   Erreur( EmailMsgErreur (Email.Erreur))
FIN


Début de la page

EmailNbMessage (en anglais EmailNbMessage)

// Boucle de lecture de tous les messages reçus présents
// dans la boîte aux lettres du protocole POP3

I est un entier
nbMSG est un entier = EmailNbMessage (NomUser)
POUR I = 1 ànbMSG
   EmailLitMessage(NomUser,I)
   SI Email.EnDehors <> Vrai ALORS
      CL.NOM = Email.Expediteur
      CL.MESSAGE = Email.Message
      ...
   SINON
      Info("Ce message a été supprimé")
   FIN
FIN


Début de la page

EmailOuvreSession (en anglais EmailStartSession)

// Envoi d'un e-mail par le protocole POP3
SI EmailOuvreSession (USER, PASSWORD, "pop3.ifrance.fr", ...
                     "smtp.ifrance.fr") = Vrai ALORS
   NomUser = USER
SINON
   NomUser = ""
  
Erreur("Impossible d'établir la connexion")
FIN


Début de la page

EmailOuvreSessionPOP3 (en anglais EmailStartPOP3Session)

// Lecture d'un e-mail par le protocole POP3
SI EmailOuvreSessionPOP3 (USER, PASSWORD, "pop3.ifrance.fr") = Vrai ALORS
   NomUser = USER
SINON
   NomUser = ""
  
Erreur("Impossible d'établir la connexion")
FIN


Début de la page

EmailOuvreSessionSMTP (en anglais EmailStartSMTPSession)

// Envoi d'un e-mail par le protocole SMTP
SI EmailOuvreSessionSMTP (NomUser, "smtp.ifrance.fr") = Vrai ALORS
   // Procédure permettant d'initialiser la structure e-mail
   Initialise_Email()
   // Envoie l'e-mail
   SI EmailEnvoieMessage(NomUser) = Faux ALORS
      Erreur(EmailMsgErreur(Email.Erreur))
   FIN
SINON
   Erreur("Impossible d'établir la connexion"+ RC + ...
                     EmailMsgErreur(Email.Erreur))
FIN


Début de la page

EmailRaz (en anglais EmaiReset)

// Ré-initialiser toutes les variables de la structure e-mail
EmailRAZ
()


Début de la page

EmailSauveFichierAttache (en anglais EmailSaveAttachment)

POUR I = 1 à Email.NbAttache
   Fichier = fSélecteur("", "", "Nom du fichier à sauvegarder",…
             "Tous les fichiers(*.*)" + TAB + "*.*", "", fSelCrée )
   EmailSauveFichierAttaché (Email.Attache[I], Fichier)
FIN


Début de la page

EmailSauveFichierAttache (en anglais EmailSaveAttachment)

POUR I = 1 à Email.NbAttache
  
Fichier = fRepEnCours() + "\Emails\"
  
EmailSauveFichierAttaché (Email.Attache[I], Fichier)
FIN


Début de la page

EmailSupprimeMessage (en anglais EmailDeleteMessage)

// Supprimes tous les messages
EmailLitPremier(IdEmail)
TANTQUE Email.EnDehors = Faux
  
EmailSupprimeMessage (IdEmail)
   EmailLitSuivant(IdEmail)
FIN


Début de la page

EmailTailleMessage (en anglais EmailMessageLength)

// Lecture des e-mails dont la taille ne dépasse pas TailleMax
I est un entier
POUR I = 1 à EmailNbMessage(NomUser)
   SI EmailTailleMessage (NomUser, I) < TailleMax ALORS
     // Lecture et traitement du message
     LireMessage()
   SINON
 
   Info("L'e-mail dépasse la taille prévue et ne peut pas être lu")
   FIN
FIN


Début de la page