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 :

Comment récupérer une chaine d'un fichier pour afficher dans un EditBox ?


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut Comment récupérer une chaine d'un fichier pour afficher dans un EditBox ?
    Bonjour, mon problème est que j'ai un fichier texte avec plein de données (lettres+chiffres). J'aimerai récupérer une zone (une chaine) dans ce fichier pour l'afficher dans un EditBox.
    SVP, dites moi comment je dois procéder ?
    A bientôt !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Par défaut
    c est surement dans la FAQ

    http://cpp.developpez.com/faq/bcb/?p...neslirefichier

    loadfromfile et edit1->Text=

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut
    Merci bien cedni, mais mon problème n'est pas d'afficher un seul caractère dans l'EditBox.
    Je voudrais afficher plusieurs caractères se trouvant dans le milieu du fichier texte (connaissant la position de ces caractères) par exemple.
    Besoin d'aide svp !

  4. #4
    Membre éclairé 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
    Par défaut
    pour un fichier text le mieux c'est la TStringList


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
       TStringList *slList = new TStringList(); // creation de la list
     
         slList->LoadFromFile("fichier.txt");  //charge le fichier dans la list
     
         //ensuite on affiche le ligne 10 par exemple dans l'edit
     
        Edit1->Text = slList->Strings[10];
     
       delete slList;  //delete de la list
    si ta d'autre question sur la stringlist hesite pas

    chaque ligne de ton fichier correspond a une string dans ta stringlist

    Cordialement Baxter

  5. #5
    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
    Par défaut
    Citation Envoyé par Baxter67 Voir le message
    pour un fichier text le mieux c'est la TStringList
    Faux, ça dépend ce que tu veut en faire, maintenant je suis d'accord que ça aide pas mal et dans le cas présent ça pourrait être très utile/efficace

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut
    OK, j'ai bien compris la solution de Baxter67, mais je suis pas sûr que ça soit cela qu'il me faut.
    Est ce que je peux vous montrer mon code, ça sera plus facile pour comprendre ce que je veux ?

  7. #7
    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
    Par défaut
    Bien sur, c'est même recommandé

  8. #8
    Membre éclairé 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
    Par défaut
    bien sur envoie nous le code

    c'est toujours plus parlant

    Cordialement Baxter

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut
    Alors voila le code lorsque j'appuie sur ouvrir le fichier :

    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
    char buf [65535];
    
    	FormClient->EditNom->Refresh();
    
    	fichier = fopen(DOC.c_str(), "r+");
    	if(fichier==NULL )
    	{
    		ShowMessage("erreur open");
    	}
    
    
    	fread (buf,(size_t)1,sizeof (buf),fichier);
    
    
    	FormClient->EditNom->Text = buf de 11 à 14;
    Et dans le fichier :
    TYPE F: ST
    ratp
    1071208

    (en rouge ce que ca doit afficher dans l'EditBox)

    De plus, je pense que ce fichier doit sauter des lignes (par exemple entre ST et ratp) quand je l'ouvre avec notepad++ donc peut etre qu'il y a une fonction pour ça, mais quand je l'ouvre avec bloc notes c'est tout à la suite.
    Comprend pas

  10. #10
    Membre éclairé 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
    Par défaut
    esseye de le charger dans uns stinglist et apres tu fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      int iNbr = slList->Count;
    et dis nous combien ta de ligne

  11. #11
    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
    Par défaut
    Si tu n'utilise plus le contenu de ton buffer après avoir mis le texte dans ton Edit tu peut mettre ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    buf[15] = 0x00;
    FormClient->EditNom->Text = buf[11];
    sinon tu peut faire une copie de ton buf dans un autre buffer pour gardé en mémoire le contenu du fichier et faire la même chose que précédemment mais avec le buffer de copie

    pour notepad++ et notepad, la différence doit être qu'il n'interprètent pas de la même façon les \n et \r

  12. #12
    Membre éclairé 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
    Par défaut
    moi je resterais sur l'idée du string list

    la charger dans un ansistring et apres utiliser les methode de l'ansistring comme par exemple substring

    sa serais pe etre plus simple que de travailer avec des buffer

    je sais pas trop

    cordialement Baxter

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut
    Bon j'ai fait ce qu'a dit Baxter et j'obtiens 261 lignes, et après en avoir supprimées j'en ai toujours 261.

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par défaut
    C'est OK les gars, merci beaucoup pour votre aide, j'ai retenu la solution de Baxter (désolé Pottiez) et ça roule.
    A bientôt j'éspère !




  15. #15
    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
    Par défaut
    Tu n'as pas as être désolé, je ne fait que proposer une solution, si celle de Baxter te convient c'est parfais

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

Discussions similaires

  1. [RegEx] comment récupérer une chaine entre deux mots
    Par mat8883 dans le forum Langage
    Réponses: 3
    Dernier message: 14/11/2012, 19h29
  2. Comment récupérer une chaine de caractère selon son début et sa fin?
    Par neo62matrix dans le forum Général Python
    Réponses: 3
    Dernier message: 21/03/2012, 10h08
  3. Comment extraire une chaine d'un fichier texte en ASCII
    Par tim91700 dans le forum Débuter
    Réponses: 6
    Dernier message: 30/03/2011, 22h21
  4. Réponses: 5
    Dernier message: 16/03/2011, 09h46
  5. Réponses: 6
    Dernier message: 03/12/2009, 12h24

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