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

[Projet] Programme pour statistiques de fichiers textes


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 81
    Points : 54
    Points
    54
    Par défaut [Projet] Programme pour statistiques de fichiers textes
    Bonjour

    Bon voilà, j'ai un projet en C++ (que je viens de débuter) en utilisant visual studio 2008 qui consiste à créer une application permettant de donner les statistiques (nombres de lettres, nombre de paragraphes, points etc... (les statistiques à choisir sont optionnelles)) d'un fichier de type texte (je crois que je vais choisir: .txt ; .doc et .pdf)

    Donc pour commencer je veux créer une formulaire qui s'ouvre à partir d'un appui sur un bouton pour ouvrir une fenêtre de "parcourir" (comme la plupart des application où on a besoin de parcourir les différents dossiers pour ouvrir un fichier) et limiter le type des fichiers qu'on peut choisir aux trois types que j'ai choisit et sa lecture dans un second temps en appuyant sur un autre bouton (qui existe dans la fenêtre de parcours), c'est très courant dans les applications qu'on utilisent régulièrement mais je n'ai aucune idée comment le faire...

    Comme je viens de débuter et que je n'ai pas une grande idée de ce que visual c++ 2008 pourra m'offrir, je me demande s'il y a des fonctions prédéfinis qui me permettent de faire cela?

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour,
    Quoique possible en utilisant directement l'API Win32, construire une application avec une I.H.M. (des fenêtres, des boutons, etc.) est plus facile si tu utilises un framework intégré. Globalement, il y en a 3 :
    -> Les M.F.C. : il s'agit du framework proposé par Microsoft et disponible uniquement avec les versions payantes de Visual Studio. Tu peux trouver une F.A.Q. ici et des tutoriels ici.
    -> Qt : il s'agit d'un framework multiplateforme proposé par Nokia. Qt possède une rubrique ici.
    ->wxWidgets: il s'agit aussi d'un framework multiplateforme gratuit. Tu peux trouver un forum dédié ici et des tutoriels ici.
    Il te faut choisir un framework, ensuite te renseigner sur celui-ci et la réponse devrait venir (presque) toute seule. Quand à savoir quel est le meilleur framework , et bien, c'est une question de gout qui ne peut qu'aboutir à un troll.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 81
    Points : 54
    Points
    54
    Par défaut
    Salut,
    Merci pour la réponse mais est ce que la différence entre les différents framework que tu m'a proposé est que le MFC est unique à windows et les autres permet un développement sur d'autres plateformes (comme linux, unix etc...)? et est ce que toutes ces framework pourraient être utilisé dans visual studio 2008 (version complète) ?

    (J'ai pas très bien compris les fonctionnalités que chacun pourra me fournir en gros )

    Merci d'avance

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par marouane87 Voir le message
    Salut,
    Merci pour la réponse mais est ce que la différence entre les différents framework que tu m'a proposé est que le MFC est unique à windows et les autres permet un développement sur d'autres plateformes (comme linux, unix etc...)?

    C'est une des différence. Ce n'est pas la seule (par exemple mes MFC ne sont pas vraiment orientées objet, et obligent régulièrement à repasser par la plate-forme win32. Il y a aussi des différences dans les fonctionnalités offertes et les licences.
    Citation Envoyé par marouane87 Voir le message
    et est ce que toutes ces framework pourraient être utilisé dans visual studio 2008 (version complète) ?
    Oui

    Par contre, découvrir un framework d'IHM, surtout quand on débute en programmation (j'ai l'impression que c'est ton cas, corrige moi si je me trompe), est une tâche assez ardue et longue. Personnellement, je te conseillerais tout d'abord d'écrire ton logiciel en mode texte, sans interface (par exemple le nom de fichier serait lu depuis la ligne de commande), et sans prise en compte des formats de fichier complexes (un format .doc, .docx ou .pdf n'est pas aisé à lire). Une fois ce cœur réalisé, il sera alors temps de lui ajouter des fonctions annexes, comme l'IHM ou la prise en compte d'autres formats en entrée, et tu auras alors un peu plus d'expérience pour le faire.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 81
    Points : 54
    Points
    54
    Par défaut
    Salut,

    Oui je suis débutant mais je connais déjà quelques langages de programmations (C, pascal, assembleur, matlab etc.. mais pas à la perfection et je n'ai pas fais d'interfaces graphiques), la plupart des programmes que j'ai écrit sont assez simples, donc je ne suis pas un expert non plus
    Je ne crois pas que ça soit utile d'écrire un code et lui ajouter une interface graphique ultérieure (j'ai déjà essayer ça avec C dans un ancien projet mais ça n'était pas efficace et alors je l'ai fait avec javascript avec l'aide d'un ami ) et c'est pour cela je crois que programmer les différentes fonctions directement avec les boutons sera mieux, mais à vous de me dire c'est quoi la meilleur méthodes (c'est juste à avis personnel et pour que vous puissiez évaluer mon niveau dans la programmation )

    mais voici à priori un petit algorithme que j'ai déjà en tête:

    Lecture du fichier
    Si fichier PDf
    alors
    fonction de lecture de PDF
    fonction de caractéristiques du fichier PDF
    Sinon
    si fichier .doc
    alors
    fonction de lecture de .doc
    fonction de caractéristiques du fichier doc
    sinon
    si fichier .txt
    fonction de lecture de .txt
    fonction de caractéristiques du fichier txt

    Si je n'arrive pas à limiter la sélection des fichiers aux formats que j'ai choisit dans la formulaire de sélection bien entendu j'ajouterai un message d'erreur...

    Et je suis tout à fait d'accord, c'est pas vraiment d'orienter objet puisque il n'y aura pas le travail classique de définition des différentes classes et méthodes (sauf s'il est nécessaire dans le programme principal malgré que j'en doute)

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par marouane87 Voir le message
    Je ne crois pas que ça soit utile d'écrire un code et lui ajouter une interface graphique ultérieure (j'ai déjà essayer ça avec C dans un ancien projet mais ça n'était pas efficace et alors je l'ai fait avec javascript avec l'aide d'un ami ) et c'est pour cela je crois que programmer les différentes fonctions directement avec les boutons sera mieux
    C'est un des principes architecturels de base de séparer la partie IHM de la partie moteur d'une application. Pour plein de raisons (pouvoir utiliser le moteur dans un autre contexte (tests unitaires, au sein d'un moteur plus global, dans un environnement où l'IHM n'est pas possible, ou pas souhaitable...), simplifier les deux codes et se concentrer sur une chose à la fois, réprtir le développement entre deux développeurs ayant des points forts différents...).
    Citation Envoyé par marouane87 Voir le message
    mais voici à priori un petit algorithme que j'ai déjà en tête:

    Lecture du fichier
    Si fichier PDf
    alors
    fonction de lecture de PDF
    fonction de caractéristiques du fichier PDF
    Sinon
    si fichier .doc
    alors
    fonction de lecture de .doc
    fonction de caractéristiques du fichier doc
    sinon
    si fichier .txt
    fonction de lecture de .txt
    fonction de caractéristiques du fichier txt

    Si je n'arrive pas à limiter la sélection des fichiers aux formats que j'ai choisit dans la formulaire de sélection bien entendu j'ajouterai un message d'erreur...

    Et je suis tout à fait d'accord, c'est pas vraiment d'orienter objet puisque il n'y aura pas le travail classique de définition des différentes classes et méthodes (sauf s'il est nécessaire dans le programme principal malgré que j'en doute)
    Ça ne l'est pas, présenté comme tu dis, mais présenté comme tu dis on ne voit pas vraiment d'architecture de quelque ordre que ce soit. Par exemple, tu présente 3 fois une notion d'extraction de caractéristiques. N'est-ce pas la même chose dans les 3 cas ? Si ça diffère, de quelle manière est-ce que ça diffère ?

    Tu parlais d'options d'analyse, comment vas-tu organiser ton algorithme pour exécuter telle ou telle option ? Y a-t-il du travail à réaliser commun à deux options ?...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 81
    Points : 54
    Points
    54
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    C'est un des principes architecturels de base de séparer la partie IHM de la partie moteur d'une application. Pour plein de raisons (pouvoir utiliser le moteur dans un autre contexte (tests unitaires, au sein d'un moteur plus global, dans un environnement où l'IHM n'est pas possible, ou pas souhaitable...), simplifier les deux codes et se concentrer sur une chose à la fois, réprtir le développement entre deux développeurs ayant des points forts différents...).
    Je comprends, j'ai voulu faire ainsi depuis le début mais je n'ai pas trouver une architecture d'algorithme me permettant de faire tout ce qui est demandé

    Citation Envoyé par JolyLoic Voir le message
    Ça ne l'est pas, présenté comme tu dis, mais présenté comme tu dis on ne voit pas vraiment d'architecture de quelque ordre que ce soit. Par exemple, tu présente 3 fois une notion d'extraction de caractéristiques. N'est-ce pas la même chose dans les 3 cas ? Si ça diffère, de quelle manière est-ce que ça diffère ?

    Tu parlais d'options d'analyse, comment vas-tu organiser ton algorithme pour exécuter telle ou telle option ? Y a-t-il du travail à réaliser commun à deux options ?...
    Je crois que la fonction de lecture des trois types de fichiers en C++ diffèrent non?
    Normalement après la lecture suivant le type choisit sera la condition suivant laquelle l'analyse sera faite...

  8. #8
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Salut,
    Citation Envoyé par marouane87 Voir le message
    Je crois que la fonction de lecture des trois types de fichiers en C++ diffèrent non?
    Normalement après la lecture suivant le type choisit sera la condition suivant laquelle l'analyse sera faite...
    Il devrait, en fait, y avoir trois étapes distinctes:
    • La sélection et l'ouverture du fichier (certains fichier pouvant être ouverts en mode par défaut "texte", d'autres devant être ouvert en mode "binaire", même si les deux types sont très mal nommés)
    • La lecture du contenu avec la suppression des éléments "parasites" propres au format (tout ce qui concerne les informations purement typographiques (gras, souligné, centré, aligné à gauche ou à droite, ...) et la création d'un "arbre syntaxique".
    • L'analyse de l'arbre obtenu
    De ces trois étapes, seules les deux premières sont susceptibles d'être adaptées selon le type de fichier que tu souhaites analyser.

    Et encore, il n'est pas exclu que la lecture et l'analyse du contenu du fichier puissent être récupérées en tout ou en partie selon les formats utilisés.

    Par contre, la dernière peut être tout à fait commune, étant donné que l'arbre que tu aura créé sera commun quel que soit le fichier
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  9. #9
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 81
    Points : 54
    Points
    54
    Par défaut
    En effet, c'est ce que j'aurai demandé l'aide pour le faire, car je ne connais s'il existe des fonctions prédéfinis qui me permettent de le faire, mais avant ça je dois faire le formulaire de parcours des dossiers (en limitant le choix des fichiers aux trois formats choisir) et ensuite appliquer la fonction de lecture au bouton adéquat dans la formulaire de recherche

  10. #10
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Citation Envoyé par marouane87 Voir le message
    En effet, c'est ce que j'aurai demandé l'aide pour le faire, car je ne connais s'il existe des fonctions prédéfinis qui me permettent de le faire, mais avant ça je dois faire le formulaire de parcours des dossiers (en limitant le choix des fichiers aux trois formats choisir) et ensuite appliquer la fonction de lecture au bouton adéquat dans la formulaire de recherche
    Mais le formulaire IHM est sans aucun doute ce qu'il y a de plus facile à faire dans ce projet...

    Finalement, une IHM n'est jamais qu'une "ressucée" d'utilisationn de composants strictement classiques...

    Par contre, la composante métier (ce qui a trait à la lecture et à l'analyse des différents types de fichier), c'est ca le réel défi.

    Et, comme l'a fait valoir JolyLoic, il est autrement plus intéressant de relever ce défi en faisant en sorte qu'il soit indépendant de toute bibliothèque d'IHM voire, d'en sortir une application "console" que de vouloir l'incorporer directement au sein de l'utilisation d'une bitliothèque donnée...

    Si, dans trois mois, un an, ou dix, tu décide de changer de bibliothèque d'IHM (pour une raison qui te sera propre mais, que tu considérera d'office comme excellente) et que la partie métier est intégrée dans l'IHM, tu sera obligé de casser entièrement ton code, et de tout réécrire, alors que la partie métier sera exactement pareille...

    Par contre, si la partie métier est faite en dehors de toute utilisation d'une bibliothèque d'IHM, tu peux envisager de changer aussi souvent que tu le veux de bibliothèque d'IHM sans avoir à retoucher une ligne du code de la partie métier...
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  11. #11
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Au niveau Win32, la boîte de sélection de fichier (qui permet de limiter aux trois types qui t'intéressent) est disponible directement : GetOpenFileName. On peut même l'appeler depuis un programme console si besoin.

    Si, ensuite, tu n'as besoin que de cette fenêtre, deux boutons et un champ d'affichage pour les résultats, tu peux soit utiliser les MFC (avec la version payante de Visual Studio), soit utiliser directement l'API Win32 (gérable pour peu de contrôles, et cela semble être ton cas).
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  12. #12
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 81
    Points : 54
    Points
    54
    Par défaut
    Merci beaucoup

    (j'utiliserai ce sujet pour discuter ce petit projet avec vous et je le marquerai comme Résolu une fois terminé )

  13. #13
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 81
    Points : 54
    Points
    54
    Par défaut
    Salut

    J'ai donc voulu utilisé la fonction OpenFileName, j'ai commencer un projet : windows forms application et j'ai fais une zone texte (normalement pour afficher le chemin d'accès final du fichier après avoir explorer les différentes fenêtre pour le trouvé) et un bouton pour commencer l'exploration et voilà le code que j'ai obtenue:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    #pragma once
     
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
     
     
    namespace Statistiques {
     
    	/// <summary>
    	/// Description résumée de Statistiques
    	///
    	/// AVERTISSEMENT*: si vous modifiez le nom de cette classe, vous devrez modifier la
    	///          propriété 'Nom du fichier de ressources' de l'outil de compilation de ressource managée
    	///          pour tous les fichiers .resx dont dépend cette classe. Dans le cas contraire,
    	///          les concepteurs ne pourront pas interagir correctement avec les ressources
    	///          localisées associées à ce formulaire.
    	/// </summary>
    	public ref class Statistiques : public System::Windows::Forms::Form
    	{
    	public:
    		Statistiques(void)
    		{
    			InitializeComponent();
    			//
    			//TODO*: ajoutez ici le code du constructeur
    			//
    		}
     
    	protected:
    		/// <summary>
    		/// Nettoyage des ressources utilisées.
    		/// </summary>
    		~Statistiques()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	private: System::Windows::Forms::TextBox^  textBox1;
    	private: System::Windows::Forms::Button^  button1;
    	protected: 
     
    	private:
    		/// <summary>
    		/// Variable nécessaire au concepteur.
    		/// </summary>
    		System::ComponentModel::Container ^components;
     
    #pragma region Windows Form Designer generated code
    		/// <summary>
    		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
    		/// le contenu de cette méthode avec l'éditeur de code.
    		/// </summary>
    		void InitializeComponent(void)
    		{
    			this->textBox1 = (gcnew System::Windows::Forms::TextBox());
    			this->button1 = (gcnew System::Windows::Forms::Button());
    			this->SuspendLayout();
    			// 
    			// textBox1
    			// 
    			this->textBox1->Location = System::Drawing::Point(19, 22);
    			this->textBox1->Name = L"textBox1";
    			this->textBox1->Size = System::Drawing::Size(182, 20);
    			this->textBox1->TabIndex = 0;
    			this->textBox1->TextChanged += gcnew System::EventHandler(this, &Statistiques::textBox1_TextChanged);
    			// 
    			// button1
    			// 
    			this->button1->Location = System::Drawing::Point(96, 169);
    			this->button1->Name = L"button1";
    			this->button1->Size = System::Drawing::Size(78, 36);
    			this->button1->TabIndex = 1;
    			this->button1->Text = L"button1";
    			this->button1->UseVisualStyleBackColor = true;
    			this->button1->Click += gcnew System::EventHandler(this, &Statistiques::button1_Click);
    			// 
    			// Statistiques
    			// 
    			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    			this->ClientSize = System::Drawing::Size(284, 262);
    			this->Controls->Add(this->button1);
    			this->Controls->Add(this->textBox1);
    			this->Name = L"Statistiques";
    			this->Text = L"Statistiques";
    			this->ResumeLayout(false);
    			this->PerformLayout();
     
    		}
    #pragma endregion
    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    				 textBox1=button1_Click.GetOpenFilename("texte Files (*.txt),*.txt")
    			 }
    	private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {
    			 }
    	};
    }

    En voulant le compiler j'ai obtenue les erreurs suivantes:

    Erreur 1 error C2228: la partie gauche de '.GetOpenFilename' doit avoir un class/struct/union c:\users\marouane\documents\visual studio 2008\projects\statistiques\statistiques\Statistiques1.h 98 Statistiques

    Erreur 2 error C2143: erreur de syntaxe*: absence de ';' avant '}' c:\users\marouane\documents\visual studio 2008\projects\statistiques\statistiques\Statistiques1.h 99 Statistiques

    Erreur 3 error C2039: 'button1_Click'*: n'est pas membre de 'Statistiques::Form1' c:\users\marouane\documents\visual studio 2008\projects\statistiques\statistiques\Form1.h 73 Statistiques

    Erreur 4 error C2065: 'button1_Click'*: identificateur non déclaré c:\users\marouane\documents\visual studio 2008\projects\statistiques\statistiques\Form1.h 73 Statistiques

    Erreur 5 error C3350: 'System::EventHandler'*: un constructeur délégué attend 2 argument(s) c:\users\marouane\documents\visual studio 2008\projects\statistiques\statistiques\Form1.h 73 Statistiques

    Erreur 6 error C2059: erreur de syntaxe*: 'private' c:\users\marouane\documents\visual studio 2008\projects\statistiques\statistiques\Form1.h 104 Statistiques

    Erreur 7 error C2065: 'textBox1'*: identificateur non déclaré c:\users\marouane\documents\visual studio 2008\projects\statistiques\statistiques\Form1.h 105 Statistiques

    Erreur 8 error C2228: la partie gauche de '.GetOpenFileName' doit avoir un class/struct/union c:\users\marouane\documents\visual studio 2008\projects\statistiques\statistiques\Form1.h 105 Statistiques
    Je crois que j'ai mal utilisé la fonction et je me bloque (j'ai cherché dans l'internet pour trouver au moins un exemple pour l'utiliser mais je suis totalement bloqué car je n'ai pas trouvé grande chose)

    Merci d'avance

  14. #14
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    GetOpenFileName est une fonction native Win32, or tu compiles en mode C++/CLI (managé)... Normal que ça te pète à la figure.

    Tu as un exemple d'appel depuis C# / .NET sur cette page, j'espère que ça pourra t'aider. Par contre, j'ignore s'il existe une version déjà encapsulée .NET de cette API.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  15. #15
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    Par contre, j'ignore s'il existe une version déjà encapsulée .NET de cette API.
    Il y a OpenFileDialog pour ça en .NET, mais on s'éloigne du C++...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  16. #16
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 81
    Points : 54
    Points
    54
    Par défaut
    Je n'ai pas compris désolé

    Un ami vient de faire presque le 1/3 de travail de son projet (qui est le même que le mien) en faisant le parcourt et l'affichage de statistiques d'un fichier texte et il m'a permit de faire une capture d'écran, il a utilisé tout comme moi les formes d'applications windows et voici un aperçu de son application (pour que vous comprenez plus ce qui est demandé dans mon travail et par la suite votre aide sera plus précise ) :



    Où le bouton parcourir permet le faire le parcourt en limitant l'accès qu'aux fichiers .txt et afficher dans la zone texte le chemin d'accès complet et le bouton ouvrir pour afficher les différentes caractéristiques dans les zones textes adéquats.

  17. #17
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 360
    Points : 20 377
    Points
    20 377
    Par défaut
    Citation Envoyé par marouane87 Voir le message
    Salut

    J'ai donc voulu utilisé la fonction OpenFileName, j'ai commencer un projet : windows forms application
    si tu veux utiliser GetOpenFileName il faut utiliser les MFC tu t'est trompé de type de projet...
    je conseillerais les MFC et surtout le livre de Prosise "Programming the MFC" c'est la bible.
    Ce que tu veux faire avec MFC cela peut se faire en peu de temps pour peu que tu maitrises un peu...

    faire un projet "Dialog Based" puis en 2 lignes de codes tu as de quoi ouvrir une boite "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
    17
     
    void CMyDlg::OnBtnOuvrir() 
    {
    	// TODO: Add your control notification handler code here
    	CString strFileName;
    	CEdit *pEdit=(CEdit* ) GetDlgItem(IDC_EDIT_NBRE_VOYELLES);
    	static char BASED_CODE szFilter[] = 
    	"Data Files (*.doc)|*.doc|All Files (*.*)|*.*||";
    	CFileDialog dlg(TRUE, _T("doc"), _T ("*.doc"), OFN_FILEMUSTEXIST | OFN_HIDEREADONLY ,szFilter);		
    	if(dlg.DoModal()==IDOK)
    	{
    		strFileName=dlg.GetFileName();
    		pEdit->SetWindowText(strFileName);
     
     
    	}
    }

  18. #18
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 81
    Points : 54
    Points
    54
    Par défaut
    Merci beaucoup mais je n'ai pas trouvé un type de projet "dialog based"

  19. #19
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    si tu veux utiliser GetOpenFileName il faut utiliser les MFC tu t'est trompé de type de projet...
    Non, les MFC ne sont pas nécessaires pour utiliser cette API : c'est du Win32 natif, pas des MFC.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  20. #20
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 81
    Points : 54
    Points
    54
    Par défaut
    Salut,

    S.V.P quels sont les commandes qui me permet de lire un fichier texte (ligne par ligne ou entier) en utilisant openfieldialog (ou autre commande)
    et l'afficher ensuite dans un textbox?

    Merci d'avance

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

Discussions similaires

  1. [VBA-E] Macro pour convertir un fichier texte en excel
    Par Nicolas67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2006, 14h47
  2. comment utiliser Notepad pour modifier un fichier texte?
    Par moon13_698 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 06/05/2006, 15h41
  3. Pb pour importer un fichier texte
    Par sam01 dans le forum Requêtes
    Réponses: 2
    Dernier message: 29/09/2005, 13h16
  4. Un programme "p2p" pour échanger des fichiers text
    Par Cthulhu 22 dans le forum Développement
    Réponses: 2
    Dernier message: 17/02/2005, 15h51
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17

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