YOYOCUT 2 - DÉCOUPE FICHIER [VISUAL C++ 2005 EXPRESS]

yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 25 avril 2006 à 07:21
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 - 26 nov. 2007 à 16:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37196-yoyocut-2-decoupe-fichier-visual-c-2005-express

yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
26 nov. 2007 à 16:40
Mise à jour !

YOYO, @+.
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
12 août 2007 à 12:40
Nouvelle mise à jour !

YOYO, @+.
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
13 avril 2007 à 10:30
Salut ndubien !

Merci pour l'information, mais je connaissais déjà ce petit souci. En effet, c'est le format que j'ai choisi qui est erroné et qui donc provoque ce problème. Je m'explique.
Lorsque je découpe un fichier, au début du fichier de base (*.001.yct) je mets ceci :
extension nombre_de_fichiers (sur 3 caractères)
Donc dans ton cas ndubien, cela donne ceci, en le découpant en 3 fichiers (par exemple) :
f i l e 003
Donc mo programme, considère que l'extension est "f" et que le nombre de fichier est "i l", donc invalide. D'où la non recomposition.
Comme c'est le format que j'ai choisi pour la version 2.x, par souci de compatibilité, je ne compte pas le changer. Pourtant il suffirait par exemple de remplacer l'espace de séparation entre l'extension et le nombre de fichiers par le caractère NULL (code ascii : 0).
Heureusement je suis une autre version, la 3, utilisant un format totalement différent et beaucoup plus fiable.

YOYO, @+.
ndubien Messages postés 557 Date d'inscription dimanche 25 septembre 2005 Statut Membre Dernière intervention 10 mai 2014 4
12 avril 2007 à 20:36
Bonjour yoyo269,

je vous écrit pour vous signaler une défaillance dans votre programme (il s'agit d'une défaillance minime). J'ai un fichier nommé : "a.f i l e" de 132ko, le programme le coupe correctement mais lors de la recomposition de ce fichier, votre programme crée un fichier nommé différement : "a.f" de 0ko. Je pense que ce problème sera simple à résoudre.

En tout cas, il s'agit d'une très bonne source, car elle fonctionne bien, est accueillante...

A bientôt.
ndubien
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
16 févr. 2007 à 09:52
Nouvelle mise à jour.
Au menu, choix de la langue (anglais ou français).
Comme c'est moi (et moi seul) qui est fait la traduction, je ne promets rien quant à la qualité de l'anglais. lol
Donc si quelqu'un se sent capable de vérifier cela...
Autrement, une nouvelle fonctionnalité vous permet de recomposer un fichier, découpé avec YoyoCut, dont les morceaux se situent sur un serveur HTTP.
Il vous suffit d'entrer l'URL du fichier de base (*.001.yct) et de lancer la recomposition.
Pas de souci à avoir, YoyoCut télécharge seul les données nécessaires pour recomposer le fichier.
Bon test à ceux que ça tente ! :p

YOYO, @+.
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
24 janv. 2007 à 20:21
Nouvelle mise à jour.
Principale avancée, la nouvelle option qui permet de générer des fichiers auto-recomposables. C'est-à-dire que YoyoCut n'est pas nécessaire pour recomposer le fichier d'origine.
Essayez et vous verrez ! ;)

YOYO, @+.
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
28 déc. 2006 à 10:04
Merci CHAR As Human ! (ça sent le VB ce nom là)
C'est sympa mais faut pas exagéré non plus ! :-D
Comme je l'ai déjà dit, si tu as des remarques, suggestions et surtout si tu trouves des bugs, hésite pas à m'en parler, ça serait cool !
Merci d'avance.

YOYO, @+.
CHAR As Human Messages postés 20 Date d'inscription vendredi 23 septembre 2005 Statut Membre Dernière intervention 10 juin 2010
27 déc. 2006 à 23:05
400 fois mieu que cut killer
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
20 déc. 2006 à 18:28
En gros c'est un travail que tu fais sur papier ou tu va définir les grandes lignes de ton application, comment elle va être organisée (principalement: des cas d'utilisation, des diagrammes de classe, des diagrammes de séquence).
Ce dont je parle est valable dans le cadre de la POO, ce qui n'est pas ton cas.
Ici, ca aurait pu consister à identifier différents modules, afin de ne pas tout mélanger comme tu l'a fait
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
20 déc. 2006 à 09:36
Salut vecchio56,

c'est vrai que cette méthode n'est pas la mieux, mis on va dire que c'est ma façon de coder bien à moi ! ;)
Je comprends très bien que mon code ne soit pas très lisible pour quelqu'un d'autre que moi, mais moi avec l'habitude je me relis sans aucun souci. Même en reprenant un code plusieurs mois plus tard.
Je vais quand même essayer de changer mon habitude, pour utiliser plusieurs .cpp.
Sinon qu'appelles-tu une phrase d'analyse et de conception ?
Ca m'intéresse beaucoup !

Merci d'avance pour ta réponse et merci aussi pour tes remarques ! :D

YOYO, @+.
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
20 déc. 2006 à 00:34
En fait c'est ce que j'ai fait dans ce code par exemple
http://www.cppfrance.com/code.aspx?ID=28413
Mais depuis je me suis soigné, je recommencerais pas :)
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
20 déc. 2006 à 00:26
Effectivement, SAKingdom, tu es très courageux
Franchement un seul fichier contenant tout le code, c'est pas très malin
Je sais pas si t'a fait une petite phase d'analyse et de conception (a priori je dirais que non), mais ca aurait été utile.
La c'est très difficile de comprendre l'architecture de ton projet

Enfin si t'arrive à te comprendre c'est l'essentiel, mais ne reste pas trop longtemps sans toucher à ton projet, sinon un beau jour tu va vouloir le modifier, et là tu ne va plus rien comprendre
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
24 nov. 2006 à 00:15
Oups c'est pas "mauvaise manipulation de poiteur" mais plutot pointeur.

Ça a plus de sens comme ça.
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
24 nov. 2006 à 00:11
Ben c'est à ça que je pensais mais je n'étais sûr de rien (peut-être que ça aurais été utile pour une autre version ou ça corriger quelque chose, qui sais).

Pour ce qui est de la motivation, non j'en ai pas beaucoup je dois dire. Je lis petit bout par petit bout. Pour être franc, je ne comprend pas 95% du programme (son fonctionnement). C'est pour ça que je repère seulement ces petites choses. Étant donné que ton code est très gros, je ne peux pas avoir une vue d'ensemble et repérer les gros bugs potentiels (par exemple, oublier de fermer une instance ou de libérer la mémoire ou mauvaise manipulation d'un poiteur etc.).

Pour ce qui est de commenter la source, bah pas la peine. C'est vraiment beaucoup trop gros et de toute façon, je ne crois pas que ça changera quelque chose. Soi tu comprend le code (avec ou sans commentaire) soi tu le comprend pas (de tout façon, ce n'est pas pour débutant).

Mais j'y pense, j'ai pas encore donné de note moi. Allez, va pour un 10.
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
23 nov. 2006 à 18:39
Salut SAKingdom !
Ben dis donc t'es motivé toi, surtout que mon code est pas super commenté ! lol
Je pensais que tu avais lâché le morceau (et j'aurai tout à fait compris).
En tous cas merci bcp de ton aide, vraiment un grand MERCI ! :p
Pour ce qui est des messages WM_PAINT, en fait ils ne me servent à rien ici puisque je ne traite rien de particulier.
Donc à la limite je peux les supprimer.

YOYO, @+.
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
23 nov. 2006 à 17:21
Oufffff. Le code est très gros. Je progresse (lentement).

J'ai remarqué une ptite chose pas très importante mais bon.... ce serais interessent de corriger pour une future version.

Dans les procédures de tes contrôles, pour WM_PAINT, tu fais hdc = GetDC(...) et ReleaseDC.

Cependant, je crois que BeginPaint et EndPaint font la même chose:
hdc = BeginPaint(...);
EndPaint(...);

Bon c'est pas grand chose mais ça te sauve 2 appels de fonction pour chaque "repainturage" de chaque contrôle.
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
19 nov. 2006 à 19:16
Ca y est c'est mis à jour !!!
Il y a en plus un rapport d'erreurs un peu plus évolué que le précédent.

YOYO, @+.
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
19 nov. 2006 à 18:18
SAKingdom >> llllllllllllloooooooooollllllllllllllll !!! olala le boulot ! heureusement que tu me l'as dit. J'avais cette fonction juste pour qu'elle fonctionne au début (avec copier coller etc...) et j'ai oublié de la retoucher. Je vais faire ça de suite parce que c'est vrai que le nombre de strlen() est impressionnant en s'y repenchant dessus. MERCI !!!

wizard512 >> merci pour ton commentaire c'est sympa ! Je précise d'ailleurs que YoyoCut 2 est téléchargeable sur telecharger.com si vous voulez en parler à votre entourage. Une version 3 est prévue mais le temps libre décidera ou non si elle verra le jour (je l'espère entous cas).

YOYO, @+.
wizard512 Messages postés 459 Date d'inscription dimanche 9 janvier 2005 Statut Membre Dernière intervention 11 mai 2013 2
19 nov. 2006 à 17:38
OO

Jolie source,
peux etre trés utile,
et en plus légère, peut etre glissé dans une clé usb en plus
d'une des partie d'un fichier couper, bref vraiment éfficace
pour reconstitution apres....

Utilisation vraiment facile, que sa soit pour le découpage,
ou pour la reconstitution...
Avec menu et quelques options utile, ainsi qu'un retrait
dans la bar de démarrage en cas de besoin....

En plus un bon suivi de la source,
bref pour moi sa sera un +10 et
en souhaitant qu'il y aura une prochaine version...


~~ DotWizard512 ~~
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
19 nov. 2006 à 17:29
Bon, je remarque encore quelque strcmp(.., "")

Mais là, je vien de tomber sur une horreur:
À partir de la ligne 7776, tu gère ton tableau Fichier en te situant dedans avec sa grosseur. Le problème c'est que tu apelle À CHAQUE FOIS strlen. Tu parcoure toute la chaine à chaque fois et je remarque un nombre important de ce genre de manipulation. À tu oublier de mettre à jour cette section? ;)
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
19 nov. 2006 à 08:27
Tu as tout à fait raison SAKingdom !
Merci beaucoup ! C'est ma sale habitude d'utiliser strcmp ça !
J'espère que tu regarderas au reste pour avoir ton avis.

YOYO, @+.
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 nov. 2006 à 21:48
Bon, je me suis trompé.

Par ton if(strcmp(Argument, "")), je suppose que c'est pour tester si il existe quelque chose dans la chaine. Donc c'est pas:

if(!Argument[0])
comme je disais mais
if(Argument[0])
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 nov. 2006 à 21:06
Oups, j'ai oublier le #define:

#define CPYCHAR(dest, c) dest[0] = c; dest[1] = 0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
18 nov. 2006 à 21:00
Salut. J'ai pas le temps de tout vérifier (trop gros) mais je remarque quelque petites choses en partant:

if(strcmp(Argument, ""))
ce serait pas mieu de faire
if(!Argument[0])
Ou quelque chose dans le genre?

Ensuite:

if(Argument[0] != '"')
{
char Arg[MAX_PATH];
strcpy(Arg, """);

strcpy pour une seul valeur? Pas mieu de faire (à la limite): Arg[0] = '"'; Arg[1] = 0; ???

Pour faire plus propre, tu peux faire des macro aussi:

CPYCHAR(dest, c) dest[0] = c; dest[1] = 0

Comme je dis, j'ai pas trop le temps donc je n'est pas le temps de confirmer ce que je dis ni d'aller plus loin pour l'instant.
À toi de voir.
Tien moi au courant.
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
18 nov. 2006 à 20:33
Comme promis j'ai enfin mis à jour ma source YoyoCut 2 !
A vos claviers pur vos remarques et impressions !

YOYO, @+.
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
27 avril 2006 à 20:55
Ah oui merci. Je vais voir si je vais le faire.
En tous cas pas tout de suite, je suis sur autre chose en ce moment.

YOYO, @+.
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
27 avril 2006 à 20:17
J'ai p-e une idée, pourquoi ne pas faire des format tous fait. je m'explique.

sur une disquette on peut mettre 1Mo et des poussière, pour pas mettre une option qui découperai directement le fichier de manière a ce que tous les fichier enfants aie une bonne taille pour etre placer sur une disquette. On peut faire cela aussi pour les cd,... enfin bon ce n'est que une idée
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
27 avril 2006 à 20:12
Tant mieux, mais si t'en vois un (ou plus lol) touche en moi un mot.

YOYO, @+.
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
27 avril 2006 à 20:09
Merci, personnellement je met 10/10 . pour moi ce programme est exelent, j'ai jms eu aucun bug.
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
27 avril 2006 à 19:55
Ok! je vais y jeter un oeil.
Merci pour le compliment, c'est sympa.
Une note serait la bienvenue.
PS: j'avoue que j'avais en tête de faire qq chose de mieux que CutKiller en personne ! LOL.

YOYO, @+.
deck_bsd Messages postés 1243 Date d'inscription jeudi 31 mars 2005 Statut Membre Dernière intervention 3 août 2016 2
27 avril 2006 à 19:51
Tous ce que je dirai moi c'est : exelent ! . Concurence certaine a un bon vieu cutkiller ;).
En faite non je dirai 2 chose.

Dans ma source Trif que j'ai déposer j'ai un problème avec ma progressbar, lorsque je transfer des fichiers sur un support plus lent (exemple une disquette) et bien elle n'est ps sincronisée avec le text qu j'affiche. Tu ne saurai pas jeter un coup d'oiel a ma source svp?
yoyo269 Messages postés 1403 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 11 janvier 2009 2
25 avril 2006 à 07:21
J'attends vos messages.
N'hésitez pas à me données des idées d'évolution, même si elles peuvent vous paraître farfelues.

YOYO, @+.
Rejoignez-nous