A voir également:
- Remplacer une valeur dans plusieurs fichiers
- Renommer plusieurs fichiers - Guide
- Remplacer dans word - Guide
- Remplacer disque dur par ssd - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Quel site pour remplacer coco - Accueil - Réseaux sociaux
5 réponses
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
2 janv. 2013 à 16:29
2 janv. 2013 à 16:29
Bonsoir y,
Quel est le langage de programmation utilisé : VB ou VBS ?
Quel est le langage de programmation utilisé : VB ou VBS ?
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
2 janv. 2013 à 16:44
2 janv. 2013 à 16:44
Bonsoir y,
Dans beaucoup de langage (pas tous!), le principe est le suivant:
- Lire les données en les mémorisant soit dans une variable, soit dans un tableau de variables.
- Effectuer les manipulations ad-hoc
- Écrire les données données dans le fichier
Voilà pour le principe.
Perso, je travaille beaucoup en Visual Basic, et de plus en plus avec VB.Net.
Dans beaucoup de langage (pas tous!), le principe est le suivant:
- Lire les données en les mémorisant soit dans une variable, soit dans un tableau de variables.
- Effectuer les manipulations ad-hoc
- Écrire les données données dans le fichier
Voilà pour le principe.
Perso, je travaille beaucoup en Visual Basic, et de plus en plus avec VB.Net.
merci pour cette réponse de principe mais n'ayant pas les bases peux tu m'aider à l'élaboration ?
le script ci dessous fonctionne très bien pour un fichier toto mais je n'arrive pas à intégrer un boucle pour plusieurs fichiers *.toto ?
Merci
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objFile = objFSO.OpenTextFile("C:\temp\a.toto", ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, "RETURN", "|" & vbcrlf & "")
Set objFile = objFSO.OpenTextFile("C:\temp\a.toto", ForWriting)
objFile.WriteLine strNewText
objFile.Close
le script ci dessous fonctionne très bien pour un fichier toto mais je n'arrive pas à intégrer un boucle pour plusieurs fichiers *.toto ?
Merci
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objFile = objFSO.OpenTextFile("C:\temp\a.toto", ForReading)
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, "RETURN", "|" & vbcrlf & "")
Set objFile = objFSO.OpenTextFile("C:\temp\a.toto", ForWriting)
objFile.WriteLine strNewText
objFile.Close
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
2 janv. 2013 à 20:40
2 janv. 2013 à 20:40
En quel langage .. VB 6.0 ou VB.Net ?
Heliotte
Messages postés
1491
Date d'inscription
vendredi 26 octobre 2012
Statut
Membre
Dernière intervention
28 janvier 2013
92
3 janv. 2013 à 12:19
3 janv. 2013 à 12:19
Bonjour y,
J'ai dû chercher un peu car mes souvenirs quelquefois me font défaut.
Cela devrait t'aider .. excepter la conversion car la chaîne de caractère RETURN n'existe pas en VB .. à moins que cette chaîne de caractère soit en dur dans le texte.
Voilà
J'ai dû chercher un peu car mes souvenirs quelquefois me font défaut.
' Bouton, commande l'exécution de la procédure Private Sub cmd_Go_Click() Dim tNomFichier(3) As String ' tNomFichier(0) = "C:\temp\a.toto1.txt" tNomFichier(1) = "C:\temp\a.toto2.txt" tNomFichier(2) = "C:\temp\a.toto3.txt" tNomFichier(3) = "C:\temp\a.toto4.txt" For i=0 To Ubound(tNomFichier) RemplacerValeurDansFichier(tNomFichier(i)) Next i End Sub ' Procédure de lecture, conversion et réécriture de fichier RemplacerValeurDansFichier(ByVal NomFichier As String) Dim Ligne As String, Lignes As String Dim NoFichier As Integer '________________________________________ '¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ' lecture du fichier NoFichier = FreeFile Open Chemin & NomFichier For Input As #NoFichier Lignes = "" While Not (EOF(NoFichier)) Line Input #NoFichier, Ligne Lignes = Lignes + Ligne Wend Close #NoFichier 'tbx_Resultat est un TextBox qui affiche les étapes exécutées tbx_Resultat.Text = "Fichier " & NomFichier & " lu." & VbCrLf '________________________________________ '¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ' conversion de la chaîne Lignes = Replace(Lignes, "RETURN", "|" & vbcrlf & "") tbx_Resultat.Text = "Fichier " & NomFichier & " conversion terminée." & VbCrLf '________________________________________ '¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ' écriture du fichier NoFichier = FreeFile Open Chemin & NomFichier For Output As #NoFichier Print #NoFichier, Lignes2 Close #NoFichier tbx_Resultat.Text = "Fichier " & NomFichier & " écriture terminée." & VbCrLf & VbCrLf '________________________________________ '¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ End Sub
Cela devrait t'aider .. excepter la conversion car la chaîne de caractère RETURN n'existe pas en VB .. à moins que cette chaîne de caractère soit en dur dans le texte.
Voilà
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
131
Modifié par heyquem le 3/01/2013 à 13:53
Modifié par heyquem le 3/01/2013 à 13:53
Hello
Si tu donnes un peu plus de précisions sur ce que tu veux faire, je peux t'écrire un code en Python.
"je cherche à remplacer le mot RETURN de plusieurs fichiers *.hprim par un vrai retour chariot depuis un même repertoire c:\temp"
Le mot RETURN est-il inscrit en toutes lettres dans chaque fichier ?
Qu'est ce que tu entends par "vrai retour chariot" ? Le caractère \n ?
Et qu'entends tu par "depuis" un répertoire ? Tu veux dire que les fichiers sont DANS le répertoire c:\temp ?
En Python, y en a pas pour 1/2 heure à faire un tel code.
Si tu donnes un peu plus de précisions sur ce que tu veux faire, je peux t'écrire un code en Python.
"je cherche à remplacer le mot RETURN de plusieurs fichiers *.hprim par un vrai retour chariot depuis un même repertoire c:\temp"
Le mot RETURN est-il inscrit en toutes lettres dans chaque fichier ?
Qu'est ce que tu entends par "vrai retour chariot" ? Le caractère \n ?
Et qu'entends tu par "depuis" un répertoire ? Tu veux dire que les fichiers sont DANS le répertoire c:\temp ?
En Python, y en a pas pour 1/2 heure à faire un tel code.
Bonjourn, oui c'est bien cela le mot RETURN est volontairement écrit en toutes lettres dans chaque fichier dont extension est .hprim. cette chaîne de caractère est à remplacer par un retour chariot \n 0D en hexadécimal. les fichiers sont stockés dans le répertoire c:\temp.
Merci pour ton message et ton aide.
Merci pour ton message et ton aide.
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
131
3 janv. 2013 à 14:54
3 janv. 2013 à 14:54
Je viens de voir ta réponse. Je vais faire ça en 1/4 h.
Pendant ce temps, va sur la page suivante
https://www.python.org/downloads/release/python-330/
pour installer Python 3.3 sur ton ordinateur
Je suis sur Windows et j'ai installé Windows x86 MSI Installer (3.3.0) (sig) , ça prend 10 minutes max.
Si tu es sur un autre système d'exploitation, je ne sais pas s'il y a des complications supplémentaires.
Pendant ce temps, va sur la page suivante
https://www.python.org/downloads/release/python-330/
pour installer Python 3.3 sur ton ordinateur
Je suis sur Windows et j'ai installé Windows x86 MSI Installer (3.3.0) (sig) , ça prend 10 minutes max.
Si tu es sur un autre système d'exploitation, je ne sais pas s'il y a des complications supplémentaires.
heyquem
Messages postés
759
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
29 décembre 2013
131
3 janv. 2013 à 15:45
3 janv. 2013 à 15:45
from os import listdir path = 'c:\\temp' path = path.rstrip('\\') + '\\' ##################################################### with open(path +'radada.hprim','w') as f: f.write('''dlkjgqdhkljb vgsdf dlfkqhgdjrkhgqsedjlrkgerg jlkqfg khgfujkqzef jkqhbsdjfqhbsr jkzhgefujqzhgefj bbbbbbbbbbbbbbbRETURNaaaaaaaaaaaaaaaaaaaaaaa lkdqbvgefhbfghbqj qfjlrhbjfbqhfbgh ggggggggggggggggggRETURNhhhhhhhhhhhhhhhh jjcbvbnbn dlfkqhelfkbjkebgqjkbfjfjhbqdf''') with open(path+'tumulu.hprim','w') as f: f.write('''Il songe. Il s'est assis rêveur sous un érable. Entend-il murmurer la forêt vénérable ? Regarde-t-il les fleurs ? regarde-t-il les cieux ? Il songe.RETURNLa nature au front mystérieux Fait tout ce qu'elle peut pour apaiser les hommes ; Du coteau plein de vigne au verger plein de pommes Les mouches viennent, vont, reviennent ;RETURN RETURNles oiseaux Jettent leur petite ombre errante sur les eaux ; Le moulin prend la source et l'arrête au passage ; L'étang est un miroir où le frais paysage''') input('Vérifiez la présence du mot RETURN dans les fichiers créés,\n' 'puis appuyez sur une touche quelconque pour continuer.\n ') ################################################################ gen_filenames = (filename for filename in listdir(path) if filename[-6:]=='.hprim') for fn in gen_filenames: print( fn ) with open(path+fn,'r') as f: content = f.read() with open(path+'mod_'+fn,'w') as g: g.write(content.replace('RETURN','\n'))
C'est le plus simple qui soit.
Cependant ce genre de programme n'est utilisable pour faire un tel remplacement que si les fichiers n'ont pas des tailles excessives. En fait, les fichiers peuvent bien être énormes, du genre 40 GB, si la RAM arrive à encaisser le contenu du fichier lu, c'est à dire du contenu de l'objet content qui est créé dans la RAM
Dis moi quelle est la taille attendue des fichiers STP
Il y a d'autres façons de faire: ligne par ligne, ou in-place, ou par morceaux.
Je suis allé au plus direct pour l'instant.
La partie entre les deux lignes
#######################
#######################
est à éliminer pour l'application de ce code en réel.
C'est une partie que je me suis écrite pour procéder à des tests.
J'ai été un peu long parce qu'en fait je suis passé à Python 3 récemment et que je ne suis pas encore bien habitué à quelques différences avec Python 2.
Dans ce code j'ai donné un nom path+'mod_'+fn pour le fichier modifié. Il convient que tu fasses des essais pour éviter des effaçages intempestifs. Car si tu crées un nouveau fichier avec le même nom path+fn le fichier existant jusqu'alors est effacé.
2 janv. 2013 à 16:33
2 janv. 2013 à 23:46
Si tu es preneur de tout, tu devrais passer sur Python, tu t'en verrais moins
3 janv. 2013 à 08:22