Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3251 connectés 

 


Dernière réponse
Sujet : Besoin d'aide en c++ , Gestion fichier et repertoire !
remixgame je ne l'aurais pas trouver de toute facon alors merci bcp  
sinon une tite question !
Comment puis je faire en c++ ou mieux dans c++ builder  
Un system de Fenetre dans une fenetre ?
je sais c'est compliqué je reexplique  
Comme dans Excel :
Une grande fenetre avec le fond gris et le menu
Et des fenetres qui s'ajoute dans se fond gris au fur et à mesure des élements selectionnés dans le menus , ceux ci étant tous différents (toutes les fenetres sont sont differentes et sont implanté dans la premiere fenetre avec le menu )
Si vous comprenez répondez moi merci !.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
remixgame je ne l'aurais pas trouver de toute facon alors merci bcp  
sinon une tite question !
Comment puis je faire en c++ ou mieux dans c++ builder  
Un system de Fenetre dans une fenetre ?
je sais c'est compliqué je reexplique  
Comme dans Excel :
Une grande fenetre avec le fond gris et le menu
Et des fenetres qui s'ajoute dans se fond gris au fur et à mesure des élements selectionnés dans le menus , ceux ci étant tous différents (toutes les fenetres sont sont differentes et sont implanté dans la premiere fenetre avec le menu )
Si vous comprenez répondez moi merci !.
Harkonnen Non, tu ne dois pas rajouter NbLus, mais remplacer l'avant dernier paramètre (NULL), par &NbLus. C'était le paramètre invalide qui te provoquait l'erreur 87 (j'aurais voulu que tu le trouves toi même, mais bon... :d)
Ce paramètre (et non cette fonction) est un pointeur vers la variable qui recevra le nombre de caractères écrits. Ce pointeur ne doit pas être NULL.
La variable NbLus est déclarée sur la ligne du dessus, que tu devras inclure dans ton source.
 
A+
remixgame Merci bcp j'ai pas encore essayer !
Mais je l'essaierais au plus vite quand j'aurais mon nouveau pC !!
Vendredi soir  
 
J'espere que tous se deroulera bien ?
Sinon pour lire dans un fichier
faut aussi que je rajoute &NbLus ?
Que veut dire cette fonction &NbLus merci !
 [:spytec cdr]  [:sivep]
Harkonnen Bon, je vais quand même te donner la solution  :D  
 
Remplace ceci :

Code :
  1. WriteFile(hFile, lpBuffer, strlen( lpBuffer )+1, NULL, NULL);


par ceci :

Code :
  1. DWORD NbLus=0;
  2. WriteFile(hFile, lpBuffer, strlen( lpBuffer )+1, &NbLus, NULL);


Et tu dois aussi fermer ton fichier.
 
A+

verdoux Faut fermer le fichier ou faire un flush pour qu'il y ait quelque chose dans le fichier.
remixgame Mon pc a plante mortel !  
Et je ne peux plus progz par contre  
je vais en recevoir un nouveau samedi si tous se passe bien
@+
J'esssaierais de résoudre ca @+
Harkonnen erreur 87 = paramètre incorrect
 
tu as un paramètre incorrect dans ta fonction WriteFile, à ton avis, lequel c'est ?
 
cherche le, si tu trouves pas, je t'aiderai.
 
pour info :  
 
la signification des codes d'erreur de GetLastError() :
http://msdn.microsoft.com/library/ [...] t_7oz7.asp
remixgame Il me renvoie la valeur 87 ??
Quesque c'est je ne sais pas ??
 
Pour avoir la valeur 87 j'ai rajouter l'objet Edit
Voila mon programme
 
 
//------------------------------------------------
---------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//------------------------------------------------
---------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
LPCTSTR lpBuffer = "Ceci est la chaîne qui sera écrite dans le fichier.";
{       static HANDLE hFile;
 
   hFile = CreateFile( "FICHIERtest.DAT", GENERIC_READ | GENERIC_WRITE,
                                    0, NULL, OPEN_ALWAYS,
                                    FILE_ATTRIBUTE_NORMAL, NULL );
                               if (!WriteFile( hFile, lpBuffer, strlen( lpBuffer )+1, NULL, NULL )) {
DWORD    err = GetLastError();
Edit1->Text = err ;// J'obtient la valeur 87
}}
}
//----
remixgame Qu'appelle tu pars tracer ??
Quand je demare le programme il s'arrette et reviens a la page d'edition  
A sa gauche il ya une boule rouge et un fleche verte ??
Que dois je faire ??
Harkonnen Y'a rien qui se passe, c'est normal !
Tu mets un breakpoint sur la ligne contenant le GetLastError, tu lances le prog, il va s'arréter dès qu'il sera arrivé sur cette ligne.
Tu executes cette ligne en traçant, puis tu vérifies la valeur de err. A partir de la, tu recherches la description de l'erreur correspondante.
Oublie le warning, il signifie que err n'est jamais utilisé, mais c'est pas grave.
remixgame Je clique mais ya rien qui se passe !  
A part la création du fichier
au faite j'ai un avetissement au compilage
[C++ Warning] Unit1.cpp(28): W8004 'err' is assigned a value that is never used
Harkonnen Dslé, j'ai oublié de déclarer err.
 
DWORD err = GetLastError();
remixgame Maintenant il me mets  
[C++ Error] Unit1.cpp(28): E2277 Lvalue required
remixgame Il ya un probleme il me marque
[C++ Error] Unit1.cpp(27): E2451 Undefined symbol 'err'
Harkonnen if (!WriteFile( hFile, lpBuffer, strlen( lpBuffer )+1, NULL, NULL )) {
     err = GetLastError();
}
 
regarde ensuite dans ton débugger ou par une MessageBox la valeur de err, puis vois à quelle erreur correspond ce code. corrige ton source en conséquence.
remixgame Il ne me marque rien !
remixgame Dois je juste le placer juste aprer writefile je vais essayer
remixgame Comment dois je utiliser GelastError() ?
Harkonnen C'est pas parce que ton programme démarre normalement qu'ile ne contient pas d'erreur !!
 
Si rien ne s'écrit dans ton fichier, c'est parce que WriteFile() échoue ! Et quand WriteFile() échoue, il te renvoie un code d'erreur décrivant le pb, que tu peux récupérer par GetLastError()
remixgame Comment il n'y a aucune erreur le programme demare normalement  
je clique sur le bouton
il me crée le fichier
mais n'ecris rien dedans
Harkonnen As tu regardé l'erreur que te renvoyait GetLastError() ? Parce que si WriteFile ne marche pas, il te renvoie automatiquement un code d'erreur récupérable par GetLastError().
 
Autre chose : tu ouvres ton fichier, tu écris dedans (ou du moins tu essaies) mais tu ne le ferme pas !!
remixgame PS connaissez vous un bon site avec plein de tutoriaux en c++ ?
merci  
J'utilse c++ builder 6  
Si il ya une autre facon d'ecrire dans des fichiers faites le moi parvenir merci !
remixgame Voila j'ai un pti probleme quand j'utilise la fonction WriteFile rien ne s'ecrit !
Mais la fonction Createfile marche tres bien !
Jetez un pti coup d'oeil à mon code source ;
 
                 Unit1 .cpp
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <windows.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//------------------------------------------------
---------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 
LPCTSTR lpBuffer = "Ceci est la chaîne qui sera écrite dans le fichier.";
 {       static HANDLE hFile;
 
    hFile = CreateFile( "FICHIERtest.DAT", GENERIC_READ | GENERIC_WRITE,
                                     0, NULL, OPEN_ALWAYS,
                                     FILE_ATTRIBUTE_NORMAL, NULL );
                                 WriteFile( hFile, lpBuffer, strlen( lpBuffer )+1,  
                            NULL, NULL );}
 
 
 
 
}
//---------------------------------------------------------------------------
                      Unit1.h
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
        TButton *Button1;
        TEdit *Edit1;
        void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public:  // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
 
#endif

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)