[RÉSOLU] Script : injection de texte dans un fichier

14 sujets de 1 à 14 (sur un total de 14)

  • BatteMan

      #273842

      Bonjour à tous,

      Actuellement en train d’essayer de compléter l’article sur UAE disponible sur Obligement, je me confronte à un souci pour ce qui est de l’automatisation du lancement des jeux CD32 en ISO.

      En effet, j’ai besoin de spécifier dans le fichier de config d’UAE le nom de volume de l’ISO… Je voulais passer par un script mais je vous avoue que je bloque.

      J’ai trouvé une commande sur Aminet, GetVolumeName, qui me donne le nom de volume de mon device et que je balance dans un fichier ram:T/nomvolume.txt mais après, je cherche comment récupérer ce nom et le balancer dans le fichier .conf (en remplacement d’un autre nom ou alors en l’insérant dans le fichier au milieu d’une phrase).

      Si quelqu’un a une idée, je suis preneur. Et on peut aussi utiliser autre chose que GetVolumeName, évidemment.

      Merki !


      /me a réussi à bien avancer mais reste bloqué avec ce souci… Sinon, faudra « modifier » à la mano, ce qui le fait moins.

      Only Amiga makes it possible !

      JiDeWe

        #273859

        hello battounet 😉

        UAE sur PC/MAC ou Amiga NG?

        /me répond, c’est juste pour faire avancer le schmilblick

         

        1 A500 2mo, 1 A500 512ko +ACA500+, 1 A 1200 quasi neuf, 1 Atari 520Ste 4mo + UltraSatan dual, 1 Falcon030 avec DFB1X , 1 MSX2 8235 avec Carnivore2, 1 MSX28250 (fmstéréopack, music mode, MegaFlashRom et quelques D7 et KTouche ).
        maxime perpétuelle : si je cours en zigzag ce n'est pas pour éviter le balles, mais les c..s, et si un cachalot vient sur ton babord, il est prioritaire, sur tribord aussi... (B.M.)

        BatteMan

          #273901

          JiDeWe : C’est bien, pour le moment, pour MorphOS (mais ce sera valable pour tout ce qui utilise E-UAE en sachant que les scripts ne fonctionneront que sous AmigaOS/MorphOS et éventuellement AROS, en sachant que sous OS4, RunInUAE fait déjà le job et inscrit bien le nom de volume des ISO dans le fichier de conf…).

          Bref, j’espère pouvoir réussir à faire ça…

          Pour le moment, ça fonctionne nickel avec des jeux CD (pour les ISO, faut se palucher le fichier de conf’ à la mano…).


          /me y a déjà passé quelques soirs…

          Only Amiga makes it possible !

          Admin

          bigdan

            #273906

            Batteman : on peut regarder ton script si tu veux… Cela me rappelera ma période scripts ARexx & Rebol

            mikedafunk

              #273908

              Oui et pense à vacciner le disque dur (ou le SSD) pendant que tu y es 😉

              BatteMan

                #273989

                Bigdan : Why not !

                mikedafunk : L’injection se fera directement en intra, pas de souci ! ^^


                /me espère pouvoir vous en redire plus bientôt !

                Only Amiga makes it possible !

                elwood

                  #274094

                  Avec la commande « info HD0: » et en retravaillant la sortie avec quelques lignes d’Arexx.

                  Sinon, des programmeurs peuvent te faire un programme ad-hoc en quelques minutes.

                  Admin

                  bigdan

                    #274140

                    Batteman : envoie un exemple de fichier .conf pour voir !
                    J’aime bien ce genre de script 😉

                    BatteMan

                      #274252

                      Voici la tronche du fichier cd32.conf :

                      filesystem2=ro,CD0:NOMDEVOLUMEDELISO:ISO0:,1
                      kickstart_rom_file=work:utils/UAE/Roms/cd32.rom
                      kickstart_ext_rom_file=work:utils/UAE/Roms/cd32.ext
                      flash_file=work:utils/UAE/Roms/nvram.nvr
                      chipmem_size=4
                      chipset=aga
                      fastmem_size=8
                      show_leds=true
                      immediate_blits=no
                      cpu_speed=max
                      cpu_type=68020
                      cpu_compatible=false
                      cpu_cycle_exact=false
                      blitter_cycle_exact=false
                      cachesize=8192
                      comp_optimize=yes
                      comp_constjump=yes
                      comp_trustbyte=indirect
                      comp_trustword=indirect
                      comp_trustlong=indirect
                      floppy0type=-1
                      floppy1type=-1
                      gfx_framerate=1

                      Il faut pouvoir remplacer le « NOMDEVOLUMEDELISO » par le nom de volume de l’ISO justement ^^

                      J’avoue que je sèche mais suis preneur de toute astuce ou possibilité de le faire via script (dos ou rexx).


                      /me a cherché des exemples et autres mais n’a pas trouvé…

                      Only Amiga makes it possible !

                      Ball000

                        #274314

                        Si sed est installé :

                        [code]sed -e « s/NOMDEVOLUMEDELISO/$nomvolume/g » ram:cd32.conf >ram:cd32.conf.modifié[/code]

                        EDIT : J’ai modifié un peu la ligne de commande, parce qu’apparemment pour que cela fonctionne il est plus facile d’utiliser une variable plutôt que [code]ram:T/nomvolume.txt[/code]

                        Donc avant la ligne sed ci-dessus, ton script doit par exemple comporter la commande :

                        [code]GetVolumeName_et_ses_arguments >ENV:nomvolume[/code]

                        BatteMan

                          #274383

                          Ball000 : Merci, ça ressemble bien à ce que je souhaite faire !

                          Reste à voir pour Sed qui est dispo sur la Minette en version 68k et OS4 mais pas MorphOS. En espérant que la version 68k fonctionne sous MorphOS !


                          /me va tester ça ce week-end ! 😛

                          Only Amiga makes it possible !

                          BeWorld

                            #274389

                            bonjour !

                            Purée cela m’intéresse ca…. je cherchais justement quelque chose pour ajouter une ligne dans un fichier.

                            En gros, je cherche à faire un installer de NETFS et il y a pas mal de chose à ajouter dans les fichiers de MorphOS.

                            En tout cas je vais chercher aussi de mon coté sur ce sujet.

                            Mes confs : IMac G5 2.1, PowerBook G4 17 1.5 et PowerMac G5 2.7
                            Mes ports sur MOS

                            Ball000

                              #274397

                              BatteMan : Je serais très surpris que le SDK de MorphOS ne fournisse pas sed ?

                              BatteMan

                                #274426

                                Victoire !

                                En combinant GetVolumeName, sed (que ce soit celui du SDK MorphOS ou le sed en version 68k disponible sur Aminet, cela fonctionne avec les deux) et IsInserted (un autre petit programme sur Aminet), j’ai réussi à faire ce que je voulais ! Enfin ! ^^

                                IsInserted vérifie qu’il y a bien quelque chose dans IS0O: (sans lui, si je mettais un « IF EXISTS ISO0: » et qu’il n’y avait rien, j’avais un message d’erreur, ce qui est un peu couillon).
                                Du coup, si IsInserted détecte bien quelque chose dans ISO0:, alors le script va lancer getvolumename puis sed (merci Ball000 !) et enfin UAE avec le fichier de conf’ qui va bien.
                                Si rien n’est trouvé dans ISO0: par IsInserted, alors on zappe le début et on ne lance que UAE CD32 avec le fichier de conf’ normal, ce qui permet de booter alors sur le vrai CD inséré dans le lecteur CD (ou s’il n’y en a pas, on a l’animation de boot de la CD32) !

                                J’ai mis le script dans les mimetypes d’Ambient, dans ceux de la globaldevice (je ne vois pas où le mettre d’autre…) et rulez !

                                Merci à tous !

                                Voici la tronche dudit script !

                                C:IsInserted ISO0:
                                IF NOT WARN
                                	c:GetVolumeName ISO0: short >env:nomvolume
                                	c:sed -e "s/NOMDEVOLUME/$nomvolume/g" work:Utils/UAE/Conf/CD32.conf >ram:cd32.conf
                                	run >nil: Work:Utils/UAE/e-uae -f ram:cd32.conf -0
                                ELSE
                                	run >nil: Work:Utils/UAE/e-uae -f Work:Utils/UAE/conf/cd32.conf -0
                                ENDIF


                                /me n’est pas mécontent d’avoir réussi à le faire ! ^^

                                Only Amiga makes it possible !

                              14 sujets de 1 à 14 (sur un total de 14)

                              • Vous devez être connecté pour répondre à ce sujet.

                              Forums AmigaOS, MorphOS et AROS Général [RÉSOLU] Script : injection de texte dans un fichier

                              Amiga Impact