IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Remplacement de chaînes dans un fichier [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut Remplacement de chaînes dans un fichier
    Bonjour à tous!

    Je viens vers vous car je galère à faire ce dont j'ai besoin, je m'explique:

    Je dois changer des ID par des noms d'images dans des fichiers de type objets 3D du style:
    Fichier 1:
    vt 0.0 1.0

    g 00a_0
    usemtl 0ea_7fht
    s 1
    f 3/3 2/2 1/1 3/4

    usemtl lkd_chrt_34h1
    s 10
    f 9/39 1/38 4/37 10/40
    s 11
    f 14/43 19/42 5/41 7/44
    Fichier 2:
    newmtl 0ea_7fht
    Ka 1.000 1.000 1.000
    Kd 1.000 1.000 1.000
    Ks 0.000 0.000 0.000
    Ns 10.000
    Tr 0
    map_Kd "etx_tex1\image_name.jpg"

    newmtl lkd_chrt_34h1
    Ka 1.000 1.000 1.000
    Kd 1.000 1.000 1.000
    Ks 0.000 0.000 0.000
    Ns 10.000
    Tr 0
    map_Kd "etx_tex1\limage_name_2.jpg"
    Je cherche à changer "0ea_7fht" par "image_name" dans le fichier 2.
    Sauf qu'il faut récupérer "0ea_7fht" et avant "image_name".

    Et évidemment il peut y avoir des duplicatas du même ID comme par exemple "0ea_7fht", mais il y a plein d'autres lignes avec d'autres ID/noms d'images.
    En gros pour chaque ID des lignes commençants par "newmtl ", récupérer le nom de l'image de la ligne "map_Kd" et renommer l'ID (du fichier 1 et du fichier2) par le nom de l'image.

    Merci pour votre aide les coupains, j'en ai marre de m'arracher les cheveux, je n'en ai presque plus là, je ne vais pas tarder à devoir m'arracher les poils d'un autre endroit...

    *le nez bande d'obsédés!*
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  2. #2
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    Peux-tu mettre un exemple de fichier(s) d'entré et le fichier de sortie desiré.
    Dans ta question je n'ai pas compris ce que tu veux pour le fichier 1.

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  3. #3
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Citation Envoyé par sachadee Voir le message
    Salut,

    Peux-tu mettre un exemple de fichier(s) d'entré et le fichier de sortie desiré.
    Dans ta question je n'ai pas compris ce que tu veux pour le fichier 1.

    Mais bien volontiers mon bon monsieur ^^

    Nom : Batch.jpg
Affichages : 147
Taille : 396,4 Ko
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

  4. #4
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Bonsoir,

    volià la routine qu'il te faut. Je l'ai faîtes rapidos pour le fichier No 1.
    Mais tu l'adaptera très facilement pour le 2


    On crée un système d'array en cascade pour chaque groupe.....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    ::By SachaDee - 2017
    @echo off
    
    setlocal enabledelayedexpansion
    
    set "$c=1"
    for /f "tokens=1-2* delims= " %%a in ('type fichier1.txt') do (
       if /i "%%a"=="map_Kd" (
    	echo newmtl %%~nb"
    	for /f "tokens=1,2 delims==" %%a in ('set $l') do (
    		echo %%b
    REM Om reset l'element utilié
    		set "%%a="
            )
            set "$c=0"
            echo map_Kd "%%b"
            echo.
       ) else (
          if /i not "%%a"=="newmtl" (
          	set "$l[!$c!]=%%a %%b %%c"
          	set /a $c+=1
          )
       )
    )
    J'ai faît un petit test sur ce fichier :

    newmtl blabla
    ka 1.000 1.000 1.000
    ka 2.000 1.000 1.000
    ka 3.000 1.000 1.000
    map_Kd "etx_tex1\limage_name_2.jpg"

    newmtl bloblo
    ka 4.000 1.000 1.000
    ka 5.000 1.000 1.000
    ka 6.000 1.000 1.000
    map_Kd "etx_tex1\limage_name_3.jpg"

    newmtl bloblo
    ka 7.000 1.000 1.000
    ka 8.000 1.000 1.000
    map_Kd "etx_tex1\limage_name_4.jpg"
    et la sortie :

    newmtl limage_name_2"
    ka 1.000 1.000 1.000
    ka 2.000 1.000 1.000
    ka 3.000 1.000 1.000
    map_Kd ""etx_tex1\limage_name_2.jpg""

    newmtl limage_name_3"
    ka 4.000 1.000 1.000
    ka 5.000 1.000 1.000
    ka 6.000 1.000 1.000
    map_Kd ""etx_tex1\limage_name_3.jpg""

    newmtl limage_name_4"
    ka 7.000 1.000 1.000
    ka 8.000 1.000 1.000
    map_Kd ""etx_tex1\limage_name_4.jpg""

    Facile non ?

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  5. #5
    Membre éclairé Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Points : 809
    Points
    809
    Par défaut
    Merci mon petit sachadee
    ________________________________________________________________
    N'oublie pas de faire une sauvegarde avant d'exécuter des scripts...
    Si j'ai ton problème, un petit fait toujours plaisir!
    ________________________________________________________________

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer une chaîne dans un fichier
    Par Christophe Genolini dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 20/08/2008, 20h03
  2. remplacer une chaîne dans un fichier
    Par PH_DEMS dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/06/2008, 20h49
  3. Remplacer une chaîne dans un fichier txt
    Par java_fun dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 11/06/2007, 19h57
  4. [RegEx] Recherche et Remplacement d'une chaîne dans un fichier
    Par jpascal dans le forum Langage
    Réponses: 5
    Dernier message: 18/02/2007, 19h35
  5. [D6] Comment remplacer des chaînes dans un fichier ?
    Par fabien25 dans le forum Langage
    Réponses: 4
    Dernier message: 15/06/2005, 13h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo