Aide sur la fonction VBS en parametres ligne,taille,zone

Signaler
Messages postés
5
Date d'inscription
vendredi 14 janvier 2005
Statut
Membre
Dernière intervention
29 octobre 2007
-
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
-
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 

'Exemple Fichier a.txt (paramétrage)
'Contient ces information
AAAAAA 1, 50, 10, "1234567ABC"
AAAAAA 1, 100, 5, "12345"
AAAAAA 2, 15, 2, "AB" 
 
'(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

4 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
?????????????????

C'est la suite d'une autre question ???????

Pourquoi n'avoir pas répondu alors dans le topic déjà ouvert ???

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
5
Date d'inscription
vendredi 14 janvier 2005
Statut
Membre
Dernière intervention
29 octobre 2007

Bonsoir
Je suis nouveau sur ce site je connais pas encore tous les astus , as tu une solution pour mon problème,.
Cldt

Azad
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonsoir à tous

Bonsoir Casy,
[auteur/AZADABAD/490432.aspx azadabad]m'a   exposé sa requête par mp, suite à celà post sur ce forum et dans le bon thème !!!

Sa queston initiale était:

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

Exemple Fichier a.txt (paramétrage)

Contient ces information

AAAAAA 1, 50, 20, 10 "1234567ABC"

AAAAAA 1, 100, 10, 5 "12345"

AAAAAA 2, 15, 2, "AB"

ça signifie que r

(ligne :1, position:59 taille de zone : 10 valeur à comparer "1234567ABC")

(ligne :1, position:100 taille de zone : 5 valeur à comparer "12345")etc...

écrire le resultat de comparason dans le fichier B.TXT en fonction de comparaison .

ma réponse était:
>

>1)  50 ???

>2)  2, "AB" => virgule (,) en trop ???

>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 ??? Fichier B volumineux ou non ???

>4)  écrire le resultat de comparaison dans le fichier B.TXT en fonction de comparaison ????

>5) que contient le fichier B

jean-marc
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 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

jean-marc