Salut, la prochaine fois ça serai bien de séparer tes questions par sujet, car sinon ça deviens brouillon ;-)
Théoriquement dans l'informatique, un programme n'est pas censé de modifier le code exécutable d'un autre programme, ceci peut devenir problématique si ce programme est exécuté en même temps par le Shell de Cpcdos ou par un service ...
Par ce que pour modifier 1 ligne en plein milieu d'un gros fichier, il faudrait lire tout le contenu, et tout réécrire en sautant la ligne que tu veux, ce qui serai fastidieux et plus long
La solution :
Ce qu'il serai préférable, c'est 'un fichier de configuration' extérieur au programme, comme un fichier .ini d'un jeu ou autre, cet a dire que ce fichier contient les paramètres DU programme.
Et il peut contenir les commandes
1 2 3 4
| FIX/ mon_parametre_1 = 1
FIX/ mon_parametre_2 = 5
FIX/ mon_parametre_3 = 0
..... |
Comme ça, dés que ton programme va s'exécuter, il va exécuter ce fichier qui lui va FIXer les variables que le programme va reconnaitre ;-)
Es ce que tu vois le principe ? Cette méthode est la plus utilisée dans l'informatique
Pour que ton programme crée automatiquement ce fichier, tu peux aller voir du côté de la commande FICHIER/ qui lui permet d'écrire/lire dans un fichier.
Méthode de recherche dans le manuel PDF --> CTRL + F et cherche le mot clé
fichier/ et fais suivant jusqu’à te retrouver dans la partie
"LIRE & ECRIRE DANS UN FICHIER (+BINAIRE)"
page 40.
En dessous tu as un exemple pour écrire dans un fichier, la voici :
1 2 3 4 5
| FICHIER/ /SORTIR #1;%systeme%\bureau\config.cpc
FICHIER/ /ECRIRE #2;FIX/ CFT_BAR1_Mon_parametre_1 = toto
FICHIER/ /ECRIRE #2;FIX/ CFT_BAR1_Mon_parametre_2 = tata
FICHIER/ /ECRIRE #2;FIX/ CFT_BAR1_Mon_parametre_3 = titi
FICHIER/ /FERMER #2 |
( Oublie surtout pas de fermer le canal #2, tu peux bien évidement utiliser un autre numéro de canal )
Pour t'expliquer, qu'es ce qu'un canal, .. par exemple GROSSIÈREMENT, il sert quand tu ouvre un fichier avec
/SORTIR, d'avoir comme une espèce de canalisation qui se dirige vers le fichier %systeme%\bureau\config.cpc et que les l'influx d'eau
(les données) qui
SORT de ton ordinateur et qui arrive sur ton support (USB, disque dur...) qu'elles soient stockée. Il faut pas utiliser le même numéro si tu ne l'a pas fermé avant car sinon tu va créer une fuite le plombier va fermer la valve entre les deux numéros et ça ne marchera pas.
Si tu veux lire ou écrire dans un autre fichier en même temps que celui là, il faut choisir un autre numéro. Et tu peux utiliser jusqu'a 127 canaux simultanément
Et même principe pour le paramètre
/ENTRER, sauf que c'est dans l'autre sens (lecture)
Bref, une fois que le fichier est crée, tu as plus qu'a l'exécuter avec EXE/ %systeme%\bureau\config.cpc et le tour est joué ;-)
Comme l'aperçu d'images ?
Si oui, c'est simple, il faut créer
une imagebox !
Un exemple ici :
Méthode de recherche dans le manuel PDF --> CTRL + F et cherche le mot clé
imagebox( et fais suivant jusqu’à te retrouver dans la partie
"LIRE & ECRIRE DANS UN FICHIER (+BINAIRE)"
page 70. ( oublie pas de créer une fenêtre )
La particularité, c'est qu'il faut créer un événement avec EV/ pour le 'CLIC' après la commande CREER/ :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ini/ imagebox(
ini;nom = "MON_IMGBOX"
ini;fenetre = "le nom de ta fenetre"
ini;couleur = "000,000,000"
ini;couleurf = "001,001,001"
ini;type = "0"
ini;image = "os\prog\image.BMP"
ini;px = "10"
ini;py = "30"
ini;tx = "400"
ini;ty = "280"
creer/
ev/ monfichierEV.CPC
ini/ imagebox) |
si tu cliques sur ton imagebox "MON_IMGBOX" , il doit exécuter une procedure PROC/ qui se trouve dans monfichierEV.CPC :
1 2 3
| PROC/ MON_IMGBOX(CLIC)
... mon code ici
FIN/ PROC |
En suite pour qu'il change d'image, il suffit tout simplement de réutiliser la procedure INI qui permet la création de la fenetre, mais cette fois tu utilises uniquement dont ce que tu as besoin
1 2 3 4 5 6 7
| PROC/ MON_IMGBOX(CLIC)
ini/ imagebox(
ini;nom = "MON_IMGBOX"
ini;image = "os\prog\Ma nouvelle image.jpg"
creer/
ini/ imagebox)
FIN/ PROC |
J'ai tout répondu ? :-)
Tiens moi au ju'
Je n'est pas compris ta question, reformule-la mais dans un autre sujet ;-)
Cordialement
Partager