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 :

TStringList et Violation d'accès mémoire


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 32
    Points : 13
    Points
    13
    Par défaut TStringList et Violation d'accès mémoire
    Bonjour,

    J'essaye de faire une procédure en récursif qui parcourt tous mes dossiers et sous dossiers jusqu'à trouver tous les .dll présents. Maintenant j'aimerais enregistrer le chemin de ces .dll dans une TStringList à la sortie de ma procédure mais j'ai toujours droit à l'erreur de la violation d'accès à l'adresse xxxxxx.
    J'ai essayé plusieurs choses, comme passer ma procédure en fonction ou encore passer par des tableaux dynamiques mais l'erreur est toujours la même.

    Voici ma procédure :

    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
    procedure trouverDll(sDossier : String; SL_Fichier : TStringList);
    var
      SR_Info : TSearchRec;
    begin
      sDossier := IncludeTrailingPathDelimiter(sDossier);
     
      if FindFirst(sDossier + '*', faDirectory, SR_Info) = 0 then
      begin
        repeat
          if (SR_Info.Name <> '.') and (SR_Info.Name <> '..') then
            trouverDll(sDossier + SR_Info.Name, SL_Fichier);
        until FindNext(SR_Info) <> 0;
      end;
     
      if FindFirst(sDossier + '*.dll', faAnyFile, SR_Info) = 0 then
      begin
        SL_Fichier.Add(sDossier + SR_Info.Name);
      end;
      FindClose(SR_Info);
     
    end;
    Et la procédure qui l'appelle :
    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
    procedure TFrm_main.F_Barre_Actions1BB_OkClick(Sender: TObject);
    var
      SL_Source, SL_Dest : TStringList;
      i : Integer;
    begin
      SL_Source.Create;
      try
        trouverDll(Txt_Source.Text, SL_Source);
        i := 0;
        while i < SL_Source.Count do
        begin
          ShowMessage(SL_Source[i]); // Juste pour tester si ça fonctionne
          i := i + 1;
        end;
      finally
        SL_Source.Free;
      end;
    end;
    J'espère que vous pourrez m'aider, merci d'avance !

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Remplace

    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SL_Source := TStringList.Create;

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 32
    Points : 13
    Points
    13
    Par défaut
    Rho alors là j'ai honte ! Désolée d'avoir créé un sujet juste pour ça ...
    En plus il me surligne la ligne à chaque fois et je comprenais pas pourquoi

    Merci beaucoup

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

Discussions similaires

  1. Violation d'accès mémoire TIdFTP
    Par ac/dc dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/08/2011, 11h59
  2. violation d'acces mémoire
    Par yesil08 dans le forum C++Builder
    Réponses: 15
    Dernier message: 03/04/2008, 15h25
  3. Violation accès mémoire
    Par BenjaminLustrement dans le forum C
    Réponses: 9
    Dernier message: 09/06/2006, 10h07
  4. Violation d'acces apres Execute
    Par SegmentationFault dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 10/08/2004, 16h23
  5. Violation d'accès apres Close
    Par SegmentationFault dans le forum Bases de données
    Réponses: 3
    Dernier message: 05/07/2004, 16h46

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