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

Langage Delphi Discussion :

Erreur: "Boucle et TStringList"


Sujet :

Langage Delphi

  1. #21
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    Bonsoir,

    je vous conseille d'utiliser une 3ème liste pour les fichiers installés. initialisée en même temps que installed et dans les mêmes conditions,
    vous y rajouterez les noms de fichiers installés (dans la boucle list).
    Par contre, il est inutile de réécrire le fichier PatcheTXT à chaque tour de la boucle. une fois suffit après la sortie de boucle List.


    Pour ce qui est de la différence entre i et j, c'est normal : essayez de visualiser vos boucles en incrémentant les données quand il se doit.

  2. #22
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Je n'arrive pas a visualiser l'ordre de la boucle et de celle qui ce trouve dedans.

    En ce qui conerne la 3eme Liste je ne vois pas en koi elle sera utile.
    Installed est la liste des fichier deja installé
    List est la liste de tout les fichier.
    Je veux que Les items de la liste soit vérifié avec ceux de Installed et ceux qui sont deja fais il les passe et ceux qu il na pas encore fais il les télécharge et les note ensuite dans la liste Installed pour qu a la prochaine utilisation il soit considéré comme deja installé.

    J'espere que vous avez compris :s

    Je vous remercie de votre aide.

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 38
    Points : 43
    Points
    43
    Par défaut
    Je n'ai pas plonge la tete dans ta boucle mais pour modifier un item d'un TStringList :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaListe[i] := MaListe[i] + ' installed';
    ce qui pourrait servir a marquer tes elements comme telecharges, tu peux aussi tres bien rajouter un simple '*' ou autre.

    Bien sur, a la fin, il faut faire un :
    MaListe.SaveToFile(TonChemin);
    pour sauvegarder les modifications

  4. #24
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    Bonjour,
    bon on va reprendre en commentant

    il ne faut pas oublier la remise à false du flag A en début de boucle 1, sinon, çà ne marchera jamais.


    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
     
    {début boucle 1}
    For I:= 0 To List.Count - 1 Do 
      Begin 
      A := false; {obligatoire}
     
      Stg := Copy(List.Strings[I], 1, Pos('|', List.Strings[I]) - 1);
      {on sélectionne l'item I de la liste, c'est à dire le fichier I + 1} 
     
      {début boucle 2}
      {on va vérifier j fois si le fichier existe}
      {si on le trouve on monte le flag A}
      For J := 0 To Installed.Count - 1 Do 
        If (Stg = Installed.Strings[J]) 
         Then 
          A := True; 
       {Fin Boucle 2 : J = Installed.Count - 1}
      {A ce moment, J n'a plus aucune signification utile}
     
      {On continue boucle 1 :   0 <= I <= List.Count - 1}
      if A 
       then 
        Begin 
     
        End 
      else 
       Fs := TFileStream.Create(ExtractFilePath(Application.ExeName)+Copy(List.Strings[I], 1, Pos('|', List.Strings[I]) - 1),fmCreate); 
       MainForm.IdHTTP.Get(Copy(List.Strings[I], Pos('|', List.Strings[I]) + 1, 128)); 
    {Attention, la boucle commence à 0, les fichiers commencent à 1}
     
       Showmessage('Le patche n°:'+inttostr(I + 1)+' portant le nom: '+stg+' n as pas encore été installé'); 
       Installed.Add(Stg); // on ajoute stg à installed => on augmente la taille de installed pour la prochaine boucle 2
     
      End; 
    {Boucle 1 : fin}
     
    Installed.SaveToFile(PatcheTXT); // inutile de remettre à jour I fois le fichier.
    End;

  5. #25
    Futur Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Je vous remercie énormément je vais pouvoir completer mon application que je vous montrerai volontié si vous le souhaiter :°)

    Merci bjl.

    Romain

  6. #26
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut


    le principal est de comprendre comment fonctionne la boucle

    n'oubliez pas le tag "résolu"

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2010, 15h33
  2. [MySQL] Supprimer les erreurs de syntaxe dues aux quotes
    Par gotenks dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/01/2006, 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