Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Remplacer des caractères dans une ligne
Auteur Message
Répondre en citant
Message Remplacer des caractères dans une ligne 
Bonjour,

En réalité ce sujet est une suite du problème d'encodage que j'ai eu précédemment.
Je récupère un fichier .txt dans lequel il y a plusieurs informations notamment des chiffres (09, 24, 24...). Ces chiffres correspondent à des noms de personnes.
J'aimerai trouver un batch qui recherche ses chiffres en question et surtout qui les remplacent par le nom correspondant exemple :
Alarm pour 09
Info pour 24
Appel alarm pour 05..

Avec ce code, je sais localiser les chiffres mais le plus dur pour moi et de les remplacer !!
for /f "tokens=3 delims= " %%# in ('type Fichier.txt') do(...

S0001 050452 09 TOUR F DETECT OUV SAS SECOUR NIV3
S0001 050452 24 Sélection groupe SECURITE
S0001 050452 24 Sélection équipe POSTEDEGARDE
S0000 050452 05 AGENT : +33608963280 (COM11:Orange France - GSM)
S0000 050453 24 Emission (COM11:Orange France - GSM) : Alarme FR.SO : TOUR F DETECT OUV SAS SECOUR NIV

Quelqu'un à une idée ??

Merci d'avance.



Dernière édition par Benobeno le Lun 17 Déc 2012 - 08:44; édité 1 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Remplacer des caractères dans une ligne 
J'ai essayé le batch suivant mais sans succes, je pense que je complique la situation !


Code:
@echo off
cls

if exist newfile.txt del newfile.txt
for /f "tokens=*" %%a in ('type Fichier.txt') do (
  set /a CNT+=1
  set LINE_!CNT!=%%a
  call :Change "%%a"
  )
del Fichier.txt
rename newfile.txt Fichier.txt
exit /b


:Change
for f/ "tokens=3 delims= " %%Text ('type Fichier.txt') do (
REM set Text=%~1
if "%Text%"=="09" (
echo Alarme>> newfile.txt
)
else (
echo %Text%>> newfile.txt
)
exit /b


@pause




Répondre en citant
Message Voilà un code qui fonctionne, pour ton problème ! 
Voici le code complet pour ton problème.

Maintenant à toi de modifier le nom des fichiers.
Enjoy !!



Code:
:::::::Par SachaDee
:::::::31-12-2012

@echo off
setlocal enabledelayedexpansion enableextensions

set compteur=1

for /f  "delims="  %%a in (f.txt) do (
                                                     if !compteur! geq 2 echo !ligne-new!>>sortie.txt
                                                     set /a compteur=!compteur! + 1
                                                     set ligne-new=
                                                     for /d  %%b in (%%a) do (
                                                                                            set valeur=%%b
                                                                                            if %%b==09 set valeur=Alarm
                                                                                            if %%b==24 set valeur=Info
                                                                                            if %%b==05 set valeur=Appel alarm
                                                                                            set ligne-new=!ligne-new! !valeur!
                                                                                             ))

::::::::Et n'oublions pas la dernière ligne

echo !ligne-new!>>sortie.txt
               

:end

endlocal




Dernière édition par sachadee le Ven 29 Nov 2013 - 18:45; édité 1 fois

______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Remplacer des caractères dans une ligne 
Ok !

J'essaye ça très prochainement ! Merci !!



Répondre en citant
Message Remplacer des caractères dans une ligne 
Ok j'ai testé, ça marche merci Sachadee !

Par contre dans le nouveau fichier les différentes colonnes sont séparées par un espace et du coup le "S001" est aussi précédé d'un espace.
Je ne pense pas que cela me pose problème, mais je n'ai pas identifié dans le code où l'espace était ajouté, peut-être en "set ligne-new=" ?

En tout cas l'essentiel est fait ! Merci encore !



Répondre en citant
Message Remplacer des caractères dans une ligne 
Salut ä tous !

Tu peux supprimer cet espace en remplaçant les 2
Code:
 echo !ligne-new!>>sortie.txt
en
Code:
 echo !ligne-new:~1!>>sortie.txt


Amicalement




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Remplacer des caractères dans une ligne 
Salut Mr. Green

Merci Sachadee Wink


Si le problème est résolu n'hésite pas à le signaler en utilisant la balise [RÉSOLU] dans le titre du post en l'éditant.

Merci & ++

Okay




______________________________________________________
│Øδ@π.
Visiter le site web du posteur Skype
Message Remplacer des caractères dans une ligne 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch