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

VB.NET Discussion :

un soucis de boucle dans un tableau


Sujet :

VB.NET

  1. #1
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut un soucis de boucle dans un tableau
    Bonjour les gens,
    Si jamais un bon en VB.Net voit ça : j'ai une boucle for each qui doit envoyer un mail depuis chaque élément contenu dans un tableau.
    Le problème est que SEUL le premier est utilisé. ce qui prouve que le sous-code est bien exécuté , mais pourquoi seulement à la première occurence ?
    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
        Sub Envoyer_email()
     
            Dim sfilename As String
            sfilename = Server.MapPath("/dsw/client/" & session_client.code_client & "/ETK_" & session_assemblee.code_assemblee & ".htm")
            Dim fs As New IO.FileStream(sfilename, IO.FileMode.Create, IO.FileAccess.Write)
            Dim sw As New IO.StreamWriter(fs)
     
            Dim txt_email As String
            Dim ck_txt As String
     
            txt_email = 'tout un gros paquet de code pour formater un email html
     
            Dim dswpdf As DSWPDF.Service = New DSWPDF.Service
            dswpdf.Make_DSW_PDF(sfilename, session_client.code_client)
     
            'Response.Write(txt_email)
            Dim exptab() As String = Split(exp.Text, ";")
            Dim send As String
            For Each send In exptab
                Dim mMail As MailMessage = New MailMessage
     
     
     
                mMail.Headers.Add("Return-Receipt-To", send)
                mMail.BodyFormat = MailFormat.Html
                mMail.Body = "Please find enclosed the admission ticket"
                mMail.Subject = "Eintrittskarte für die Hauptversammlung der " & Raison_sociale.Text & " am " & Datum_ag.Text
                mMail.From = send
                mMail.To = dest.Text
                mMail.Attachments.Add(New System.Web.Mail.MailAttachment(Replace(sfilename, ".htm", ".pdf")))
     
     
                If dest2.Text <> "" Then
                    mMail.To = mMail.To & ";" & dest2.Text
                End If
                If dest3.Text <> "" Then
                    mMail.To = mMail.To & ";" & dest3.Text
                End If
     
                'mMail.Cc = "xxxxx@xxx.com"
     
                mMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", "mail.xxxxxxxx.fr")
                mMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25)
                mMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", 2)
                mMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1)
                mMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "moi@xxxxxxxx.fr")
                mMail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "xxxx")
     
                Try
     
                    SmtpMail.Send(mMail)
                    lbl_ok.Visible = True
                    lbl_error.Visible = False
                Catch ex As Exception
                    lbl_ok.Visible = False
                    lbl_error.Visible = True
     
                End Try
            Next
        End Sub
    Je suis perdu.

  2. #2
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    utilise le mode de débogage qu'offre Visual Studio,
    place des points d'arrêt sur ton code

    et regarde pourquoi il n'y repasse pas


    essaye de placer un premier point d'arrêt sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim exptab() As String = Split(exp.Text, ";")
    et un autre un peut après.
    Regarde que ton tableau exptab contienne bien les valeurs que tu veut *lorsque tu est au second point*

  3. #3
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    le code est en prod et fait parti d'un plus gros site.
    Je sais pas trop si je vais pouvoir l'exécuter en local pour me permettre un point d'arret
    j'ai aussi essayé de mettre un indicateur sous la forme d'un label, mais cet idiot ne se modifie pas. donc marche pas.

    tout ça c prog avec le framework 2, sous VS2003. l'horreur...

  4. #4
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            Dim send As String
            For Each send In exptab
                'la procédure....
            Next
    dans ce code je vois que tu déclare un String send mais tu ne met rien dedans ....
    je vois pas ce que ta boucle for each voit passer

    sinon si ton split fonctionne bien,
    qu'il découpe en le bon nombre d'élément, tu peut faire une boucle for du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
           For ii As Integer = 1 To exptab.Length
                'la procédure....
           Next
    la tu est sur qu'il va passer X fois le nombre d'éléments de ton tableau exptab

    PS: NetFramework 2... jsui d'accord pas terrible XD

  5. #5
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    et bien j'ai aussi fait comme ça, et le résultat est le même. Un seul mail envoyé, le premier.

  6. #6
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    Pour moi ton split a un problème....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim exptab() As String = Split(exp.Text, ";")
    essaye de lancer une boucle qui va dérouler ton exptab() dans une MsgBox ou une TextBox.
    Il y a beaucoup d'éléments dans ce exp.Text ?

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    le plus gros problème que je vois ici c'est qu'il ne puisse pas lancer son programme en pas à pas, c'est loin d'êre pro ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    il y en a autant qu'on écrit de mails séparés par un ";"
    et c'est du VB.Net derrière des pages ASP (.Net, donc), alors quand à mettre une msgbox...

  9. #9
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    le plus gros problème que je vois ici c'est qu'il ne puisse pas lancer son programme en pas à pas, c'est loin d'êre pro ...
    ça, j'y suis pour rien, c'est mon prédécesseur qui a fait tout ça. il a même désactivé le debug machine manager service.

  10. #10
    Membre habitué Avatar de anonymousse
    Profil pro
    Inscrit en
    Février 2011
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 130
    Points : 170
    Points
    170
    Par défaut
    bonsoir,

    essaies de remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim exptab() As String = Split(exp.Text, ";")
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim s As String =exp.Text
    Dim exptab As String() = s.Split(New Char() {";"c})
    ça fonctionne chez moi
    Mousse

  11. #11
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    je ne reçois toujours qu'un seul mail.

    En fait, je me demande si le deuxième mail ne passe pas parce que le serveur de mail n'a pas encore fini de traiter le premier, quand le prog lui demande le second...
    Mais je viens d'essayer avec 4 mails différents. Il n'y a vraiment que le premier qui passe. Et aucune erreur renvoyée.

  12. #12
    Membre expérimenté Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Points : 1 455
    Points
    1 455
    Par défaut
    je reviens a ce que j'ai dit,
    vérifie ce que fait ton split.

    entre 3-4 adresses mails,
    et met un petite routine qui contrôler tout ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            'assure toi que tu ai le bonne chaine de caractères en entrée
            MsgBox(exp.Text)
            'tu la met dans ton tableau
            Dim exptab() As String = Split(exp.Text, ";")
            'vérifie la longueur de ton tableau
            MsgBox(exptab.Length)
     
            Dim send As String
            For Each send In exptab
                'tu la montre pas à pas
                MsgBox(send)
            Next

  13. #13
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    msgbox ou remplissage d'un controle quelconque
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  14. #14
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    YEP !
    c'est bon, ça marche !
    c'était un problème de déploiement,simplement. le code était bon.

    En tout cas merci à tous !

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

Discussions similaires

  1. [MySQL] Double boucle dans un tableau
    Par arthuro45 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 10/08/2009, 17h56
  2. [Spip] résultat de boucle dans un tableau
    Par oceane751 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 20/08/2008, 10h23
  3. Souci de bordures dans un tableau
    Par alkariane dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 13/06/2008, 11h31
  4. [MySQL] Pagination : faire une boucle dans un tableau ?
    Par benjam89 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 13/09/2007, 20h10
  5. [Tableaux] Boucle dans un tableau
    Par apprenti-fab dans le forum Langage
    Réponses: 9
    Dernier message: 24/04/2006, 10h14

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