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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
VB.NET ET COMBOBOXVB.NET ET COMBOBOX par minouthebreaker
Cliquez pour lire la suite par minouthebreaker
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|