Accueil > Forum > > > > Aide pr code VBscript
Aide pr code VBscript
mardi 12 mai 2009 à 19:08:22 |
Aide pr code VBscript

jeanjeandada
|
Bonjour, Connaitriez-vous le code pour en VBscript pour : 1)ouvrir un fichier .txt dans tel répertoire 2) Effectuer la fonction "remplacer" pour remplacer un caractére par un autre 3) Fermer le txt en le sauvegardant. (PS : Le code du 1 je devrait facilement le trouver) Merci bcp
|
|
mardi 12 mai 2009 à 20:37:49 |
Re : Aide pr code VBscript

jack
|
Salut Jamais fait de Script, mais la structure reste la même. Ouvrir un fichier --> recherche " vbscript ouvrir fichier" dans la recherche des codes en excluant .Net A mon avis, tu ne pourras pas modifier le contenu d'un fichier. Il faut : Ouvrir en lecture ton fichier d'origine, Ouvrir un nouveau fichier de destination en écriture, Lire chaque ligne du fichier d'origine Le tripatouiller le texte comme tu veux Enregistrer le nouveau texte dans le nouveau fichier Continuer à lire les autres lignes et les modifier comme tu veux Fermer les deux fichiers Détruire l'original Renommer le nouveau avec le nom de l'ancien Vala Jack, MVP VBNB : Je ne répondrai pas aux messages privés Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
|
|
mercredi 13 mai 2009 à 09:25:29 |
Re : Aide pr code VBscript

dareman
|
bonour, voici un site qui poura t'aider moi il m'a bien dépanné : http://www.bellamyjc.org/fr/vbscript.html
sinon pour ce qui est du code que tu recherche j'ai fait quasiment la même chose il y a 2 semaines en voici un extrait:
'___________________________________________________________________________pour le chemin local du fichier Set objShell = WScript.CreateObject("WScript.Shell") Set objExecObject = objShell.Exec("cmd /c chdir") ' affiche le chemin pour accéder au répertoire courant path = Replace(objExecObject.StdOut.Read(260), vbCrLf, vbNullString) & "\" ' replace permet de remplacer vbCrLf (retour chariot et saut de ligne) ' par vbNullString (""), objExecObject.StdOut.Read(260) permet de récupérer le résultat de la commande dos '_________________________________________________________________________________________________________________________________________________ Set fso = CreateObject("Scripting.FileSystemObject" ) ' creation d'un objet pour appellé la méthode de vérification de présence d'un fichier IF fso.FileExists(NomFichier) then ' test si le fichier est présent sinon relance l'exportation Set MyObject = CreateObject("Scripting.FileSystemObject" ) ' déclaration d'un objet pour manipuler un fichier Set MyFile = MyObject.GetFile(Path & NomFichier ) ' ouverture du fichier avec NomFichier défini et initialisé comme 1 variable 'contenant le nom du fichier ' je crée la référence du fichier Set MyoutObject = CreateObject("Scripting.FileSystemObject") ' je crée le fichier .txt dans le répertoire windows. Set MyoutFile = MyoutObject.CreateTextFile("exportcsvde2.txt" ,false, true) ' probléme lors du rajout de: & cstr(Date) ' false pour l'overwrite (débordement), true pour l'unicode Set OpenFile = MyFile.OpenAsTextStream(1,-1) 'Recherche des occurences de pwdlastset if OpenFile.AtEndOfStream = False then '____________________________________________________________________________________________________________________________________intialisation ' lecture de la premiére ligne ne doit pas etre traiter (car ne comporte que les titres) lign1 = OpenFile.ReadLine MyoutFile.WriteLine(lign1) 'inscrit bien sur une ligne aucun probléme de débordement sur la ligne du dessous ^^ lign2 = lign1 nb = 0 do while lign2<>"" ' permet de trouver le nombre de champs présent dans l'entete lign2=extraitListeD(lign2,strSeparateur) nb=nb+1 loop j=1 k = 1 while j<= nb if (Mid(lign1,k,1) = strSeparateur) then ' on réinitialise la chaine temp et on saute la , chaine2 = "" k = k + 1 end if while (Mid(lign1,k,1) <> strSeparateur and Mid(lign1,k,1) <> "") ' stock car par car jusqu'a la prochaine , chaine2 = chaine2 & Mid(lign1,k,1) k = k + 1 wend strPosition(j) = chaine2 ' on rempli un tableau temporaire a partir de la ligne d'entete j = j+1 wend for i=1 to nb if (strPosition(i) = DN) then numeroChampDn = i ' on stock la position du champ dn elseif (strPosition(i)=pwd) then numeroChampPwdLastSet = i 'on stock la position du champ de pwdlasset elseif (strPosition(i)=mana) then numeroChampManager = i ' on stock la position du champ manager end if next End if 'avance bien d'une position dans le fichier en lecture '____________________________________________________________________________________________________
voila sa devrai te donner une idée de comment faire, ce code permet de rechercher caractère par caractére dans un fichier du moin pour la premiére ligne aprés il te suffit de faire Do While OpenFile.AtEndOfStream = False pour parcourir tout le fichier, et pour suprimer le fichier en lecture à la fin de ton script tu fait OpenFile.Close MyoutFile.Close MyFile.Delete
|
|
mercredi 13 mai 2009 à 16:21:48 |
Re : Aide pr code VBscript

jeanjeandada
|
Slt OK super pour votre réponse. merci beaucoup! Ce que je voudrais effectuer concrétement : remplacer tous les caractéres : "#" par "/"
dareman j'ai comprend en gros ce que tu voulais faire. Tu utilise DOS juste pour récupérer le chemin de ton fichier de lecture ? Qu'est ce que le pwdlastset ?
1) J'ouvre mon fichier de lecture, je crée mon fichier d'écriture : Set MyObject = CreateObject("Scripting.FileSystemObject" ) ' déclaration d'un objet pour manipuler un fichier Dim MyDate MyDate = Date Set MyFile = MyObject.GetFile("C:\Documents and Settings\XX\Bureau\lecture_MyDate.txt") ' ouverture du fichier lecture avec NomFichier défini et initialisé comme 1 variable 'contenant le nom du fichier ' je crée la référence du fichier Set MyoutObject = CreateObject("Scripting.FileSystemObject") ' je crée le fichier d'écriture .txt dans le répertoire windows. Set MyoutFile = MyoutObject.CreateTextFile("lecture_MyDate.txt" ,false, true) ' ca ne marche pas pour ouvrir un fichier un MyDate ? ' false pour l'overwrite (débordement), true pour l'unicode Set OpenFile = MyFile.OpenAsTextStream(1,-1) 'pq -1 ? 2) (je suis un peu perdu maintenant) Tout d'abord pour info ma premiere ligne ne comporte pas de titre. lign1 = OpenFile.ReadLine 'cela me permet de lire la ligne MyoutFile.WriteLine(lign1) 'permet d'écrireMais comment tu fais pour passer d'un fichier a un autre ??? lign2 = lign1 nb = 0 do while lign2<>"" ' permet de trouver le nombre de champs présent dans l'entete lign2=extraitListeD(lign2,strSeparateur) nb=nb+1 loop 'Cette partir permet de connaitre le nbre de ligne dans le fichier de lecture ???
j=1 k = 1 while j<= nb if (Mid(lign1,k,1) = strSeparateur) then ' on réinitialise la chaine temp et on saute la , chaine2 = "" k = k + 1 end if while (Mid(lign1,k,1) <> strSeparateur and Mid(lign1,k,1) <> "") ' stock car par car jusqu'a la prochaine , chaine2 = chaine2 & Mid(lign1,k,1) k = k + 1 wend strPosition(j) = chaine2 ' on rempli un tableau temporaire a partir de la ligne d'entete j = j+1 wend 'Cette partie permet de lire les caractéres que tu souhaite de la variable : ligne1 ???
for i=1 to nb if (strPosition(i) = DN) then numeroChampDn = i ' on stock la position du champ dn elseif (strPosition(i)=pwd) then numeroChampPwdLastSet = i 'on stock la position du champ de pwdlasset elseif (strPosition(i)=mana) then numeroChampManager = i ' on stock la position du champ manager end if next End if 'avance bien d'une position dans le fichier en lecture
Est quand est ce que t'écris sur le fichier de lecture ?
Merci et A+ : )
|
|
mercredi 13 mai 2009 à 16:22:56 |
Re : Aide pr code VBscript

jeanjeandada
|
"Est quand est ce que t'écris sur le fichier de lecture ?" plutot : "Est quand est ce que t'écris sur le fichier d'écriture?"
|
|
mercredi 13 mai 2009 à 16:40:48 |
Re : Aide pr code VBscript

dareman
|
salu, j'écri dans le fichier une premiére ligne sans la traitée en faite MyoutFile.WriteLine(lign1)
aprés je t mis un exemple de parcour d'une ligne du fichier .txt caractère par caractère avec des test qui étaient propres a mon prog tu ne doit pas les prendre en compte ^^
en gros tu fait: Do While OpenFile.AtEndOfStream = False ligneFichier=OpenFile.readLine() j =1 lignePoubelle =ligneFichier
do while ligneFichier<>"" while j<= nb if (Mid(ligneFichier,j,1) = "#" ) then Mid(lignePoubelle,j,1) = "/" 'pour remplacer ton caractére j = j+1 else Mid(lignePoubelle,j,1) = (Mid(ligneFichier,j,1) j=j+1 end if wend loop MyoutFile.WriteLine(lignePoubelle)loop voila si je me suis pas planté se devrai marché 
|
|
mercredi 13 mai 2009 à 16:43:07 |
Re : Aide pr code VBscript

dareman
|
Tu utilise DOS juste pour récupérer le chemin de ton fichier de lecture ? oui Qu'est ce que le pwdlastset ? c t un champ a récupérer dans mon application mais sa ne te concerna pas j'aurai du arre t le copier/coller avt ^^ c pour sa que je n'est pas mit le code en entier parcequ'&aprés sa se complique encore +
|
|
vendredi 15 mai 2009 à 12:21:31 |
Re : Aide pr code VBscript

jeanjeandada
|
Salut,
ok Super Mais qques trucs me perturbent encore. Ci dessous le code (est-il juste ??):
Set MyObject = CreateObject("Scripting.FileSystemObject" ) Dim MyDate MyDate = Date Set MyFile = MyObject.GetFile("C:\Documents and Settings\jdh\Bureau\rapports DEWI\abla.txt") Set MyoutObject = CreateObject("Scripting.FileSystemObject") Set MyoutFile = MyoutObject.CreateTextFile("lecture_MyDate.txt" ,false, true) Set OpenFile = MyFile.OpenAsTextStream(1,-1)
lign2 = OpenFile.ReadLine()'OpenFile permet bien d'ouvrir le fichier d'écriture ??
nb = 0 do while lign2<>"" nb=nb+1 loop
Do While OpenFile.AtEndOfStream = False ligneFichier=OpenFile.readLine() j =1 lignePoubelle =ligneFichier do while ligneFichier<>"" while j<= nb'la variable nb correspond au nbre de caractére sur la ligne. if (Mid(ligneFichier,j,1) = "#") then Mid(lignePoubelle,j,1) = "/" j = j+1 else Mid(lignePoubelle,j,1) = (Mid(ligneFichier,j,1) j=j+1 end if wend loop MyoutFile.WriteLine(lignePoubelle) loop
L'éxécution ne marche pas. Il me dit qu'il y a un probléme sur la ligne : Mid(lignePoubelle,j,1) = (Mid(ligneFichier,j,1)
A la fin le fichier de lecture n'est pas "détrui" ? On n'as pas paramatré le nom et le chemin du fichier d'écriture ?
Merci @+
|
|
samedi 16 mai 2009 à 09:43:34 |
Re : Aide pr code VBscript

JMO
|
 Bonjour, - contrôle existence fichier et contrôle fichier non vide - écriture du fichier, avec replace éventuel, dans un tableau - fermeture du fichier - ré-écriture du fichier à partir du tableau Option Explicit
FnWordChange "D:\Test.txt", "#", "/"
Function FnWordChange(sFileText, sWordsToRemove, sWordsToChange) Dim oFso, oFile, aLineFicTxt, i Set oFso = CreateObject("Scripting.FileSystemObject") ' Controle existence fichier If oFso.FileExists(sFileText) Then Set oFile = oFso.GetFile(sFileText) ' Controle fichier non vide If oFile.Size <> 0 Then Set oFile = oFso.OpenTextFile(sFileText, 1) ' aLineFicTxt est un tableau contenant toutes les lignes du .txt ' chaque sWordsToRemove de chaque ligne est remplacé par sWordsToChange aLineFicTxt = Split(Replace(oFile.ReadAll,sWordsToRemove , sWordsToChange),vbCrLf) oFile.Close
' Ecriture du fichier Set oFile = oFso.CreateTextFile(sFileText, True) For i = LBound(aLineFicTxt) To UBound(aLineFicTxt) oFile.WriteLine aLineFicTxt(i) Next oFile.Close End If Else WScript.Echo "Fchier " & sFileText & " inexistant" End If Set oFile = Nothing Set oFso = Nothing End Functionjean-marc
|
|
lundi 18 mai 2009 à 18:08:18 |
Re : Aide pr code VBscript

jeanjeandada
|
OK super ton prog. Juste une chose. je sais le faire en VBA mais pas en VBS : Voilà le code VBA que j'ai essayé de mettre dans le prog. VBS
tableau_Projet = Array("ff1", "E79SGLC") For Each projet In tableau_Projet FnWordChange "C:\Documents and Settings\XX\Bureau\esaiT" & projet & ".txt", "#", "/" Next
Bien sur cela ne marche pas en VBS et il me signale une erreur à la ligne en rouge Merci
|
|
Cette discussion est classée dans : vbscript, aide, code, txt, pr
Répondre à ce message
Sujets en rapport avec ce message
Aide pour cloner un VBScript ! [ par zaert ]
Slt all ! Je fais un petit VBScript et je lui est integrer un code pour qu'il se redemarre au (re)boot du PC ! Probleme , quand j'ai tester mon VBScri
Besoin d'aide ds mon code... [ par bimbo777 ]
Bonjour,Voici mon code. Je souhaite renommer tout les fichiers de mon répertoire _.txt en .txt mais là je ne vois pas le soucis.Pouvez vous m'aider sv
Bonjour j'ai besoin d'aide pour utiliser un code source!!!!!!!! [ par sandragreg ]
Bonjour je suis nouveau sur le site, je souhaiterai savoir comment me servir (créer un exe ou une forme utilisable) du code source 8205.J'ai 3 fichier
lire un code dans un fichier .txt [ par Achi ]
bonjour,Voilà, afin d'allèger mon fichier excel qui commence sérieusement à être lourd au niveau code vba, je souhaiterais pouvoir mettre mes modules
desoin d'aide vb.net 2003 [ par Boudchiche ]
salut tous le monde Voila j'ai 4 table articles(code_article,article),couleurs(code_couleur,couleur)commande(N_comma
transcription d'un code en vbscript [ par djul33 ]
Bonjour,j'ai une balise en JScript du type:>J'aimerais transcrire le (missingParam) ? "disabled" : "
appliquer un code à plusieurs fichiers txt d'un meme repertoire [ par marco1980 ]
Bonjour à tous,je viens d'établir un premier cde en VB avec lequel je transforme un fichier .txt dans un format désiré, c'est-à-dire qu'il me permet d
petite aide [ par njo80 ]
Bonjour,Je suis novice en vba et j'ai un petit problèmeJe dois importer le contenu de fichiers .txt dans excel.Mais les noms de ces fichiers varient t
Besoin d'aide traduction code [ par Within Temptation ]
Voilà un morceau de code dont je n'arrive pas à traduire certaines parties, je vous le poste afin que quelqu'un m'aide à le déchiffrer.Merci d'avance.
Exécuter code présent dans un txt [ par sylvain09 ]
Salut,Développant une application j'ai besoin d'exécuter du code présent dans un txt externe.J'ouvre le txt dans un RichTextBox, tout va bien.Mais com
Livres en rapport
|
Derniers Blogs
DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|