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 :

écrire dans un fichier texte


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    En recherche d'emploi sur la région de Toulouse
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En recherche d'emploi sur la région de Toulouse
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Billets dans le blog
    1
    Par défaut écrire dans un fichier texte
    Bonjour,
    dans mon programe j'utilise un fichier externe a mon prog pour y stocker des infos.
    je le crée comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    AnsiString Chemin;
    ForceDirectories(Chemin);
    TFileStream * file = new TFileStream(Chemin+"Selection.sel",fmCreate);
    delete file;
    Mais j'aimerais inclure en "ligne 0"(par exemple) un texte, j'arrive a écrire tout le contenu grace a la fonction SaveToFile mais pour écrire a une ligne bien précise .... je sais pas faire.
    Est ce que quelqu'un aurait la solution svp.
    Merci

  2. #2
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Pour un fichier Texte, on passe plutôt par un TStringList, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TStringList *SL;
     
    SL=new TStringList;
    SL->Add("j'ajoute une ligne de texte");
    SL->Add("j'ajoute une ligne de texte");
    SL->SaveToFile("essai.txt");
    delete SL;
    À bientôt
    Gilles

  3. #3
    Membre confirmé

    Homme Profil pro
    En recherche d'emploi sur la région de Toulouse
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En recherche d'emploi sur la région de Toulouse
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Billets dans le blog
    1
    Par défaut
    Merci Gilles (si tu permets que je t'appèle ainsi)
    Merci de venir encore a ma rescousse.
    Mais avec ta solution il n'est pas possible de selectionner la ligne a modifier ou a inserer.
    Merci encore.

  4. #4
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Citation Envoyé par jeanmichmuch66 Voir le message
    Merci Gilles (si tu permets que je t'appèle ainsi)
    Merci de venir encore a ma rescousse.
    Mais avec ta solution il n'est pas possible de selectionner la ligne a modifier ou a inserer.
    Merci encore.
    Mais si, vous avez l'instruction Insert e.g. SL->Insert(0,"bonjour") insère en début de fichier et pour modifier la ligne n on écrit SL->Strings[n]="nouvelle ligne".

    À bientôt
    Gilles

  5. #5
    Membre confirmé

    Homme Profil pro
    En recherche d'emploi sur la région de Toulouse
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En recherche d'emploi sur la région de Toulouse
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Billets dans le blog
    1
    Par défaut
    Encore un grand Merci Gilles.

  6. #6
    Membre éclairé Avatar de Mangacker
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 452
    Par défaut
    je sais que ça se fait pas tellement mais comme le sigle résolu n'est pas la je le fais quand meme... na

    Citation Envoyé par Gilles Louïse Voir le message
    Mais si, vous avez l'instruction Insert e.g. SL->Insert(0,"bonjour") insère en début de fichier et pour modifier la ligne n on écrit SL->Strings[n]="nouvelle ligne".

    À bientôt
    Gilles
    lorsque j'utilise ton code Gilles j'ai un message d'erreur qui je dit:
    Indice de liste hors limite (0)
    si le numéro de la ligne est à 0
    Indice de liste hors limite (1)
    si le numéro de la ligne est à 1
    ...


    as-tu une solution??


    bye

  7. #7
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Vous êtes toujours le bienvenu pour poser des questions, si vous n'arrivez pas à faire marcher le code.

    Pour utiliser Insert, il faut qu'il y ait déjà des lignes sinon effectivement vous êtes hors limites. C'est pourquoi, dans mon exemple, j'avais déjà fait des Add. Le premier indice des Insert est 0 à condition qu'il y ait dejà des lignes (ou au moins une c'est-à-dire l'indice 0 où l'insertion va avoir lieu). Idem pour Strings[n], vous invoquez une ligne qui doit exister.

    À bientôt
    Gilles

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 439
    Par défaut
    Citation Envoyé par jeanmichmuch66 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TFileStream * file = new TFileStream(Chemin+"Selection.sel",fmCreate);
    delete file;
    Sans lien direct avec la question (je ne connais pas TFileStream), pourquoi créer TFileStream sur le free-store (avec new)?

    Pourquoi pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TFileStream file (Chemin+"Selection.sel",fmCreate);
    tout simplement?

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

Discussions similaires

  1. Serializer une ArrayList ou écrire dans un fichier texte?
    Par yvon_huynh dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 11/07/2006, 19h49
  2. Réponses: 20
    Dernier message: 27/06/2006, 17h42
  3. Réponses: 32
    Dernier message: 17/05/2006, 16h03
  4. [Delphi] Comment écrire dans un fichier texte ?
    Par Mickey.jet dans le forum Débuter
    Réponses: 2
    Dernier message: 01/04/2006, 14h00
  5. [DOS] Commande pour écrire dans un fichier texte
    Par Jeff87-01 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 28/03/2006, 01h04

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