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

Web & réseau Delphi Discussion :

[Client mail] Problème lors de l'ajout des comptes


Sujet :

Web & réseau Delphi

  1. #1
    Membre habitué
    Avatar de Leobaillard
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    313
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 313
    Points : 171
    Points
    171
    Par défaut [Client mail] Problème lors de l'ajout des comptes
    Hello, toujours dans le cadre de mon client mail avec Silk, je suis bloqué sur l'ajout des comptes... J'ai une procédure chargée de trouver les fichiers des comptes pour les enregistrer dans une listview en allant chercher des infos dans un fichier ini. Mia slorsque j'essaie de la faire marcher, j'ai une "access violation"...

    Avant d'envahir le forum avec des sources, je voudrais vous demander, surtout aux modérateurs, si je peux afficher le code, parce que c'est assez long. Pas trop, mais quand même. lol !!


    Merci d'avance
    /// ( : Léo : ) \\\
    ---C'est parce que la vitesse de la lumière est supérieure à celle du son, que certains paraissent brillants avant d'avoir l'air con---
    http://leobaillard.org (Hébergement gratuit, prog, forums, et autres)

    -------------------------

    L'orbe du temps (Zelda like 2D en Delphi) : Le Site

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut Re: [Client mail] Problème lors de l'ajout des comptes
    Citation Envoyé par Leobaillard
    si je peux afficher le code, parce que c'est assez long. Pas trop,
    Je ne pense pas que cela soit la bonne approche car peu de membres liront ton code.
    Essaie de cibler le code en erreur.
    En revanche tu peux placer l'intégralité de ton source sur une page perso et indiquer l'url.

  3. #3
    Membre habitué
    Avatar de Leobaillard
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    313
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 313
    Points : 171
    Points
    171
    Par défaut
    Ok, je peux pas cibler, c'est ça le problème, je vais donc opter pour la solution page perso.
    /// ( : Léo : ) \\\
    ---C'est parce que la vitesse de la lumière est supérieure à celle du son, que certains paraissent brillants avant d'avoir l'air con---
    http://leobaillard.org (Hébergement gratuit, prog, forums, et autres)

    -------------------------

    L'orbe du temps (Zelda like 2D en Delphi) : Le Site

  4. #4
    Membre habitué
    Avatar de Leobaillard
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    313
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 313
    Points : 171
    Points
    171
    Par défaut
    Bon, je crois que sais d'ou vient le problème, et comme je pense que les sources sont moins grosses que ce que je ne prévoyais, je les met ici. Si vous jugez que ça prend trop de place, dites-le moi, et je supprime.

    Code de la fonction qui recherche et ajoute le nom du compte (présent dans le fichier du compte) dans un listview :
    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
    Procedure TrouverCompte(Dossier : String);
    Var
      Info   : TSearchRec;
      MonCpt : TCpt;
    begin
      { Recherche de la première entrée du répertoire }
      If FindFirst(Dossier+'*.lcmp',faAnyFile,Info)=0 Then
      Begin
        Repeat
          If((Info.Attr And faDirectory)=0)
            Then
            begin
            MonCpt:=OuvrirCpt(ExtractFilePath(ParamStr(0))+'\profils\'+Info.FindData.cFileName);
            prefs.cptlist.Items.Add.Caption:=MonCpt.name;
            end;
          { Il faut ensuite rechercher l'entrée suivante }
        Until FindNext&#40;Info&#41;<>0;
     
        &#123; Dans le cas ou une entrée au moins est trouvée il faut &#125;
        &#123; appeler FindClose pour libérer les ressources de la recherche &#125;
        FindClose&#40;Info&#41;;
      End;
    end;
    J'avais mis un ShowMessage qui renvoyait "Info.FindData.cFileName" et ça marchait.
    TCpt est un type que j'ai créé.
    Et voici le code de la fonction OuvrirCpt (je pense que c'est celle là qui bug...).
    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
    function OuvrirCpt&#40;IniCompte&#58;String&#41;&#58;TCpt;
    begin
    if fileExists&#40;IniCompte&#41; then begin
    IniCompteOpen &#58;= TIniFile.Create&#40;IniCompte&#41;;
    try
    result.name&#58;=IniCpt.ReadString&#40;'Compte', 'NomPrenom', 'Erreur'&#41;;
    result.email&#58;=IniCpt.ReadString&#40;'Compte', 'Adresse', 'Erreur'&#41;;
    result.username&#58;=IniCpt.ReadString&#40;'Compte', 'NomUtil', 'Erreur'&#41;;
    result.password&#58;=IniCpt.ReadString&#40;'Compte', 'Passe', 'Erreur'&#41;;
    result.srvtype&#58;=IniCpt.ReadString&#40;'Compte', 'Type', 'Erreur'&#41;;
    result.popserv&#58;=IniCpt.ReadString&#40;'Serveur', 'Pop3', 'Erreur'&#41;;
    result.smtpserv&#58;=IniCpt.ReadString&#40;'Serveur', 'SMTP', 'Erreur'&#41;;
    //IniCpt.ReadString&#40;'Serveur', 'IMAP', ''&#41;;
    result.smtpautent&#58;=IniCpt.ReadInteger&#40;'Conf', 'SMTPAut', 0&#41;;
    finally
    IniCompteOpen.Free;
    end;
    end else begin
    ShowMessage&#40;'On est dans le exit'&#41;;
    exit;
    end;
    end;
    Désolé pour la taille et merci d'avance
    /// ( : Léo : ) \\\
    ---C'est parce que la vitesse de la lumière est supérieure à celle du son, que certains paraissent brillants avant d'avoir l'air con---
    http://leobaillard.org (Hébergement gratuit, prog, forums, et autres)

    -------------------------

    L'orbe du temps (Zelda like 2D en Delphi) : Le Site

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Leobaillard
    Désolé pour la taille
    On a vu pire au niveau taille de code

  6. #6
    Membre habitué
    Avatar de Leobaillard
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    313
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 313
    Points : 171
    Points
    171
    Par défaut
    Merci, mais je pensais vraiment que ça poserais un problème ! Merci beaucoup J'espère qu'on va trouver la solution...
    /// ( : Léo : ) \\\
    ---C'est parce que la vitesse de la lumière est supérieure à celle du son, que certains paraissent brillants avant d'avoir l'air con---
    http://leobaillard.org (Hébergement gratuit, prog, forums, et autres)

    -------------------------

    L'orbe du temps (Zelda like 2D en Delphi) : Le Site

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Je coderais plutôt comme 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    function OuvrirCpt&#40;IniCompte&#58;String&#41;&#58;TCpt;
    var  IniCompteOpen &#58; TIniFile; ??
    begin
     Result&#58;= ??
    if fileExists&#40;IniCompte&#41; then
     begin
     try
      IniCompteOpen &#58;= TIniFile.Create&#40;IniCompte&#41;;
      With Result,IniCpt do
       begin
        name&#58;=ReadString&#40;'Compte', 'NomPrenom', 'Erreur'&#41;;
        email&#58;=ReadString&#40;'Compte', 'Adresse', 'Erreur'&#41;;
        username&#58;=ReadString&#40;'Compte', 'NomUtil', 'Erreur'&#41;;
        password&#58;=ReadString&#40;'Compte', 'Passe', 'Erreur'&#41;;
        srvtype&#58;=ReadString&#40;'Compte', 'Type', 'Erreur'&#41;;
        popserv&#58;=ReadString&#40;'Serveur', 'Pop3', 'Erreur'&#41;;
        smtpserv&#58;=ReadString&#40;'Serveur', 'SMTP', 'Erreur'&#41;;
        //IniCpt.ReadString&#40;'Serveur', 'IMAP', ''&#41;;
        smtpautent&#58;=ReadInteger&#40;'Conf', 'SMTPAut', 0&#41;;
      end;
     end
     else ShowMessage&#40;'On est dans le exit'&#41;;
     Finally
      IniCompteOpen.Free;
     end;
    end;
    Result n'est pas renseigné si fileExists(IniCompte)=False. Et avec ce prototype l'appelant ne sait pas si l'opération à réussi ou pas. Déclencher une exception ?
    La variable IniCompteOpen ne devrait-elle pas être déclarée en locale ?
    Il n'existe pas de notion de bloc 'exit' mais le bloc de finalisation existe bien (finally).
    Le message devrait être 'le fichier xxx n'existe pas', bon c'est une bricole.

  8. #8
    Membre habitué
    Avatar de Leobaillard
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    313
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 313
    Points : 171
    Points
    171
    Par défaut
    Merci, merci, merci !!! Ça marche enfin !! Je sais pas très bien ce que ça a fait, mais ça marche...
    /// ( : Léo : ) \\\
    ---C'est parce que la vitesse de la lumière est supérieure à celle du son, que certains paraissent brillants avant d'avoir l'air con---
    http://leobaillard.org (Hébergement gratuit, prog, forums, et autres)

    -------------------------

    L'orbe du temps (Zelda like 2D en Delphi) : Le Site

  9. #9
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Leobaillard
    Je sais pas très bien ce que ça a fait, mais ça marche...
    Là mieux vaut comprendre l'erreur sinon tu réaliseras des programmes qui 'tombent en marche'.
    C'est certainement laborieux de tracer et débugger mais il n'y a rien de plus formateur, enfin c'est mon avis.

  10. #10
    Membre habitué
    Avatar de Leobaillard
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    313
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 313
    Points : 171
    Points
    171
    Par défaut
    Tout a fait d'accord, mais je pense que ton analyse du problème était bonne puisqu'il n'y a plus d'erreurs, je vais donc veiller à ne pas la refaire ! Merci beaucoup !
    /// ( : Léo : ) \\\
    ---C'est parce que la vitesse de la lumière est supérieure à celle du son, que certains paraissent brillants avant d'avoir l'air con---
    http://leobaillard.org (Hébergement gratuit, prog, forums, et autres)

    -------------------------

    L'orbe du temps (Zelda like 2D en Delphi) : Le Site

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

Discussions similaires

  1. JavaMail, problème lors de la récupération des e-mail
    Par khadi8 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 26/08/2014, 15h54
  2. Problème lors de l'envoi des mails via MIME::Lite
    Par mannouuu dans le forum Langage
    Réponses: 0
    Dernier message: 06/04/2014, 20h53
  3. Problème lors de l'ajout d'un port
    Par zehle dans le forum VHDL
    Réponses: 1
    Dernier message: 24/05/2006, 21h44
  4. Réponses: 3
    Dernier message: 14/11/2005, 19h24
  5. [JAXB][XSD] Problème lors de la génération des classes
    Par charlot44 dans le forum Persistance des données
    Réponses: 4
    Dernier message: 22/06/2005, 16h10

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