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

C

 > 

Divers

 > 

Débutant(e)

 > 

Taille d'une chaine de caracteres + malloc


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

Taille d'une chaine de caracteres + malloc

mercredi 24 mars 2010 à 19:26:07 | Taille d'une chaine de caracteres + malloc

underprog

Bonjour (ou plutot bonsoir ^^)

Mon problème est simple : je veux récupérer le contenu d'un fichier (lecture en mode binaire donc aucun caractère n'est ignoré..)

Je voudrais ensuite determiner la taille de ce contenu, mais sans utiliser la variable dans laquelle j'ai stockée la taille du fichier pour effectuer l'allocation de mémoire nécessaire au stockage du contenu, ni strlen() car cette fonction s'arrête lorsqu'elle rencontre un '\0'

En fait de façon plus générale, comment determiner la taille d'une telle chaine dans le code:

"aaaaa\0ccccc\0ddddd"

Merci
mercredi 24 mars 2010 à 19:40:55 | Re : Taille d'une chaine de caracteres + malloc

ghuysmans99

Membre Club
(Sous Windows)
Ouvre le fichier via CreateFile
Récupère la taille du fichier via GetFileSize
Lis le fichier via ReadFile
Ferme le fichier via CloseHandle
---
VB.NET is good ... VB6 is better
mercredi 24 mars 2010 à 19:52:50 | Re : Taille d'une chaine de caracteres + malloc

underprog

heu c'est pas vraiment ça ma question... ^^

Le fichier je le lis et je recupère le contenu, ca c'est pas un problème... (d'ailleurs je suis sous windows mais dans le cas present je n'utilise pas les api w32... donc pas de CreateFile, ReadFile, etc.., je passe par fseek/ftell/fread/malloc)

mercredi 24 mars 2010 à 20:27:51 | Re : Taille d'une chaine de caracteres + malloc

ghuysmans99

Membre Club
Pourquoi ne veux-tu pas utiliser la fonction te donnant la taille du fichier (en sachant que c'est la seule qui permettrait de résoudre ton problème) ?
---
VB.NET is good ... VB6 is better
mercredi 24 mars 2010 à 21:31:34 | Re : Taille d'une chaine de caracteres + malloc

underprog

non ce n'est pas la seule, la preuve celle que j'utilise depuis longtemps (et en deux lignes de codes!):

fseek(pfile, 0 SEEK_END); // Curseur a la fin du fichier
fsize = ftell(pfile); // position courante du curseur = taille du fichier


Pourquoi ne veux-tu pas utiliser la fonction te donnant la taille du fichier (en sachant que c'est la seule qui permettrait de résoudre ton problème) ?


d'autres part je ne veux contourner, mais résoudre mon problème! ^^

En fait mon problème principal est décrit a la fin du sujet...
mercredi 24 mars 2010 à 23:05:55 | Re : Taille d'une chaine de caracteres + malloc

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Simple, ton problème est insoluble. C'était d'ailleurs prévisible dans l'énoncé, une "chaine" finit au 1er 0 rencontré.
Ce que tu as est un buffer contenant une suite d'octets, pas une chaine.

Dans pareil cas on peut faire comme dans les BSTR (String de VB et autres interprétés), on stocke la longueur dans les 2 ou 4 1ers octets du buffer.

ciao...
BruNews, MVP VC++
jeudi 25 mars 2010 à 10:54:22 | Re : Taille d'une chaine de caracteres + malloc

underprog

pas bête... merci ^^
jeudi 25 mars 2010 à 18:50:06 | Re : Taille d'une chaine de caracteres + malloc

ghuysmans99

Membre Club
Ton code revient à faire ce que j'ai dit
---
VB.NET is good ... VB6 is better


Cette discussion est classée dans : taille, chaine, caracteres, contenu, malloc


Répondre à ce message

Sujets en rapport avec ce message

chaine de caractere de taille variable [ par habibdu70 ] slt,savez vous comment modifier la taille d'une chaine de caractere ?par exemple si le nom de fichier fait 8 caracteres, je creai un fichier de 8 cara chaines de caracteres: caractere NULL [ par dletozeun ] bonjour,Je sais que lorsque l'on utilise la fonction: sprintf(), celle ci met automatiquement un caractere NULL a la fin du mot ecris dans la chaine.J Pb avec fonction retournant chaine de caractères [ par dragon3x6 ] Bonjour,peut - on retourner une chaine de caracteres avec une fonction ?j'ai ecris une fonction qui renvoie une chaine de caracteres du type 'char cha Chaine de caracteres [ par LordBob ] Salut a tous,voila j'ai une question seulement, je ne sais pas trop comment la poser ou plutot l'expliquer... Alors, je vais faire comme je peux... al copier nombre dans chaine de caracteres?? [ par dletozeun ] bonjour,Je cherche une fonction capable de copier un entier dans une chaine de caracteres et une autre fonction capable de transformer une chaine de c Le nombre de caracteres dans une chaine [ par salutbonjour ] Bonjour a tous,J'aimerais savoir comment obtenir le nombre de caracteres que il y a dans une variable (char ou string)Par exemple dans "bonjour a tous Pb de reallocation d'un tableau de chaine de caracteres [ par kobee12 ] J'ai un petit probleme. En effet j'ai un tableau defini de la maniere suivante : char* tab[12];Je charge des chaines de caracteres dans mon tableau. E Comment utiliser le contenu d'une variable comme variable [ par gubule ] j'expose mon probleme, c'est pas simple a expliquer.j'ai une chaine qui contient le nom d'une variable, je veux utiliser ce nom de variable pour en ex Chaine de caracteres aléatoire [ par winwarrior ] Bon voila je voudrai simplement que ce code retourne une chaine de caracteres aléatoire je comprend pas ce qui cloche nlors de la compilation ça me ma Chaine de caracteres !!! [ par mantalotus ] Comment puis-je transformer un chaine de caractères en une chaine de bits et inversement.Merci de votre aide.


Nos sponsors


Sondage...

Comparez les prix

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 : 1,295 sec (4)

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