Afficher un message
Vieux 02/02/2009, 15h01   #4 (permalink)
Profil
Wolfi
Membre
Ancienneté  80%
Ancienneté 80%
 
Date d'inscription: mai 2006
Localisation: Rouen
Âge: 36
Pays :
Messages: 675
Téléchargements: 0
Uploads: 0
Merci: 1
Remercié 14 fois dans 7 Posts
Envoyer un message via ICQ à Wolfi Envoyer un message via AIM à Wolfi
Par défaut

M'étant demandé pq Hackchip n'avait pas automatisé le remplissage des 0, jme suis dis que j'allais le faire, donc voici le code en C, testé sur USBL---ORI, qui demande a l'utilisateur l'original et lle modifié et qui remplit tout seul avec assez de 0 pour que les deux aient la même taille. Si ca interesse quelqu'un jpeux le compiler pour windows et faire en sorte qu'il ne demande plus les noms de fichiers vu qu'en théorie il en a pas besoin, mais jvoulais deja faire une première ébauche

Citation:
/* ================================================== ========================= */
/* */
/* remp0.c */
/* (c) 2009 */
/* */
/* Rempli de 0 un fichier pour qu'il fasse la meme taille qu'un autre :=) */
/* */
/* ================================================== ========================= */
#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("remp0 realise par Wolfi pour metagames-eu\n");
char orinom[52],modinom[52]; // pas forcément utile vu qu'on connait déja les noms

FILE *ori = NULL;
FILE *mod = NULL;

puts("Nom de l'original");
gets(orinom);
puts("Nom du modifié");
gets(modinom);

ori=fopen(orinom,"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(modinom,"a");
if (mod != NULL) {
/* 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é\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;
}
p.s.: je sais qu'on connait deja la taille de l'original (462944 octets) mais si jamais une nouvelle version de USBLD sort, le programme s'adaptera
__________________
le loup est un loup pour le loup

Nintendo: N64, NGC
Sega: Dreamcast
Sony: PSP, PS3

Dernière modification par Wolfi ; 02/02/2009 à 15h07.
Wolfi est déconnecté   Réponse avec citation