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 :

Débutant : Pb gestion des chaines...


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 53
    Points : 42
    Points
    42
    Par défaut Débutant : Pb gestion des chaines...
    Besoin de conseille et d'aide:

    Voici mon code: (Dev-C++)
    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
    #include <windows.h>
    #include <string>
     
    char *Chemin_Fic;
    char buffer&#91;BUFSIZE&#93;; 
    HWND hwnd_fn; 
     
    int Ouvrir&#40;int a,HWND handleF&#41;;
    BOOL EcritFic&#40;void&#41;;
    void Info&#40;HWND id,char *msg,char *titre&#41;;
     
    ....
    ....
     Clic sur un bouton sélection fichier
     
                if&#40;LOWORD&#40;wParam&#41; == mBtSelF&#41; 
                &#123;
                Ouvrir&#40;1,hwnd_fn&#41;;
                Info&#40;hwnd_fn,Chemin_Fic,"Avant EcritFic&#58;"&#41;;
                EcritFic&#40;&#41;;        
     
    int Ouvrir&#40;int a,HWND handleF&#41; //a=1 = fichier ;a=2= répertoire
         &#123;
         OPENFILENAME ch;
         CHAR szFile&#91;MAX_PATH&#93;=&#123;0&#125;;
         ZeroMemory&#40;&ch, sizeof&#40;OPENFILENAME&#41;&#41;;
         ch.lStructSize = sizeof&#40;OPENFILENAME&#41;;
         ch.hwndOwner = handleF;     // handle fenetre appelant &#40;mere&#41;
         ch.lpstrFile = szFile;
         ch.nMaxFile = MAX_PATH;
         ch.lpstrFilter = "\0*.*\0";
     
         ch.nFilterIndex = 1;
         ch.lpstrFile&#91;0&#93; = '\0';
     
         // Permet la multiselection + Creation +...
         ch.Flags = OFN_CREATEPROMPT | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST ;
     
     
         if &#40;GetOpenFileName&#40;&ch&#41;==TRUE&#41;
         &#123;
         Chemin_Fic=ch.lpstrFile;
         return&#40;1&#41;;
         &#125;
         else
         &#123;
         return&#40;-1&#41;;
         &#125;
    &#125;
     
    BOOL EcritFic&#40;void&#41;
         &#123;
         Info&#40;hwnd_fn,Chemin_Fic,"Nom Fic Ouv"&#41;;
         LPCTSTR lpFileName;
         DWORD dwDesiredAccess;
         DWORD dwShareMode;
         LPSECURITY_ATTRIBUTES lpSecurityAttributes;
         DWORD dwCreationDisposition;
         DWORD dwFlagsAndAttributes;
         HANDLE hTempFile;
         char szTempName&#91;BUFSIZE&#93;;  
        dwDesiredAccess = FILE_ALL_ACCESS;
        HANDLE  IdFic;
     
        Info&#40;hwnd_fn,Chemin_Fic,"Ouverture ..."&#41;;
        IdFic = CreateFile&#40;Chemin_Fic, // file name 
                               GENERIC_READ | GENERIC_WRITE, // open r-w 
                               0,                    // do not share 
                               NULL,                 // default security 
                               CREATE_ALWAYS,        // overwrite existing
                               FILE_ATTRIBUTE_NORMAL,// normal file 
                               NULL&#41;;                // no template 
        if &#40;IdFic == INVALID_HANDLE_VALUE&#41; 
        &#123; 
            Info&#40;hwnd_fn,"Erreur ouverture !","Seb"&#41;;
            return &#40;false&#41;;
        &#125; 
        else
         &#123; 
            Info&#40;hwnd_fn,"Ouverture Ok !","Seb"&#41;;
        &#125; 
        DWORD La;
        char *ch="Essai seb";
        WriteFile&#40;IdFic, ch , 8,&La,NULL&#41;; 
        CloseHandle&#40;IdFic&#41;  ;    
        return &#40;true&#41;;                        
     &#125;
     
    void Info&#40;HWND id,char *msg,char *titre&#41;
         &#123;
         LPCTSTR lpText=msg;
         LPCTSTR lpCaption=titre;
         UINT uType=MB_OK;
         if &#40;MessageBox&#40;   id,lpText,lpCaption,uType&#41;==IDOK&#41;;
     
         &#125;
    Mon probléme se situe sur la variable Chemin_Fic.
    J'ai fais une fonction qui me permet d'afficher des données durant le parcourt du prog.
    Une fois la sélection d'un fichier par la commande GetOpenFileName, la variable Chemin_Fic contient le chemin du fichier :ex:"C:\essai.txt"
    Au retour de la fonction "Ouvrir", ma variable contient tjrs le chemein.
    Mais lorsque que j'appelle une fonction d'écriture de fichier (BOOL EcritFic(void)) , la variable contient des caractére aléatoire (ex:oix / ^^)!!!!!!!

    Suite a la multitude d'essai le code n'est plus trés clair....

    Si qq a une idée ???


    [Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]

  2. #2
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    remplace par ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Chemin_Fic=ch.lpstrFile;
    par ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Chemin_Fic=strdup&#40;ch.lpstrFile&#41;;
    ca devrait mieux marcher
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  3. #3
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut Re: Débutant : Pb gestion des chaines...
    Citation Envoyé par SebRs
    Besoin de conseille et d'aide:
    ...
    Si qq a une idée ???
    Oui j'en ai une : demande plutôt des CONSEILS

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 53
    Points : 42
    Points
    42
    Par défaut
    C nickel merci pour l'astuce , je vais recherche cette commande pour savoir ce qu'elle signifie


    Merci
    (si j'avais sue ,j'aurais posé la question + tot)

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

Discussions similaires

  1. [Débutant] Gestion des chaines de caracteres
    Par bahja29 dans le forum MATLAB
    Réponses: 3
    Dernier message: 16/03/2009, 13h05
  2. gestion des chaines de caractères dans champ memo
    Par pascalourox dans le forum IHM
    Réponses: 1
    Dernier message: 07/08/2008, 21h32
  3. [RegEx] Gestion des chaines de caractères
    Par whichgirl0909 dans le forum Langage
    Réponses: 3
    Dernier message: 11/07/2007, 09h57
  4. [Débutant] - VB6 - Gestion des impressions
    Par LSG-Serval dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 22/08/2006, 16h32
  5. Gestion des chaine
    Par aityahia dans le forum Delphi
    Réponses: 4
    Dernier message: 28/06/2006, 16h58

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