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[BUFSIZE]; 
    HWND hwnd_fn; 
     
    int Ouvrir(int a,HWND handleF);
    BOOL EcritFic(void);
    void Info(HWND id,char *msg,char *titre);
     
    ....
    ....
     Clic sur un bouton sélection fichier
     
                if(LOWORD(wParam) == mBtSelF) 
                {
                Ouvrir(1,hwnd_fn);
                Info(hwnd_fn,Chemin_Fic,"Avant EcritFic:");
                EcritFic();        
     
    int Ouvrir(int a,HWND handleF) //a=1 = fichier ;a=2= répertoire
         {
         OPENFILENAME ch;
         CHAR szFile[MAX_PATH]={0};
         ZeroMemory(&ch, sizeof(OPENFILENAME));
         ch.lStructSize = sizeof(OPENFILENAME);
         ch.hwndOwner = handleF;     // handle fenetre appelant (mere)
         ch.lpstrFile = szFile;
         ch.nMaxFile = MAX_PATH;
         ch.lpstrFilter = "\0*.*\0";
     
         ch.nFilterIndex = 1;
         ch.lpstrFile[0] = '\0';
     
         // Permet la multiselection + Creation +...
         ch.Flags = OFN_CREATEPROMPT | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST ;
     
     
         if (GetOpenFileName(&ch)==TRUE)
         {
         Chemin_Fic=ch.lpstrFile;
         return(1);
         }
         else
         {
         return(-1);
         }
    }
     
    BOOL EcritFic(void)
         {
         Info(hwnd_fn,Chemin_Fic,"Nom Fic Ouv");
         LPCTSTR lpFileName;
         DWORD dwDesiredAccess;
         DWORD dwShareMode;
         LPSECURITY_ATTRIBUTES lpSecurityAttributes;
         DWORD dwCreationDisposition;
         DWORD dwFlagsAndAttributes;
         HANDLE hTempFile;
         char szTempName[BUFSIZE];  
        dwDesiredAccess = FILE_ALL_ACCESS;
        HANDLE  IdFic;
     
        Info(hwnd_fn,Chemin_Fic,"Ouverture ...");
        IdFic = CreateFile(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);                // no template 
        if (IdFic == INVALID_HANDLE_VALUE) 
        { 
            Info(hwnd_fn,"Erreur ouverture !","Seb");
            return (false);
        } 
        else
         { 
            Info(hwnd_fn,"Ouverture Ok !","Seb");
        } 
        DWORD La;
        char *ch="Essai seb";
        WriteFile(IdFic, ch , 8,&La,NULL); 
        CloseHandle(IdFic)  ;    
        return (true);                        
     }
     
    void Info(HWND id,char *msg,char *titre)
         {
         LPCTSTR lpText=msg;
         LPCTSTR lpCaption=titre;
         UINT uType=MB_OK;
         if (MessageBox(   id,lpText,lpCaption,uType)==IDOK);
     
         }
    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(ch.lpstrFile);
    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, 12h05
  2. gestion des chaines de caractères dans champ memo
    Par pascalourox dans le forum IHM
    Réponses: 1
    Dernier message: 07/08/2008, 20h32
  3. [RegEx] Gestion des chaines de caractères
    Par whichgirl0909 dans le forum Langage
    Réponses: 3
    Dernier message: 11/07/2007, 08h57
  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, 15h32
  5. Gestion des chaine
    Par aityahia dans le forum Delphi
    Réponses: 4
    Dernier message: 28/06/2006, 15h58

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