[C++] tronquer un fichier à une certaine taille

tronquer un fichier à une certaine taille [C++] - C++ - Programmation

Marsh Posté le 24-02-2003 à 08:39:59    

Hello,
 
je voudrais pouvoir raccourcir la taille d'un fichier en C++ sous windows sans avoir de fichier temporaire ou intermédiaire, et sans perdre son contenu bien entendu.
j'ai trouvé quelques trucs sous unix/linux mais pas sous win ! :(
 
Si quelqu'un a une piste ...

Reply

Marsh Posté le 24-02-2003 à 08:39:59   

Reply

Marsh Posté le 24-02-2003 à 09:07:15    

Que veux tu faire exactement ? Optimiser un source ? Compacter un exécutable ? Qu'entends tu par "raccourcir" ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-02-2003 à 09:13:35    

be il a un fichier qui fait 15ko, il veut virer les 5ko de la fin (et donc n'avoir plus que 10ko de fichier)
 
mais sans fichier intermediaire je sais pas comment on fait

Reply

Marsh Posté le 24-02-2003 à 09:17:15    

ben oui, c'est clair... je vois mal comment on pouurait faire ce genre d'opération sans passer par un fichier intermédiaire


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-02-2003 à 09:40:38    

API Win32:
 
SetEndOfFile(FHandle)
 
tronque le fichier à l'endroit où on est dans le fichier (FileSeek pour aller à l'endroit où il faut couper)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 24-02-2003 à 09:44:39    

antp a écrit :

API Win32:
 
SetEndOfFile(FHandle)
 
tronque le fichier à l'endroit où on est dans le fichier (FileSeek pour aller à l'endroit où il faut couper)


:jap:
 
Win32 est vraiment un vaste chantier, dont je suis certain qu'au moins 60% des fonctions sont inconnues ou quasi inconnues !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-02-2003 à 09:46:02    

vous avez zappé ce passage, au fait
 

GuX a écrit :

et sans perdre son contenu bien entendu.

Reply

Marsh Posté le 24-02-2003 à 09:46:08    

Harkonnen a écrit :


Win32 est vraiment un vaste chantier, dont je suis certain qu'au moins 60% des fonctions sont inconnues ou quasi inconnues !


 
j'ai regardé le code appelé par la propriété "Size" du THandleStream de Delphi :whistle:


Message édité par antp le 24-02-2003 à 09:47:06

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 24-02-2003 à 09:46:52    

lorill a écrit :

vous avez zappé ce passage, au fait
 
 


 
heu je suppose qu'il parle du contenu avant l'endroit où on coupe ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 24-02-2003 à 09:53:29    

antp a écrit :


 
heu je suppose qu'il parle du contenu avant l'endroit où on coupe ?


 
je pense aussi, sinon je vois meme pas ce qu'il veut faire :D

Reply

Marsh Posté le 24-02-2003 à 09:53:29   

Reply

Marsh Posté le 24-02-2003 à 09:57:45    

chrisbk a écrit :


je pense aussi, sinon je vois meme pas ce qu'il veut faire :D


ben justement, c'est pour ca que ca me semble etrange :heink:

Reply

Marsh Posté le 24-02-2003 à 10:16:48    

lorill a écrit :


ben justement, c'est pour ca que ca me semble etrange :heink:


non, moi je ne l'ai pas zappé ! et c'est pour ça que je lui demandais s'il voulait compacter ou optimiser !
effectivement, en admiration devant le savoir et la maitrise de Win32 d'antp, je n'ai pas remarqué que sa solution tronquait le fichier ! :sweat:


Message édité par Harkonnen le 24-02-2003 à 10:17:15

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-02-2003 à 11:32:36    

Comment raccourcir sans tronquer ?? Sujet de philo ?
 
A part le zipper ?? :heink:

Reply

Marsh Posté le 24-02-2003 à 11:50:58    

ha ouais raccourcir dans le sens réduire/compresser, moi j'avais vu ça dans le sens tronquer :o
 
en NTFS y a moyen de compresser des fichiers individuellement et sans passer par un fichier intermédiaire


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 24-02-2003 à 11:54:33    

Non, mais vu le titre de son topic, il veut tronquer, trancher à la hache le fichier quoi !

Reply

Marsh Posté le 24-02-2003 à 11:55:34    

El_gringo a écrit :

Non, mais vu le titre de son topic, il veut tronquer, trancher à la hache le fichier quoi !


ben dans ce cas, il perdra des données, sclair !!


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-02-2003 à 11:58:13    

Harkonnen a écrit :


ben dans ce cas, il perdra des données, sclair !!


 
je pense qu'il voulait dire ne pas perdre les donnes jusqu'au point de troncature (troncationnage ? :D)
 
pis merde il pourrait etre plus precis, la on est tous a extrapoler sur ce qu'il voulait vaguement exprimer :D


Message édité par chrisbk le 24-02-2003 à 11:58:45
Reply

Marsh Posté le 24-02-2003 à 12:18:19    

Sans être Mme Soleil, je crois qu'il veut trancher la fin de son fichier en gardant le début intact. (Veut-il  récupérer la queue du fichier coupé ?).

Reply

Marsh Posté le 24-02-2003 à 21:34:27    

arf désolé si j'ai pas été précis, il était temps pour moi d'aller au lit ...
 
j'ai un fichier dans lequel j'enregistre des structs de 320 octets, une sorte de base de donnée en fait.
Si la dernière structure ne me sert plus, je veux pouvoir l'enlever tout simplement (donc réduire la taille du fichier de 320 octets). Le reste du fichier ne change pas.
 

Reply

Marsh Posté le 24-02-2003 à 21:56:04    

Donc cf solution d'antp : SetEndOfFile()

Reply

Marsh Posté le 24-02-2003 à 22:01:33    

Ok je regarde ça.
merci les gars :)

Reply

Marsh Posté le 28-03-2006 à 16:06:03    

Je suis tombé sur ce topic en recherchant la même chose, mais pour linux.
Il y a bien truncate sur un descripteur, mais c'est du C ..
Y a-t-il quelque chose en C++ ?

Message cité 1 fois
Message édité par Grom14 le 28-03-2006 à 16:08:05
Reply

Marsh Posté le 28-03-2006 à 16:53:23    

Citation :


Win32 est vraiment un vaste chantier, dont je suis certain qu'au moins 60% des fonctions sont inconnues ou quasi inconnues !


:hello:
Comme "certains" disent: rtfm!  
http://msdn.microsoft.com/library/ [...] frame=true


Message édité par breizhbugs le 28-03-2006 à 16:54:12
Reply

Marsh Posté le 28-03-2006 à 23:08:14    

Encore plus fou : en MFC -> CFile::SetLength(ULONGLONG) pouvait difficilement inventer plus simple (pour les sceptiques je connaissais)
http://msdn2.microsoft.com/en-us/l [...] S.80).aspx


Message édité par slash33 le 28-03-2006 à 23:09:21
Reply

Marsh Posté le 28-03-2006 à 23:08:47    

Grom14 a écrit :

Je suis tombé sur ce topic en recherchant la même chose, mais pour linux.
Il y a bien truncate sur un descripteur, mais c'est du C ..
Y a-t-il quelque chose en C++ ?


J'ai trouvé ca: http://www.cplusplus.com/ref/iostr [...] state.html
Mais comme je ne suis absolument pas un pro du c++ je sais pas si ca peut marcher?

Reply

Marsh Posté le 28-03-2006 à 23:19:14    

non, ca c'est autre chose :)
en fait en standard c'est infaisable
 
faut voir avec boost::filesystem si c'est possible

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed