Fusionner 2 fichiers ensemble

Résolu
nick_2428 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
nick_2428 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aimerais être en mesure de fusionner mes 2 fichiers ensembles. J'aimerais que le 1er fichier, qui est formé de tableaux de 20 lignes chacun apparaisse en 1er et que le 2e fichier, formé de tableaux de 25 lignes, apparaisse ensuite en gardant l'ordre des tableaux. Donc le 1er tableau du 1er fichier suivi du 1er tableau du 2e fichiers, suivi du 2e tableau du 1er fichier, suivi du 2e tableau du 2e fichier, etc... Tous ça pour en arriver à créer des tableaux de 45 lignes chacun dans un 3e fichier créer pour les résultats de tout ça. Au total, j'ai 3500 tableaux dans chacun des fichiers.

J,ai un code qui me donne un code d'erreur (L,entrée dépasse la fin du fichier) et je ne sais pas quoi faire.

Voici mon code en question et 2 liens pour télécharger les base de données, si ça peux aider.

strSourceFile1-->http://ge.tt/4e2QmZI/v/11
strSourceFile2-->http://ge.tt/4e2QmZI/v/21

Voici le code:

strSourceFile1 = "...\PLAYERS.EHM"
strSourceFile2 = "...\Statistics.ehm"
strResultat1 = "...\player+stats.ehm"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile1 = objFSO.openTextFile(strSourceFile1, 1,true)
Set objTextFile2 = objFSO.openTextFile(strSourceFile2, 1,true)
Set objResultat1 = objFSO.openTextFile(strResultat1, 8,true)

dim MyArray (20)
x=0
dim Array (25)
y=0

Do until objTextFile1.AtEndOfStream
Do until objTextFile2.AtEndOfStream

MyArray(x) = objTextFile1.ReadLine
Array (y) = objTextFile2.ReadLine

If x = 19 Then

objResultat1.writeline MyArray(0)
objResultat1.writeline MyArray(1)
objResultat1.writeline MyArray(2)
objResultat1.writeline MyArray(3)
objResultat1.writeline MyArray(4)
objResultat1.writeline MyArray(5)
objResultat1.writeline MyArray(6)
objResultat1.writeline MyArray(7)
objResultat1.writeline MyArray(8)
objResultat1.writeline MyArray(9)
objResultat1.writeline MyArray(10)
objResultat1.writeline MyArray(11)
objResultat1.writeline MyArray(12)
objResultat1.writeline MyArray(13)
objResultat1.writeline MyArray(14)
objResultat1.writeline MyArray(15)
objResultat1.writeline MyArray(16)
objResultat1.writeline MyArray(17)
objResultat1.writeline MyArray(18)
objResultat1.writeline MyArray(19)

x=0
Else
x=x+1
End If

If y = 24 then
objResultat1.writeline Array(0)
objResultat1.writeline Array(1)
objResultat1.writeline Array(2)
objResultat1.writeline Array(3)
objResultat1.writeline Array(4)
objResultat1.writeline Array(5)
objResultat1.writeline Array(6)
objResultat1.writeline Array(7)
objResultat1.writeline Array(8)
objResultat1.writeline Array(9)
objResultat1.writeline Array(10)
objResultat1.writeline Array(11)
objResultat1.writeline Array(12)
objResultat1.writeline Array(13)
objResultat1.writeline Array(14)
objResultat1.writeline Array(15)
objResultat1.writeline Array(16)
objResultat1.writeline Array(17)
objResultat1.writeline Array(18)
objResultat1.writeline Array(19)
objResultat1.writeline Array(20)
objResultat1.writeline Array(21)
objResultat1.writeline Array(22)
objResultat1.writeline Array(23)
objResultat1.writeline Array(24)
y=0
Else
y=y+1
End IF

Loop
Loop

objTextFile1.close
objTextFile2.close
objResultat1.close
wscript.quit

2 réponses

  1. nick_2428 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci énormément. Après une petite mise au point, tout marche à merveilles. Merci beaucoup. Très apprécié.
    0
  2. Yoda
     
    Bonjour,

    J'ai un peu modifié ton script mais ça devrait marcher (j'ai pas testé).

    strSourceFile1 = "...\PLAYERS.EHM" 
    strSourceFile2 = "...\Statistics.ehm" 
    strResultat1 = "...\player+stats.ehm" 
    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    Set objTextFile1 = objFSO.openTextFile(strSourceFile1, 1,true) 
    Set objTextFile2 = objFSO.openTextFile(strSourceFile2, 1,true) 
    Set objResultat1 = objFSO.openTextFile(strResultat1, 8,true) 
    dim Array1 (20) as String
    dim Array2 (25) as String
    dim x as Integer, y as Integer
    dim StopInput as Boolean
    
    StopInput = False
    
    Do until StopInput
    
    For x=0 to 19
      If not objTextFile1.AtEndOfStream Then
        Array1(x)= objTextFile1.ReadLine
      Else
        StopInput = True
        Array1(x)= ""
      End If
    Next
     
    For y=0 to 24
      If not objTextFile2.AtEndOfStream Then
        Array2(y)= objTextFile2.ReadLine
      Else
        StopInput = True
        Array2(y)= ""
      End If
    Next
    
    For x=0 to 19
       objResultat1.writeline Array1(x)
    Next
    For y=0 to 24
       objResultat1.writeline Array2(y)
    Next
    Loop
    
    objTextFile1.close 
    objTextFile2.close 
    objResultat1.close 
    wscript.quit


    A+.
    -1