Aide sur la fonction VBS en parametres ligne,taille,zone
azadabad
Messages postés5Date d'inscriptionvendredi 14 janvier 2005StatutMembreDernière intervention29 octobre 2007
-
29 oct. 2007 à 16:32
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
4 nov. 2007 à 16:52
bonjour jean-marc;
j'ai rectifié ma demande avec la réponse à tes questions
il faut une function qui attend les parametres igne,taille, taille de zone à tester)
function (ligne,taille, zone)
1) 50 ???
2) 2, "AB" => virgule (,) en trop ??? normal
3) ligne :1, position:100 taille de zone : 5 valeur à comparer "12345"
=> recherche sur ligne 1 du fichier B.txt ou sur toutes les lignes ??? toutes la ligne
Fichier B volumineux ou non ??? 10 ligne
4) écrire le resultat de comparaison dans le fichier B.TXT en fonction de comparaison ????
5) que contient le fichier B.txt contient
111111111000000000000000000hfdsfdhgdAdressenome9999999912345
111111111000000abcdefrf000hfdsfdhgdAdressrrrrrrr11111999999111111111000000xxxxxxxxx000hfdsfdhgdAdressrr999999aaaa
c'est dans le fichier b je dois trouver la ligne 1 position 50 , 10 carateres c-a-d "9999999912345"
""""""""""""""""""""""""""""""""""""""" la ligne 2 " 100 , 10 " " "99999"
'j'ai un fichier A.txt que je dois lire pour aller cherche en dans le
'fichier B.txt en fonction de ce que j'ai lu dans le fichier A.txt
'(ligne :1, position:50 taille de zone : 10 valeur à comparer "1234567ABC")
'(ligne :1, position:100 taille de zone : 5 valeur à comparer "12345") etc...
'écrire le resultat de comparaison dans le fichier B.TXT
Azad
A voir également:
Aide sur la fonction VBS en parametres ligne,taille,zone
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 4 nov. 2007 à 16:52
Bonsoir à tous,
Cette approche de ta question devrait t'orienter:
Option Explicit
Const ForReading = 1
Dim objFso, objTextFile, objTextStream
Dim objDicoFile, objDicoItems, nbre_line
Dim strTableLine, strFileA, strFileB
Dim strTmp, strLine
strFileA = "D:\SCRIPTS\Fichiers\fichierA.txt"
strFileB = "D:\SCRIPTS\Fichiers\fichierB.txt"
Set objFso = CreateObject("Scripting.FileSystemObject")
'Création Dictionnaire à partir du fichierB
Set objTextFile = objFso.OpenTextFile(strFileB, ForReading)
Set objDicoFile = CreateObject("Scripting.Dictionary")
nbre_line = 0
Do while not objTextFile.AtEndOfStream
objDicoFile.Add nbre_line, objTextFile.ReadLine : nbre_line = nbre_line +1
Loop
objTextFile.Close
Set objTextFile = Nothing
'Init items du Dictionnaire
objDicoItems = objDicoFile.Items
'Visu fichierA avec séparation des variables
Set objTextStream = objFso.OpenTextFile(strFileA, ForReading)
Do While Not objTextStream.AtEndOfStream
strTmp = Split(objTextStream.ReadLine,",")
If UBound(strTmp) = 3 Then
strLine = Split(strTmp(0)," ")
'Comparaison ligne fichierA et fichierB
Call ReadFile(strLine(1), strTmp(1), strTmp(2), Trim(Replace(strTmp(3),"""","")))
End if
Loop
objTextStream.Close
Set objTextStream = Nothing
Set objDicoFile = Nothing
Set objFso = Nothing
Function ReadFile(NumLine, Position, Longueur, Expression)
If objDicoFile.Exists(NumLine-1) Then
MsgBox NumLine &vbTab& objDicoItems(NumLine-1) &vbCrLf& _
NumLine &vbCrLf& Position &vbCrLf& Longueur &vbCrLf& Expression,,"vérif des variables" If CBool(Mid(objDicoItems(NumLine-1), Position, Longueur) CStr(Expression)) True Then
MsgBox objDicoItems(NumLine-1) &vbCrLf& Mid(objDicoItems(NumLine-1), Position, Longueur) &vbcrlf& _
CStr(Expression),,"expression trouvée"
Else
MsgBox objDicoItems(NumLine-1) &vbCrLf& Mid(objDicoItems(NumLine-1), Position, Longueur) &vbcrlf& _
CStr(Expression),,"expression différente"
End if
End If
End Function