Dites, ceux qui sont pas des totos, il me semble que mon code devrait répondre à la question de Dzoumaka non ? rassurez moi un instant...
Ensuite, Davyid, franchement, c'est pas à toi de répondre dans des post comme celui-ci, ou tu ne peux clairement pas faire avancer le Schmilblick !
Sinon, pour Dzoumaka :
en lisant ta question, c'est le code qui m'est venu à l'esprit.
Puisque tu as des difficultés à le comprendre, je vais essayer de le l'expliquer, mais avant de dire que tu ne comprenais rien, tu aurais pu essayer de faire des tests avec le bout de code que je t'ai filé !!
Alors, en premier il y a la DataSection. Dans cette partie on va stocker le(s) fichier(s) dont tu parlais dans ton code. Un peu comme une image, sauf que c'est un fichier. Ok ?
pour les images, comme le format est connu, il suffit d'indiquer à la commande de chargement "CatchImage()" la position de début du fichier image.
On le fait de la manière suivante :
monlabel: est un pointeur qui pointe dans la mémoire de l'exécutable lui-même. on l'utilise pour des commandes du type GOTO (c'est d'ailleurs pour ça qu'elle sont dangereuses)
Pour récupérer l'adresse de ce label on fait :
Ca te donne une adresse mémoire qui pointe à l'endroit de l'exécutable ou tu l'a mis.
Et comme ici je l'ai mis avant mon fichier inclus, il me donne l'adresse du début du fichier. Ok ?
Deuxio : comme mon fichier est un fichier quelconque, il n'y a pas moyen de savoir ou il se finit, ni quelle taille il fait. Il faut donc utiliser un deuxième label.
en faisant la soustraction entre les deux :
j'obtiens la taille du fichier. Ok ?
Ensuite, comme on a toutes les infos sur le fichier, on peux l'utiliser, dans mon code d'exemple j'ai choisi de le copier dans un bloc mémoire différent avec CopyMemory(?premier_pointeur, *buffer, taille_fichier)
Mais c'était juste pour donner un exemple de comment utiliser les données fournis !
Par exemple si tu voulais envoyer le fichier à une autre machine par réseaux tu peux faire :
Code : Tout sélectionner
SendNetworkData(clientID, ?premier_pointeur, ?pointeur_fin - ?premier_pointeur)
voila.
Si tu ne comprend toujours pas, réfléchis à ce qui ne passe pas, et pose une question détaillée. Je ne répondrais plus dans le cas contraire...
Il est aussi possible que tu ais mal posée ta question initiale. Alors penses-y