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

C++Builder Discussion :

Problème de delete TIniFile


Sujet :

C++Builder

  1. #1
    Membre habitué Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 158
    Points
    158
    Par défaut Problème de delete TIniFile
    Bonjour,

    J'utilise un TIniFile pour enregistrer des adresse IP.
    Je l'utilise comme suit :
    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
    BSTR TGestionnaireCOMImpl::findAvailableServer()
    { 
    	AnsiString texte;
    	WideString strTmp;
     
    	TIniFile * iniFile = new TIniFile(ChangeFileExt(Application->ExeName,".INI"));
     
    	TStringList * section = new TStringList;
    	iniFile->ReadSection("serverAddress", section);
     
    	if(section->Count != 0)
    	{  
    		strTmp = iniFile->ReadString("serverAddress", section->Count-1, "");
     
    		iniFile->DeleteKey("serverAddress", section->Count-1);
     
    		iniFile->Free();
     
    		texte = "Remove: ";
    		texte += strTmp;
    		Form3->Memo1->Lines->Add(texte);
    	}
    	else
    	{	
    		strTmp = "";
     
    		texte = "Pas de serveur dispo";
    		texte += strTmp;
    		Form3->Memo1->Lines->Add(texte);
        }
     
    	delete section;
    	delete iniFile;
     
    	return strTmp;
    }
    A l'exécution, le programme plante ici au niveau du :
    Je ne comprend pas pourquoi.
    Utiliserais-je mal cette classe?

  2. #2
    Membre actif Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Points : 216
    Points
    216
    Par défaut
    enleve le :

    et sa devrais marcher, jutilise ausi les fichier ini je fais comme suis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    try{
    IniFile = new TIniFile("Fichier.ini");
    //ouverture et recherche des clé ke je ve
    //ou ecriture ou tous ce que tu ve faire
    }
    __finally
    {
    delte IniFile;
    }
    Cordialement Baxter
    Tous Probleme a sa solution. Sinon il a le bouton magique : . Et surtous :
    Et ne pas oublier :

  3. #3
    Membre régulier Avatar de jehrikhan
    Inscrit en
    Mars 2008
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 90
    Points : 89
    Points
    89
    Par défaut
    C'est tout simplement a cause du :
    Si on regarde l'aide pour la fonction Free() :
    Détruit un objet et, si nécessaire, la mémoire associée.

    __fastcall Free();

    Description

    N'appelez pas la méthode Free d'un objet. Utilisez à la place le mot-clé delete qui appelle Free pour détruire un objet. Free appelle automatiquement le destructeur de l'objet si la référence objet n'est pas NULL.
    Cette fonction détruit l'objet et la mémoire associée.
    Donc lorsque tu fais ton delete, tu essaye de supprimer un objet qui n'existe plus, donc plantage..

  4. #4
    Membre habitué Avatar de sylvain.cool
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Points : 158
    Points
    158
    Par défaut
    C'etait ça.
    Maintenant, ça marche nickel.

    Merci beaucoup.

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

Discussions similaires

  1. Problème de delete d'une ligne Excel
    Par Charlie47 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 24/08/2006, 14h55
  2. Problème RunSql Delete
    Par lito74 dans le forum Access
    Réponses: 5
    Dernier message: 29/05/2006, 13h13
  3. [version 8.1] problème de delete massif
    Par XPierrot dans le forum DB2
    Réponses: 6
    Dernier message: 12/01/2006, 16h01
  4. [VB]problème avec DELETE
    Par jogu dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/01/2006, 10h53
  5. Problème de DELETE
    Par WinZy dans le forum Access
    Réponses: 2
    Dernier message: 21/09/2005, 12h58

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