Inclure un fichier dans l'exe avec Includebinary

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Xizvak
Messages : 10
Inscription : mar. 22/avr./2008 18:30

Inclure un fichier dans l'exe avec Includebinary

Message par Xizvak »

Bonjour, je rencontre un problème actuellement. J'aimerais pouvoir enregistrer une valeur dans un fichier txt et la lire ensuite, MAIS ce fichier doit être inclu dans l'.exe

J'ai testé ceci :

Code : Tout sélectionner

Global file$

DataSection
file$:
  IncludeFile "config.txt"
EndDataSection

OpenFile(1,file$)
WriteLong(1,10)
CloseFile(1)

OpenFile(1,file$)
var=ReadLong(1)
CloseFile(1)

MessageRequester("Test", Str(var), 0)
Mais ça n'a pas l'air de fonctionner, j'ai comme erreur File$ object not initialized. Pourtant je ne vois pas trop comment faire autrement =(

Merci d'avance.
Anonyme

Message par Anonyme »

C'est simple

décompose ton petit programme ,

Code : Tout sélectionner

Global file$

Declaration d'un string , pour le moment il vaut 0

Code : Tout sélectionner

DataSection
file$:
  IncludeFile "config.txt"
EndDataSection 
tu inclus le fichier texte , l'étiquette file$: porte à confusion avec la variable déclaré plus haut.

Code : Tout sélectionner

OpenFile(1,file$)
File$ vaut 0 , donc impossible d'ouvrir le fichier 0.

il n'y a pas de commande qui te permettent de lire un fichier directement dans l'exe , y a une soluce qui consiste à choppé l'adresse du fichier puis de lire byte par byte , mais bon , trouve une autre soluce .
Xizvak
Messages : 10
Inscription : mar. 22/avr./2008 18:30

Message par Xizvak »

Enfait pour être plus clair, ce que j'aimerais c'est pouvoir enregistrer une valeur de type LONG dans le programme. Quand on ferme le programme et qu'on l'ouvre a nouveau, pouvoir récupérer cette valeur.

Le soucis c'est que je parviens a faire ça en stockant dans un fichier externe mais pas sans fichier externe :s
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

Le soucis c'est que je parviens a faire ça en stockant dans un fichier externe mais pas sans fichier externe
moi personnellement c'est se que je fait souvent c'est mois casse tète. après il doit y avoir d'autre façon :wink:




@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Xizvak a écrit :Enfait pour être plus clair, ce que j'aimerais c'est pouvoir enregistrer une valeur de type LONG dans le programme. Quand on ferme le programme et qu'on l'ouvre a nouveau, pouvoir récupérer cette valeur.

Le soucis c'est que je parviens a faire ça en stockant dans un fichier externe mais pas sans fichier externe :s
ben t'es bien obligé de l'ecrire quelques part de toute façon !!

alors que ce soit un fichier ou bien la base de registre, c'est du kiff kiff

obligation d'utiliser la memoire de masse pour sauver ta valeur !! :)

sinon a l'extinction du prg, tout se perd .. c'est normal !! :)
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Ce que tu demandes consistes à modifier l'exécutable de ton propre programme, alors qu'il tourne! Ca me parait difficile. Il y a deux solutions. Une que je vais garder pour moi et qui ne fonctionnerait de toutes façons que sur un système de fichiers NTFS, et l'autre : créer un processus en mémoire lancé depuis ton programme, et qui va continuer à tourner une fois que ton programme aura cessé de s'exécuter. Ceci fait, il modifiera le fichier de ton programme.
Pas super facile à réaliser, mais faisable. Est-ce que tu es capable de modifier un exe sans le corrompre?
Anonyme

Message par Anonyme »

Pas super facile à réaliser, mais faisable. Est-ce que tu es capable de modifier un exe sans le corrompre?
Les datas sections doivent permettre se genre de truc
tu code une datasection avec une suite facile à trouvé , ( les valeur ascii de ton nom par exemple ) puis en fouillant dans l'exe byte par byte , on doit bien tombé dessus.

Y avais un truc similaire qui traine sur le forum ?
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Cpl.Bator a écrit :
Pas super facile à réaliser, mais faisable. Est-ce que tu es capable de modifier un exe sans le corrompre?
Les datas sections doivent permettre se genre de truc
tu code une datasection avec une suite facile à trouvé , ( les valeur ascii de ton nom par exemple ) puis en fouillant dans l'exe byte par byte , on doit bien tombé dessus.

Y avais un truc similaire qui traine sur le forum ?
Je pense avoir déjà vu ça, pê sur le forum anglais.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

djes a écrit : Je pense avoir déjà vu ça, pê sur le forum anglais.
ici aussi !!
:wink:

http://www.purebasic.fr/french/viewtopi ... automod%2A
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

Dobro a écrit :
djes a écrit : Je pense avoir déjà vu ça, pê sur le forum anglais.
ici aussi !!
:wink:

http://www.purebasic.fr/french/viewtopi ... automod%2A
Quelle efficacité! 8O :D
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

djes a écrit : Quelle efficacité! 8O :D
super bonne memoire du Forum surtout :lol: Merci
Répondre