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

Windows Forms Discussion :

StreamWriter.WriteLine & IndexOutOfRangeException


Sujet :

Windows Forms

  1. #1
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut StreamWriter.WriteLine & IndexOutOfRangeException
    Bonjour,

    J'aimerais comprendre comment la méthode StreamWriter.WriteLine peut causer une exception du type IndexOutOfRange.

    Je cherche le tableau (ou équivalent) mais je n'en vois pas. (Bon ok une string est fondamentalement un tableau de caractères mais je doute que le souci se trouve là).

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Public Sub thread3()
            'thread chargé du traitement des données : écriture dans un fichier
            If Not dsTrait Is Nothing AndAlso dsTrait.Tables.Count > 0 Then
                For Each row As DataRow In dsTrait.Tables(0).Rows
                    line = ""
                    For Each col As DataColumn In dsTrait.Tables(0).Columns
                        line += row.Item(col.ColumnName).ToString & Chr(9)
                    Next
                    SW.WriteLine(line)
                Next
            End If
        End Sub
    L'erreur se produit sur la ligne en rouge.

    Quelqu'un aurait-il une idée ?

    Griftou.
    Kropernic

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Points : 330
    Points
    330
    Par défaut
    Bonjour,

    Mieux vaut tard que jamais (pour répondre à ce post) mais je vois une seule hypothèse (j'exclue tout problème lié à une taille maximum de string atteinte) qui serait la présence de chr(9) = tabulation dans la chaine que tu souhaites écrire dans un fichier dont le format d'encoding n'est pas standard.

    Je sais, c'est un peu tordu comme hypothèse mais si ça fait avancer le schlimiliblibk...

  3. #3
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Merci bien.

    Finalement, entre temps j'ai résolu mon problème en faisant patienter un bref moment le thread qui ferme le fichier.

    A mon avis le problème se posait là. Mais je trouve tout de même louche que le type de l'exception soit outofrange.

    Pour info, dans ce tool, j'ai un premier thread qui récupère des infos d'une db, un second qui transfert les données du dataset dans un autre dataset, un troisième qui copie les données du dataset dans le fichier et un quatrième qui ferme le fichier.

    L'idée est que pendant que le thread 3 écrit dans le fichier, le 1e récupère les données suivantes.

    J'ai joué avec les join pour synchroniser mes threads mais apparemment, c'était pas au point pour la fermeture... donc j'l'ai fait attendre 2 secondes de plus et maintenant ça fonctionne.

    J'suis pas encore au point avec les threads. Faut avouer que c'est la première fois que je les utilise.

    Merci quand même !

    Griftou.
    Kropernic

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

Discussions similaires

  1. [VB.NET] Écriture par colonne streamwriter...?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 15/04/2005, 16h32

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