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

Delphi Discussion :

Problème de transfert entre un tableau et un TStringList


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juin 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 9
    Par défaut Problème de transfert entre un tableau et un TStringList
    Bonjour

    J'ai un petit soucis concernant la manipulation de tableau.
    Le but est de pouvoir inserer des lignes dans mon tableau (TabPRG) en fonction du contenu de (TabPIPC).
    Pour se faire, j'utilise un TStringList (temporaire)
    Le problème est que lorsque je veux transferer TabPRG dans mon TStringList à l'aide de la methode .add, rien ne se passe.....????

    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
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    function Tediteur.TriPIPC(TabPrg :array of string; TabPiPc :array of string): TStringArray;
    var
      TempString        :TStringList;           // TStringList temporaire pour faire le classement
      Nb                :integer;               // Indicateur de comptage et de position
      PosLigne          :integer;               // Renvoie le numero de lignes du PI ou PC
      ValCode           :integer;               // sert d'indicateur d'erreur si la chaine n'est pas un entier
      ajeter            :integer;
     
    begin
      TempString := TstringList.Create;
      For Nb := 0 to length(TabPrg)-1 do TempString.Add(TabPrg[Nb]);    // on Recopie le PRG dans le TStringList Temporaire
     
      For Nb := 0 to length(TabPiPc)-1 do                               // on scrute le tableau PIPC
      Begin
        TabPiPc[Nb] := trim(TabPiPc[Nb]);                               // on supprime tous les caractères de controle de la ligne
        Val(TabPiPc[Nb], PosLigne, ValCode);                            // on convertit la chaine en sa valeur entiere
        if ValCode = 0 then                                             // si c'en est une ValCode = 0
        begin
          TempString.Insert(PosLigne-65,TabPiPc[Nb+1]);
        end;
      end;
    end;

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Ce n'est pas Length que tu dois utliser mais High pour connaitre la taille de ton tableau.
    A mon avis ca corrigera pas mal de tes problèmes
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre habitué
    Inscrit en
    Juin 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 9
    Par défaut
    merci pour l'info.
    Malheureusement cela n'a pas résolu mon probleme de transfert de tableau dans le TStringList....

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Est ce que en fesant un pas à pas et en modifiant un peu la position de ton code, tu passes dans le première for ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     For Nb := 0 to high(TabPrg)-1 do 
      TempString.Add(TabPrg[Nb]);
    Sinon ta fonction elle retourne quoi ? car il n'y pas de Result := ... dans ton code.
    Peut être pour cela que tu n'as pas de resultat.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre habitué
    Inscrit en
    Juin 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 9
    Par défaut
    Pour répondre a ta question Malatar.

    je passe bien dans ma boucle for.
    pour la voir défiler pas à pas je l'ai même éclatée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For Nb := 0 to high(TabPrg)-1 do
      begin
        TempString.Add(TabPrg[Nb]);    // on Recopie le PRG dans le TStringList Temporaire
      end;
    lorsque je promène le pointeur de la souris (en execution et debug) au dessu de TabPrg je visualise bien son contenu, lorsque je le passe au dessu de TempString celui si est toujours TempString=() que je soit au début de la boucle ou à la fin.
    Par contre le truc qui me chagrine c'est que je n'arrive pas à visualiser ni la valeur de "Nb" ni le contenu de la chaine TabPrg[Nb]...

    Concernant le resultat rendu, pour l'instant je n'ai pas fini de codé la partie qui va me le rendre.

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Il ne faut pas trop se fier à Delphi quand tu passes le pointeur au dessus d'une valeur pour voir son contenu depuis D2005 ca bug à mort et c'est pas fiable (j'ai eu pas mal de surprise à cause de ça )

    Le mieux c'est qu'apres ta boucle rajoute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    showmessage(TempString.text);
    Tu seras vite fixé s'il y a des données ou non dans le TStringList
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/08/2014, 14h43
  2. Problème de transfert de variable entre Flash et PHP
    Par megartaud dans le forum Intégration
    Réponses: 3
    Dernier message: 06/04/2008, 01h25
  3. [Designer] Problème de transfert de données entre modul
    Par BILLYPATOU dans le forum Designer
    Réponses: 11
    Dernier message: 09/03/2004, 18h15
  4. Réponses: 25
    Dernier message: 16/07/2003, 20h41
  5. Problème de transfert FTP sous IIS
    Par thanathz dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h27

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