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

  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 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
    Bonjour,
    Effectivement Mangacker j'ai aussi eu ce petit soucis.
    J'ai pas relancer de suite Gilles, mais aprés essais j'en ai déduit ce qu'il vient de te dire.

    Encore Merci Gilles

  9. #9
    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
    ok merci je test

    bye

  10. #10
    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
    c'est bon ça marche

    maintenant nouvelle question

    comment faire pour mettre dans le TStringList le contenu du fichier txt??

  11. #11
    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
    On charge un fichier par LoadFromFile e.g.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SL->LoadFromFile("essai.txt");
    À bientôt
    Gilles

  12. #12
    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
    ok merci

    j'avais essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SL->Strings = LoadFromFile(essai.txt);
    bye

    (ps: pour moi tu peux mettre résolu)

  13. #13
    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
    Bon je vais continuer dans le raisonnement ... pour faire le tour de la question.
    Comment fait on pour lire une ligne spécifique dans un fichier.
    J'ai essayé en gardant la même logique :
    SL->Strings[0]=Read(0,Chemin+"Selection.sel ");
    ou
    SL->Strings[0]=Load(0,Chemin+"Selection.sel ");

    Mais ça n'a pas marché...

  14. #14
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    Pour afficher le contenu de la seconde ligne par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TStringList *SL;
    SL=new TStringList;
    SL->LoadFromFile("essai.txt");
    // Affiche le contenu de la ligne 2
    ShowMessage(SL->Strings[1]);
    delete SL;
    Après, ne sachant pas trop ce que tu veux faire , je ne peux t'en dire plus
    En espérant t'avoir aidé.
    A+

  15. #15
    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
    Salut,
    ok merci ero-sennin, en fait je voulais faire une sorte de fichier ini pour mon logiciel mais sans qu'il est l'extension .ini
    Dans ta solution comment on extrait du showmessage la valeur de la ligne correspondante ?

    De tout manière j'ai utilisé un fichier .ini désespoir de cause mais bon j'aimerais bien savoir quand même, pour une prochaine fois.
    Merci.

  16. #16
    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
    Dans ta solution comment on extrait du showmessage la valeur de la ligne correspondante ?
    Pourquoi ne voulez-vous pas du fichier ini si pratique ?

    Que voudriez-vous faire ? Avoir des lignes comme dans ini, genre "code valeur" (avec un ou plusieurs espaces qui séparent le code de la valeur), et trouver la valeur en fonction du code ? C'est un programme qu'il faut faire. Il faut lire les lignes une à une, extraire le code, vérifier et extraire la valeur si c'est bon. Je veux bien vous montrer si c'est ça que vous voulez mais franchement c'est réinventer la roue.

    À bientôt
    Gilles

  17. #17
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut jeanmichmuch66
    Dans ta solution comment on extrait du showmessage la valeur de la ligne correspondante ?
    Par exemple comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String a = SL->Strings[1];

  18. #18
    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 pour vos réponses,
    Effectivement j'utilise un fichier .ini qui est fort simple d'utilisation, mais au départ je chercher a faire la même chose dans un fichier avec une extension "perso" afin qu'il ne soit pas modifiable par un simple double clic comme dans un fichier .ini
    Et a ce sujet est il possible de mettre un fichier .ini comme fichier caché et en lecture seule tout en pouvant le modifier, biensur, par mon programme.

    Merci d'avance.

  19. #19
    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
    puisque tu as fait une grande discution sur le sujet j'ai encore une question dans la lancée

    comment connaitre le nombre de lignes d'un fichier texte??


    merci
    bye

  20. #20
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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