Bon c’est beaucoup mieux Wolfi, sauf qu’il y a un petit bug, il ne soustrait pas la taille du fichier modifier pour compléter à celui du fichier orignal, ce qui donc provoque un dépassement de la taille souhaiter.
Sinon je voulais savoir si c’était possible à partir de ton code de killer un fichier Batch, puis afficher un message d’erreur, car je viens de penser à une chose, c’est que si la taille du fichier modifier dépasse à celui du fichier orignal, alors sa ne va pas fonctionner, si tu ne peux pas, ce n’est pas grave, GTO fera une remarque de cette étape dans son tutorial.
A par ça merci car il me sera très utile ton outil pour réaliser d’autre pack custom.
Pour GTO, cela est normal que sa ne marche pas, car tu l’avais déjà patcher auparavant, il faut donc que tu remettes le fichier original Partie01.ELF qui ce trouve dans le pack, je vais d’ailleurs arranger ça sur la prochaine mise à jour du pack, afin d’éviter d’avoir ce problème.
@+
__________________
Dernière modification par hackchip ; 06/02/2009 à 13h20.
while (position_courante<taille) <-- pour moi c'est cette etape qui fait la soustraction dont tu parles, mais par précaution je vais reverifier completement le prog, pour ce qui est du controle, pour savoir si le modifié est plus grand que l'original avant de démarrer, jte fais ca, c'est juste une ligne a rajouter
edit: alors apres revérif, je comprends vraiment pas de quel bug tu parles: je pars d'un fichier original plus grand qu'un fichier modifié, le programme se met a la fin du modifié et le complete avec des zéro jusqu'a ce que sa taille soit egale à l'originale Sinon j'ai rajouté un controle de taille pour voir si le modifié est plus grand que l'original, pour ce qui est de killer le batch, ce n'est pas possible facilement a l'interieur de mon prog de faire ca, par contre, si tu sais controler la valeur de retour d'un programme, je peux m'arranger pr faire un "return -1" en cas d'erreur et un "return 0" en cas de succes, ski te permet de controler et de fermer le batch si ca rate.
Citation:
/* ================================================== ========================= */
/* */
/* remp0.c */
/* (c) 2009 */
/* */
/* Remplit un fichier de 0 a partir de la fin */
/* */
/* ================================================== ========================= */
#include <stdio.h>
#include <stdlib.h>
/* Maintenant argv[1] est le premier argument, le fichier original
et argv[2] est le second argument, le fichier modifié! */
int main(int argc,char **argv){
printf("remp0 realise par Wolfi pour metagames-eu\n");
FILE *ori = NULL;
FILE *mod = NULL;
ori=fopen(argv[1],"r+b"); //ouverture du fichier en mode lecture/ecriture sans effacement
if (ori != NULL) {
long taille=0;
fseek (ori , 0 , SEEK_END);
taille = ftell (ori); // on a la taille du fichier
fclose(ori);
mod=fopen(argv[2],"a");
long taille_mod=ftell(mod); // on a la taille du fichier modifié
if ( (mod != NULL) && (taille_mod<taille)){
/* On va maintenant ajouter autant de 0 que necessaire a modinom */
long position_courante=ftell(mod); //on a l'offset en cours à la queue du fichier a modifier
while (position_courante<taille){
fputc(0,mod);
position_courante++;
}
fclose(mod);
puts("Patchage du fichier reussi");
}
else printf("Impossible d'ouvrir le fichier modifié ou celui-ci est plus grand que le fichier original.\n");
}
else{
// On affiche un message d'erreur si un des deux fichiers n'est pas present
printf("Impossible d'ouvrir le fichier original.\n");
}
return 0;
}
__________________
le loup est un loup pour le loup
Nintendo: N64, NGC
Sega: Dreamcast
Sony: PSP, PS3
Dernière modification par Wolfi ; 07/02/2009 à 01h40.
Chez moi sa fait toujours pareil, il double sa taille, j’ai même essayé sur un environnement proche d’Unix CygWin, et sa me fait pareil, au pire si sa marche chez toi, compile le en Win32, et ont testera avec ta compilation.
Voila, compilé avec Digital Mars C Compiler, marche tres bien chez moi, si ca marche toujours pas chez toi va falloir que tu m'expliques ton protocol de test de A à Z lol
Le mien pour info: je prend un fichier avec pas grand chose dedans, je prend un autre avec beaucoup de chose dedans, je lance "remp0 grosfich petitfich" et hop petitfich est rempli de zéro apres sa fin, et fait la meme taille que grosfich!
PS: désolé d'avoir été si long, mais j'ai tenté d'installer une chaine de cross-compilation linux vers windows sans succes (une enorme galere ces machins) donc je suis passé direct a une machine virtuelle avec windows dessus, le meilleur compilateur C (digital mars ) et voila, ca me sort un exe QUI MARCHE !
__________________
le loup est un loup pour le loup
Nintendo: N64, NGC
Sega: Dreamcast
Sony: PSP, PS3
Dernière modification par Wolfi ; 11/02/2009 à 17h09.
En effet avec ce compilateur ton code marche parfaitement mieux, moi j’utilisai lcc-win32 qui surement le faisait pas très bien marcher, j’en ai profité pour ajouter les accents pour qui soient visibles en format DOS.
Encore merci car comme je l’ai dit cet outil sera utile pour d’autre projet.
Pour télécharger la mise à jour du Pack, aller comme d’habitude sur le premier post de ce sujet.
Coté utilisation tous reste pareille sauf pour l’étape de l’ajout des 00 00 00... à l’aide d’un logiciel Hexadécimal, qui n’est maintenant plus nécessaire vu que sa le fait maintenant tout seul
ouf tu me rassures, jcommençais à me dmander si j'avais bien compris ce que tu voulais faire lol bizarre que le compilateur change quelque chose, j'ai pas l'impression d'avoir utilisé des trucs ambigüe, mais ptetre bien que les fonctions de manip de fichiers sont pas bien standardisées et produisent des effets différents.
En tout cas, si t'as bsoin d'autre chose de ce genre, hesite pas à me dmander! Avec la greve a la fac jmemmerde a mort xD
__________________
le loup est un loup pour le loup
Ok merci, pour la grève sa n’arrête pas, presque tous les soirs il en parle sur France 3 Haute-Normandie.
Sinon tu es à quelle Fac, et tu y fais quoi comme étude pour métrisé comme ça du C++ ?
Si tu veux que sa soit anonyme répond moi en privé, ou même si tu ne préfère rien dévoilé je comprendrai.
je voudrais pas être hors sujet parcqu'on n'est pas dans la section PS2, mais depuis 3 jours je fouille le net pour trouver un tuto en français pour personnaliser l'USBADAVANCE sur ma ps2.
si vous pouvez me donner un lien ki puisse me guider ou même me dire la marche à suivre avec les différents softs, je vous serais très reconnaissant.