Génerer un fichier texte et écrire dedans [...] [BATCH] - Shell/Batch - Programmation
Marsh Posté le 18-05-2014 à 09:56:24
!
Pour éviter de recopier tout le temps le même bout de code, tu peux essayer de factoriser cela en écrivant une fonction qui prend en paramètre la valeur que tu saisis :
Code :
|
les variables %var:~0,1% et %var:~1% permettent d'extraire une chaîne de caractères à partir d'une autre : le premier caractère et le reste de la chaîne.
Après, à toi de réfléchir comment tu peux essayer d'associer la première lettre avec l'arme correspondante
Marsh Posté le 18-05-2014 à 10:53:52
Bonjour !
Si j'avais la même chose à faire, pour éviter les saisies (et pour peu que vous soyez amené à faire régulièrement des configurations, sinon l'investissement ne vaudra pas le coup, même si cela peut être amusant à faire ), j'agirais ainsi :
* Création d'un fichier de configuration des actions, qui contiendrait les associations entre les "touches" et les actions :
Code :
|
(Je ne garantis pas que les libellés des actions soient bons, par ailleurs, vous avez deux fois l'action "y", aux lignes 34 et 38).
J'ai volontairement repris le "buy" à chaque ligne, car cela permet d'être plus ouvert, et de pouvoir gérer les éventuelles autres actions. Je vous conseille d'ailleurs d'être plus explicite dans le nommage de vos actions, et de faire plutôt quelque chose du genre :
Code :
|
Ensuite, vous faites un ou plusieurs fichiers de paramétrage, qui correspondent chacun à un mapping. Ces fichiers sont de la forme
Code :
|
L'avantage est que ces fichiers-là sont rapides à créer quand vous avez besoin de faire un nouveau paramétrage, pour vous ou quelqu'un d'autre.
Pour finaliser le tout, il ne vous reste plus qu'à faire un programme qui lit les deux fichiers (les fichiers ayant la même structure, le code de lecture est très proche), puis qui génère le fichier de sortie.
Pour être le plus ouvert possible, les trois noms de fichiers seront passés en paramètre.
Maintenant, quelle technologie utiliser pour ce programme, à vue de nez, c'est un poil trop complexe pour n'utiliser que du batch, je pense qu'il serait plus simple (et plus évolutif) de vous tourner vers un langage.
Le choix du langage est une affaire de goût, et de connaissances. Personnellement, je le ferais en C++, car c'est le langage que je connais le mieux, mais n'importe lequel devrait faire l'affaire, pour peu qu'il soit généraliste ou adapté à la lecture et au traitement de fichiers ligne par ligne. Un langage interprété peut être plus adapté pour mettre au point le programme.
Sinon, maintenant que j'y pense, je vous livre aussi la manière dont je ferais (au plus simple) le programme :
* Fonction de lecture du fichier : Pour chaque ligne lue, "splitter" la ligne avec le signe égal comme séparateur, puis stockage des éléments dans une map, avec la partie avant le signe égal comme clé, le reste comme valeur.
* Fonction principale :
- lecture du fichier parametre1 et stockage dans map1
- lecture du fichier parametre2 et stockage dans map2
- Boucle sur tous les éléments de map2, pour récupérer une paire ( CLE, VALEUR) et écriture dans le fichier parametre3 de la ligne : bind "CLE" "map1[VALEUR]".
Bonne continuation !
Marsh Posté le 17-05-2014 à 21:51:45
Bonsoir, je suis venu sur ce forum pour avoir de l'aide a propos d'un batch que j'essaye de finir.
J'en ai déjà créer, oui mais des beaucoup plus simple x)
Il servira a créer des binds dans le jeu css qui va tout gérer (Création du fichier config.cfg, écriture des lignes bind a partir du batch etc..).
Je vous poste le batch (Il n'est pas finit évidemment )
Comme vous avez pu le voir le batch écrira dans le fichier texte : bind "f." "buy awp"
Sauf que mon premier problème est qu'il me faudra tout écrire (la j'ai déjà :af1 :af2 :af3 :af4 :af5 et :af6)
Donc mélanger les lettres de "a-z"
avec
les touches f1 f2 f3 f4 f5 f6 f7 f8 f9
et les touches du numpad (n1 n2 n3 n4 n5 n6 n7 n8 n9) qui sont enfaite
kp_end kp_downarrow kp_pagedown kp_leftarrow kp_5 kp_rightarrow kp_home kp_uparrow kp_pageup
Y a t'il un moyen (programme,commande batch ou autre...) permettant de generer cela sans devoir tout écrire au clavier ?
ou alors un autre code (le batch nous demande quelle touche bind puis une autre question vient pour demander a quelle arme l'associer ?)
Je suis un peu perdu
J'espere que vous me comprendrez
Merci beaucoup de votre aide
Message édité par pierrooo62 le 17-05-2014 à 22:45:04