Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Futur Membre du Club
    Inscrit en
    février 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 126
    Points : 19
    Points
    19

    Par défaut problèmes avec tableau

    Bonjour, je suis confronté à un problème dont je ne comprends pas l'origine. Lorsque j'exécute ce bout de code :

    Code :
    1
    2
    3
    4
    lineString : Array of String;
    ...
    lineString := _in.ReadLine().split(' ');
            Console.WriteLine("caractère 1: "+lineString[0]+" ...");
    j'obtient la sortie suivante:

    caractère 1: ...

    alors qu'avec le code suivant:
    Code :
    1
    2
    3
    4
    5
     
    lineString : Array of String;
    ...
    lineString := _in.ReadLine().split(' ');
            Console.WriteLine("caractère 1: "+in.ReadLine().split(' ')[0]+" ...");
    j'obtient la sortie que je désire:
    caractère 1:125 ...

    Je ne comprends pas du tout le problème. la méthode Split de la classe string est censée me renvoyer un tableau de String (ce qu'elle fait avec succès). Lorsque j'affecte ma variable lineString de type Array of String, celle-ci n'est pas égale au tableau obtenu par _in.ReadLine().split(' ');...

    Si quelqu'un voit d'où vient le problème (c'est peut être trivial mais débutant en delphi (et delphi prism), je ne voit pas d'où vient le problème.

    Par avance merci.

    Cordialement,

  2. #2
    Futur Membre du Club
    Inscrit en
    février 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 126
    Points : 19
    Points
    19

    Par défaut

    Je rajoute qu'en initialisant mon tableau avec la taille du tableau que renvoie le méthode ça marche (mais ça n'est pas pertinent):

    Code :
    1
    2
    3
    4
    5
    lineString : Array of String;
    ...
    lineString := new String[_in.ReadLine().split(' ').length];
    lineString := _in.ReadLine().split(' ');
            Console.WriteLine("caractère 1: "+lineString[0]+" ...");
    Cependant cette façon de faire ne me satisfait pas du tout car j'appelle deux fois la méthode ReadLine et du coup le tableau est initialiser avec la taille de la première ligne et prend les valeurs de la seconde ligne ...

    Du coup ça ne marche pas ...

  3. #3
    Futur Membre du Club
    Inscrit en
    février 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 126
    Points : 19
    Points
    19

    Par défaut

    Bon en fait j'ai résolu mon problème, je lisais tout simplement une chaine vide ...

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •