begin process at 2012 05 30 18:23:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Taille des variables


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Taille des variables

vendredi 15 février 2002 à 21:34:26 | Taille des variables

appstmd

Bonjour !

J'ai des problèmes avec l'utilisation des variables de chaîne de caractères : je ne connais pas la taille, je suis donc obligé de déclarer mes variables avec un "gros" nombre pour avoir une marge, mais ceci ralenti le programme et provoque parfois des plantages. Par exemple char BufferData[5000000];
Je dois manipuler des variables de plusieurs ko.

Existe-t-il une solution pour créer des variables dynamiques comme sous VB, où l'on peut modifier la taille à volonté ?
J'ai essayé d'utiliser le type LPTSTR mais ceci me provoque des plantages en utilisant les fonctions lstrcpy, ...

Merci !
vendredi 15 février 2002 à 22:15:24 | Re : Taille des variables

mmuller57

char *BufferData;



-------------------------------
Réponse au message :
-------------------------------

Bonjour !

J'ai des problèmes avec l'utilisation des variables de chaîne de caractères : je ne connais pas la taille, je suis donc obligé de déclarer mes variables avec un "gros" nombre pour avoir une marge, mais ceci ralenti le programme et provoque parfois des plantages. Par exemple char BufferData[5000000];
Je dois manipuler des variables de plusieurs ko.

Existe-t-il une solution pour créer des variables dynamiques comme sous VB, où l'on peut modifier la taille à volonté ?
J'ai essayé d'utiliser le type LPTSTR mais ceci me provoque des plantages en utilisant les fonctions lstrcpy, ...

Merci !
vendredi 15 février 2002 à 22:56:22 | Re : Taille des variables

appstmd

Ca ne marche pas, quand j'utilise des fonctions de lecture de fichier :

ReadFile (hFile, BufferData, 3, &ByteRead, (LPOVERLAPPED) NULL);
MessageBox (0, BufferData,"Mamate",0);

Ceci me renvoie un message vide !

-------------------------------
Réponse au message :
-------------------------------

char *BufferData;



-------------------------------
Réponse au message :
-------------------------------

Bonjour !

J'ai des problèmes avec l'utilisation des variables de chaîne de caractères : je ne connais pas la taille, je suis donc obligé de déclarer mes variables avec un "gros" nombre pour avoir une marge, mais ceci ralenti le programme et provoque parfois des plantages. Par exemple char BufferData[5000000];
Je dois manipuler des variables de plusieurs ko.

Existe-t-il une solution pour créer des variables dynamiques comme sous VB, où l'on peut modifier la taille à volonté ?
J'ai essayé d'utiliser le type LPTSTR mais ceci me provoque des plantages en utilisant les fonctions lstrcpy, ...

Merci !

vendredi 15 février 2002 à 23:49:17 | Re : Taille des variables

mmuller57

Ah ouais t'utilise les fonctions de Windows , je vais voir ça se soir et je t'en reparle dès que possible ! @+



-------------------------------
Réponse au message :
-------------------------------

Ca ne marche pas, quand j'utilise des fonctions de lecture de fichier :

ReadFile (hFile, BufferData, 3, &ByteRead, (LPOVERLAPPED) NULL);
MessageBox (0, BufferData,"Mamate",0);

Ceci me renvoie un message vide !

-------------------------------
Réponse au message :
-------------------------------

char *BufferData;



-------------------------------
Réponse au message :
-------------------------------

Bonjour !

J'ai des problèmes avec l'utilisation des variables de chaîne de caractères : je ne connais pas la taille, je suis donc obligé de déclarer mes variables avec un "gros" nombre pour avoir une marge, mais ceci ralenti le programme et provoque parfois des plantages. Par exemple char BufferData[5000000];
Je dois manipuler des variables de plusieurs ko.

Existe-t-il une solution pour créer des variables dynamiques comme sous VB, où l'on peut modifier la taille à volonté ?
J'ai essayé d'utiliser le type LPTSTR mais ceci me provoque des plantages en utilisant les fonctions lstrcpy, ...

Merci !


samedi 16 février 2002 à 01:11:39 | Re : Taille des variables

Croqmort

il faut que tu alloue de la memoire avant :
char *BufferData;

et dans ton programme une fois que tu connais la taille tu fait :
BufferData = new char[taille];
une fois que tu a fini de t'utiliser de BufferData tu fait :
delete [] BufferData;

si tu ne connais jamais la taille le mieux c de faire une class



-------------------------------
Réponse au message :
-------------------------------

Ah ouais t'utilise les fonctions de Windows , je vais voir ça se soir et je t'en reparle dès que possible ! @+



-------------------------------
Réponse au message :
-------------------------------

Ca ne marche pas, quand j'utilise des fonctions de lecture de fichier :

ReadFile (hFile, BufferData, 3, &ByteRead, (LPOVERLAPPED) NULL);
MessageBox (0, BufferData,"Mamate",0);

Ceci me renvoie un message vide !

-------------------------------
Réponse au message :
-------------------------------

char *BufferData;



-------------------------------
Réponse au message :
-------------------------------

Bonjour !

J'ai des problèmes avec l'utilisation des variables de chaîne de caractères : je ne connais pas la taille, je suis donc obligé de déclarer mes variables avec un "gros" nombre pour avoir une marge, mais ceci ralenti le programme et provoque parfois des plantages. Par exemple char BufferData[5000000];
Je dois manipuler des variables de plusieurs ko.

Existe-t-il une solution pour créer des variables dynamiques comme sous VB, où l'on peut modifier la taille à volonté ?
J'ai essayé d'utiliser le type LPTSTR mais ceci me provoque des plantages en utilisant les fonctions lstrcpy, ...

Merci !



samedi 16 février 2002 à 01:44:27 | Re : Taille des variables

mmuller57

J'ai regardé la fonction ReadFile, elle m'a semblé trop compliqué pour moi :( enfin j'étais trop fainéant pour essayer de la comprendre mais j'ai quand même trouvé une fonction pour lire un fichier et mettre le contenu de ce fichier dans une variable comme tu l'a demandé (cf. Rapid Code Source de NitRic) :

LoadFile(const char *FileName, char **pBuffer)
{

HANDLE file = NULL;
bool bReturn = false;
unsigned int FileSize = 0;
char *tBuf = NULL;
// Ouvre le fichier
file = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
if (file != INVALID_HANDLE_VALUE)
{
// Récupère la taille du fichier
FileSize = GetFileSize(file, NULL);
if (FileSize != 0xFFFFFFFF)
{
// Alloue de la mémoire
tBuf = (LPSTR)GlobalAlloc(GPTR, (FileSize + 1));

if (tBuf != NULL)
{

DWORD Read;
// Récupère le contenue du fichier
if (ReadFile(file, tBuf, FileSize, &Read, NULL))
{
// Envoie le tout dans pBuffer
*pBuffer = new char[(FileSize + 1)];
strcpy(*pBuffer, tBuf);

bReturn = true;

}
// Libère la mémoire
GlobalFree(tBuf);

}

}
// Ferme le fichier
CloseHandle(file);

}

return bReturn;

}


Ou bien mon code source :) :

#include <iostream>

#include <stdlib.h> //** Pour la fonction system(); .
#include <stdio.h> //* Pour la gestion des fichiers.


void main()
{
FILE *fichier; //** Défini une nouvelle 'variable' de type FILE (fichier).
fichier = fopen("test.txt","rt"); //* Ouvre le fichier 'test.txt'.

char *contenu; //** Variable servant a contenir le contenu du fichier 'test.txt'.
int i; //* Variable contenant le nombre de caractères du fichier.

fseek(fichier, 0, 0); //* On se place au début du fichier.

while(!(feof(fichier))) //** Tant qu'on a pas atteint la fin du fichier
{ //* on met le contenu du fichier 'test.txt dans
fgets(contenu, i++, fichier); //* la variable 'contenu'.
}

cout
<< contenu << endl; // Affiche le contenu du fichier 'test.txt'.

fclose(fichier); // Ferme le fichier précédement ouvert.

system("PAUSE"); // Attend une entrée clavier.
}





samedi 16 février 2002 à 01:48:43 | Re : Taille des variables

mmuller57


Euh désolé ce code était pas pour toi :(


-------------------------------
Réponse au message :
-------------------------------

Bonjour !

J'ai des problèmes avec l'utilisation des variables de chaîne de caractères : je ne connais pas la taille, je suis donc obligé de déclarer mes variables avec un "gros" nombre pour avoir une marge, mais ceci ralenti le programme et provoque parfois des plantages. Par exemple char BufferData[5000000];
Je dois manipuler des variables de plusieurs ko.

Existe-t-il une solution pour créer des variables dynamiques comme sous VB, où l'on peut modifier la taille à volonté ?
J'ai essayé d'utiliser le type LPTSTR mais ceci me provoque des plantages en utilisant les fonctions lstrcpy, ...

Merci !
dimanche 17 février 2002 à 22:32:10 | Re : Taille des variables

appstmd


Merci, ceci devrait fonctionner maintenant.


-------------------------------
Réponse au message :
-------------------------------

J'ai regardé la fonction ReadFile, elle m'a semblé trop compliqué pour moi :( enfin j'étais trop fainéant pour essayer de la comprendre mais j'ai quand même trouvé une fonction pour lire un fichier et mettre le contenu de ce fichier dans une variable comme tu l'a demandé (cf. Rapid Code Source de NitRic) :

LoadFile(const char *FileName, char **pBuffer)
{

HANDLE file = NULL;
bool bReturn = false;
unsigned int FileSize = 0;
char *tBuf = NULL;
// Ouvre le fichier
file = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
if (file != INVALID_HANDLE_VALUE)
{
// Récupère la taille du fichier
FileSize = GetFileSize(file, NULL);
if (FileSize != 0xFFFFFFFF)
{
// Alloue de la mémoire
tBuf = (LPSTR)GlobalAlloc(GPTR, (FileSize + 1));

if (tBuf != NULL)
{

DWORD Read;
// Récupère le contenue du fichier
if (ReadFile(file, tBuf, FileSize, &Read, NULL))
{
// Envoie le tout dans pBuffer
*pBuffer = new char[(FileSize + 1)];
strcpy(*pBuffer, tBuf);

bReturn = true;

}
// Libère la mémoire
GlobalFree(tBuf);

}

}
// Ferme le fichier
CloseHandle(file);

}

return bReturn;

}


Ou bien mon code source :) :

#include <iostream>

#include <stdlib.h> //** Pour la fonction system(); .
#include <stdio.h> //* Pour la gestion des fichiers.


void main()
{
FILE *fichier; //** Défini une nouvelle 'variable' de type FILE (fichier).
fichier = fopen("test.txt","rt"); //* Ouvre le fichier 'test.txt'.

char *contenu; //** Variable servant a contenir le contenu du fichier 'test.txt'.
int i; //* Variable contenant le nombre de caractères du fichier.

fseek(fichier, 0, 0); //* On se place au début du fichier.

while(!(feof(fichier))) //** Tant qu'on a pas atteint la fin du fichier
{ //* on met le contenu du fichier 'test.txt dans
fgets(contenu, i++, fichier); //* la variable 'contenu'.
}

cout
<< contenu << endl; // Affiche le contenu du fichier 'test.txt'.

fclose(fichier); // Ferme le fichier précédement ouvert.

system("PAUSE"); // Attend une entrée clavier.
}








Cette discussion est classée dans : taille, variables, provoque, plantages


Répondre à ce message

Sujets en rapport avec ce message

Taille variables dans une class/struct [ par LA_Tupac ] Salut à tous. Je me penche sur la taille des données car je fais des écritures binaires d'objets à taille variable dans des fichiers. En faisant des t tableau dynamique de structure plusieurs structure différente en C ? [ par Nico_35136 ] Bonjour a tous, Voila je débute dans l'allocation dynamique en C voici mon problème. Je possédé 5 structure de taille différentes qui vont contenir motus en C [ par amine124 ] Bonjour, Je veux créer un petit jeu "motus" qui lit un mot et la comparer par le mot d'or (à trouver); si le joueur trouve qqes lettres, on les affi creation de plusieur tableau [ par foxwar ] Bonjour, j'aimerai cree un programme ki permet de cree plusieur tableau du different taille et les afficher g ecirt ce programme mai je c pa ce k'il [clos] Affectation des objets a des conteneurs [ par mlahbib ] Bonsoir j'ai écrit mon programme sous IBM ILOG CPLEX Optimization Studio qui affecte a un nombre minimum de conteneur un ensemble donnée d'objet dont besoin d'aide dans programme en c [ par houda986 ] salut; je suis un débutante en programmation et j'ai besoin d'aide pour la résolution d'un programme en C,c'est un programme de tri par base ... j'ai Comment fait-on pour changer la police et la taille dans une editbox?? [ par Hakim ] merci d'avance.Hakim. Les variables globales...... [ par netman ] Bon la j'ai un petit probleme (normal sinon je poserais pas de question ....)Bon je fait un petit programme et la je suis confronte a un pb .....J'uti


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales