Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1206 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  création un moulinette .bat

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

création un moulinette .bat

n°2142586
dragonwood
Posté le 16-05-2012 à 10:29:38  profilanswer
 

Bonjour à tous et merci d'avance pour votre lecture du post.
 
Je souhaiterais faire la chose suivante:
 
je possède un fichier texte "Extrait1" qui possède plusieurs nombre de lignes avec une structure bien particulière pour être plus concret un exemple:
 
0400107040040200TND305510110981399110512
0400107680040200TND305510110981399110512
0400107060040200TND305510110981399110512
0400107040040200TND305510110981399110512
 
çàd un fichier de log qui se rempli au fur et à mesure.
 
Ce fichier ne me convient pas dans sa forme "Extrait1" et j'aimerais qu'il apparaisse après transformation comme suit:
 
0400107040040200TND305510110981307110512
0400107680040200TND305510110981352110512
0400107060040200TND305510110981330110512
0400107040040200TND305510110981307110512
 
çàd si trouve à la position aprés 7 chiffres 0400 il remplace 99 par 07 qui se trouve aprés 32 chiffres &  
si trouve à la position aprés 7 chiffres 6800 il remplace 99 par 52 qui se trouve aprés 32 chiffres &
si trouve à la position aprés 7 chiffres 0600 il remplace 99 par 30 qui se trouve aprés 32 chiffres
, sauvegarde dans un nouveau fichier texte "Extrait2"
 
J'aimerais faire un programme batch tout bête faisant cela et travaillant toutes les 10 minutes par exemple.
 
Comment puis-je opérer proprement?
 
Merci beaucoup

mood
Publicité
Posté le 16-05-2012 à 10:29:38  profilanswer
 

n°2142619
rufo
Pas me confondre avec Lycos!
Posté le 16-05-2012 à 13:44:02  profilanswer
 

Les fonctions disponibles dans un .bat sont pas très évoluées. Mieux vaudrait un langage de script pour traiter des chaînes de caractères (vb/vbs, php, python, perl...). Après, le script (ou exe) serait appelé périodiquement par le planificateur de tâches.
 
Perso, je le ferai en php, le script étant appelé en ligne de commande.
 
Si t'étais sous Linux, tu pourrais utiliser awk, particulièrement adapté dans cette situation ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2142636
dragonwood
Posté le 16-05-2012 à 14:43:18  profilanswer
 

ok Merci rufo :)
 
je besoin de ce fonction par n'importe quel langage. svp tu peut me faire une moulinette utilisant ( vd/vbd, php ...)
 
 
 
Merci  ;)

n°2142654
rufo
Pas me confondre avec Lycos!
Posté le 16-05-2012 à 15:36:12  profilanswer
 

dragonwood a écrit :

ok Merci rufo :)
 
je besoin de ce fonction par n'importe quel langage. svp tu peut me faire une moulinette utilisant ( vd/vbd, php ...)
 
 
 
Merci  ;)


 
Merci de t'exprimer de manière un peu plus intelligible...  
 
Sinon, non, je ne te ferai pas la moulinette (cf les règles de ce forum). Par contre, si tu nous présentes du code ici et que tu rencontres des difficultés, on sera heureux de t'apporter de l'aide (mais toujours en te donnant des pistes/idées, pas en te faisant le boulot à ta place). :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2142703
dragonwood
Posté le 16-05-2012 à 18:38:40  profilanswer
 

Spoiler :


Option Explicit  
 
Private Function Chemin(ByVal sFichier As String) As String  
Dim i As Integer  
Dim sChemin As String  
    sChemin = ""  
    If Dir$(sFichier) = "" Then Exit Function  
    For i = 0 To UBound(Split(sFichier, "\" )) - 1  
      sChemin = sChemin & Split(sFichier, "\" )(i) & "\"  
    Next i  
    Chemin = sChemin  
End Function  
 
Private Sub Correction(ByVal sNomFichier As String)  
Dim sIn As String  
Dim sOut As String  
Dim iNumFichier1 As Integer, iNumFichier2 As Integer  
Dim sNomFichier2 As String, sCheminFichier As String  
 
    Close  
     
    sCheminFichier = Chemin(sNomFichier)  
    sNomFichier2 = sCheminFichier & "Corr_" & NomDuFichier(sNomFichier)  
     
    iNumFichier1 = FreeFile  
    Open sNomFichier For Input As #iNumFichier1  
        iNumFichier2 = FreeFile  
        Open sNomFichier2 For Output As #iNumFichier2  
            Do While Not EOF(iNumFichier1)  
                Line Input #iNumFichier1, sIn  
                Select Case Mid$(sIn, 8, 4)  
                    Case "0400"  
                        sOut = Left$(sIn, 32) & "07" & Mid$(sIn, 35)  
                        Print #iNumFichier2, sOut  
                    Case "6800"  
                        sOut = Left$(sIn, 32) & "62" & Mid$(sIn, 35)  
                        Print #iNumFichier2, sOut  
                    Case "3800"  
                        sOut = Left$(sIn, 32) & "40" & Mid$(sIn, 35)  
                        Print #iNumFichier2, sOut  
                End Select  
            Loop  
        Close #iNumFichier2  
    Close #iNumFichier1  
End Sub  
 
Private Function NomDuFichier(ByVal sFichier As String) As String  
    With CreateObject("Scripting.FileSystemObject" )  
      On Error Resume Next  
          NomDuFichier = .GetFileName(sFichier)  
      On Error GoTo 0  
    End With  
End Function  
 
Sub SelectionTXT()  
Dim Fichier As Variant  
Dim i As Long  
 
    ChDir ThisWorkbook.Path  
    Fichier = Application.GetOpenFilename("Fichier TXT (*.txt), *.txt", , "Sélectionner un ou plusieurs fichier(s)", , True)  
    If TypeName(Fichier) = "Boolean" Then Exit Sub  
 
    For i = 1 To UBound(Fichier)  
        Correction Fichier(i)  
    Next i  
End Sub


voila mon code sous macro Excel mais ce code modifie juste les 4 première lignes je veux modifier tous les lignes ...??

n°2142732
Terminapor
I'll see you rise.
Posté le 16-05-2012 à 21:39:35  profilanswer
 

Ta proposition (bien qu'elle provient d'une bonne foi) est hors-charte, tu risques d'avoir des problèmes


---------------
Perhaps you don't deserve to breathe
n°2142746
kiki29
Posté le 16-05-2012 à 22:24:04  profilanswer
 

Re, surtout que la correction a été faite sur http://forum.hardware.fr/hfr/Progr [...] 7000_1.htm
 
Je ne saisis pas le pourquoi de ce va et vient ?


---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  création un moulinette .bat

 

Sujets relatifs
aide: moulinette SVP avec Exel et VBcréation et gestion d'une base de données.
creation de classeprojet de graphisme/developpeur -expérience création de visuel automat
Création de 'onclic' sur bannière de publicitéCréation d'un OnClick sur Banniere
Création d'une fonction pour calculer le TRlcréation et déploiement d'un web service
Recherche d'un logiciel de création de site WebQuestions sur la création d'un site web
Plus de sujets relatifs à : création un moulinette .bat


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR