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++ Discussion :

problème utilisation ofstream


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut problème utilisation ofstream
    Bonjour à toutes et à tous,

    Je vais vous exposer mon petit problème.
    Avant toute chose, je suis loin d'être un expert en C++. On va plutôt dire le contraire.

    Alors voici ce qui me donne l'honneur de venir vous voir:

    Je travaille avec C++ builder 6.

    J'ai un objet TEdit et un bouton. Le texte du TEdit est un chemin style C:\blabla.truc
    Lorsque l'utilisateur appuye sur le bouton, le programme va ouvrir le fichier en suivant ce chemin et doit y sauver des informations.

    Là se situe mon problème. J'ai essayé 2 méthodes. Dans la première, il me retourne une erreur à la compilation, dans la seconde il sauve une série de caractères étranges (mais il compile).

    méthode 1:

    using namespace std;

    String Text;

    Moyenneur->Preferences.BD_cours = Edit1->Text;
    Moyenneur->Preferences.BD_eleves = Edit2->Text;
    Moyenneur->Preferences.BD_classes = Edit3->Text;
    Moyenneur->Preferences.BD_cotes = Edit4->Text;
    Text = Edit1->Text ;

    ofstream Out("C:\Preferences.moy", ios::trunc);
    if (Out.is_open())
    {
    Out<<Text<<endl;
    Out.close();
    }
    }

    Erreur à la compilation : E2094 Operator '<<' not implemented in type 'ofstream' for arguments of type 'AnsiString'

    méthode 2:
    using namespace std;

    Moyenneur->Preferences.BD_cours = Edit1->Text;
    Text = Edit1->Text ;

    ofstream Out("C:\Preferences.moy", ios::binary|ios::trunc);
    if (Out.is_open())
    {
    Moyenneur->ComboBox1->Text = Text;
    Out.write((char *)&Text,Text.Length());
    Out.close();
    }
    }


    Merci pour tout indice qui pourrait m'aider à résoudre cela.

    Cordialement,
    Benoît.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut
    Mmmm,

    En fait, ça vient de me faire tilt.
    J'ai oublié .c_str dans ma méthode 1. avec ,ça fonctionne nettement mieux.

    Par contre, une idée pourquoi ça sauve n'importe quoi pour la méthode 2?

    Merci d'avance.

    Cordialement,
    Benoît.

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Bonjour,
    1- String != std::string
    2- qu'esceque Text??
    tu caste un pointeur objet en char*... il t'affiche (en gros) donc la mémoire de l'objet. Ce qui ne veut rien dire

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut
    Bonsoir et merci pour la réponse.

    Text est un String comme dans la première méthode.
    J'ai essayé en le définissant std::string, mais alors j'ai une erreur à la ligne
    Text = Edit1->text

    Que faudrait-il écrire à la place?

    Merci d'avance.

    Cordialement,
    Benoît.

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par vanu678 Voir le message
    Bonsoir et merci pour la réponse.

    Text est un String comme dans la première méthode.
    J'ai essayé en le définissant std::string, mais alors j'ai une erreur à la ligne
    Text = Edit1->text

    Que faudrait-il écrire à la place?

    Merci d'avance.

    Cordialement,
    Benoît.
    cherche la doc de String que tu utilise.
    Chercje une methode qui retour un const char* ou un char *

Discussions similaires

  1. Problème utilisation DLL
    Par Tub-95 dans le forum MFC
    Réponses: 4
    Dernier message: 02/11/2005, 12h00
  2. [Tomcat][Spring] Problème utilisation mémoire
    Par Wutintin dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/09/2005, 14h57
  3. [JSTL] [EL] Problème utilisation <c:out>
    Par XavierL dans le forum Taglibs
    Réponses: 7
    Dernier message: 14/08/2005, 20h12
  4. (Problème) Utilisation de l'API mySQL [Delphi 2005 Perso]
    Par will-scs dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/08/2005, 18h26
  5. [JAR]Problème utilisation manifest et jar
    Par doudine dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 07/01/2005, 10h21

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