Problème avec un code
Résolu
nick_2428
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
nick_2428 Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
nick_2428 Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis débutant dans le domaine et j'apprends la programmation sur le tas en lisant divers articles sur le web. Mon problème est le suivant. J,ai une base de donnée qui compte 20 lignes et qui se répète 3500 fois. J,ai déjà un code qui fait la boucle pour un array. Jusque là tout fonctionne. Mon problème survient lorsque je désire mettre une condition supplémentaire pour isolé la variable recherché de mon array. Voici le code qui me sert à autres choses avec lequel j,essaie d,ajuster le ce que je cherche à faire.
Le 1er code marche parfaitement:
strSourceFile = "C:\.....txt"
strResultat = "C:\......ods"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.openTextFile(strSourceFile, 1,true)
Set objResultat = objFSO.openTextFile(strResultat, 8,true)
dim Myarray (20)
x=0
Do until objTextFile.AtEndOfStream
MyArray(x) = objTextFile.ReadLine
strPot = Mid(MyArray(1),8,2)
strConst = Mid(MyArray(1),11,2)
If x = 19 Then
x=0
objResultat.writeline MyArray(13)&" "&strPot&" "&"/"&" "&strConst
Else
x=x+1
End If
Loop
objTextFile.close
objResultat.close
wscript.quit
Voici celui avec lequel j,ai un problème:
strSourceFile = "C:\.....txt"
strResultat = "C:\......ods"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.openTextFile(strSourceFile, 1,true)
Set objResultat = objFSO.openTextFile(strResultat, 8,true)
dim Myarray (20)
x=0
Do until objTextFile.AtEndOfStream
MyArray(x) = objTextFile.ReadLine
StrRetraite = Mid(MyArray(6),2,2)
If x = 6 And StrRetraite = 1 Then
objResultat.writeline MyArray(13)
Elseif x = 19 Then
x=0
Else
x=x+1
End If
Loop
objTextFile.close
objResultat.close
wscript.quit
Je sais que le code n,est pas bon du tout, mais j,ai aucune idée comment intégrer la 2e condition à mon code. En gros, j'aimerai qu'à toute les fois que mon Array(20) soit rendu à la 7e ligne du Array (Array (6)), qu'il regarde la position Mid(MyArray(6),2,2). Si elle égale à 1, j'aimerais que la 14e ligne (Array(13)) soit marqué et que ça se fasse pour mes 3500 array de ma base de données.
J,espère m'être bien expliqué, dsl, je ne suis pas encore un habitué du language de programmation et c'est difficile pour le moment de bien m,exprimer en ce sens.
Merci de bien vouloir me donner un coup de main.
Merci
Nick
Je suis débutant dans le domaine et j'apprends la programmation sur le tas en lisant divers articles sur le web. Mon problème est le suivant. J,ai une base de donnée qui compte 20 lignes et qui se répète 3500 fois. J,ai déjà un code qui fait la boucle pour un array. Jusque là tout fonctionne. Mon problème survient lorsque je désire mettre une condition supplémentaire pour isolé la variable recherché de mon array. Voici le code qui me sert à autres choses avec lequel j,essaie d,ajuster le ce que je cherche à faire.
Le 1er code marche parfaitement:
strSourceFile = "C:\.....txt"
strResultat = "C:\......ods"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.openTextFile(strSourceFile, 1,true)
Set objResultat = objFSO.openTextFile(strResultat, 8,true)
dim Myarray (20)
x=0
Do until objTextFile.AtEndOfStream
MyArray(x) = objTextFile.ReadLine
strPot = Mid(MyArray(1),8,2)
strConst = Mid(MyArray(1),11,2)
If x = 19 Then
x=0
objResultat.writeline MyArray(13)&" "&strPot&" "&"/"&" "&strConst
Else
x=x+1
End If
Loop
objTextFile.close
objResultat.close
wscript.quit
Voici celui avec lequel j,ai un problème:
strSourceFile = "C:\.....txt"
strResultat = "C:\......ods"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.openTextFile(strSourceFile, 1,true)
Set objResultat = objFSO.openTextFile(strResultat, 8,true)
dim Myarray (20)
x=0
Do until objTextFile.AtEndOfStream
MyArray(x) = objTextFile.ReadLine
StrRetraite = Mid(MyArray(6),2,2)
If x = 6 And StrRetraite = 1 Then
objResultat.writeline MyArray(13)
Elseif x = 19 Then
x=0
Else
x=x+1
End If
Loop
objTextFile.close
objResultat.close
wscript.quit
Je sais que le code n,est pas bon du tout, mais j,ai aucune idée comment intégrer la 2e condition à mon code. En gros, j'aimerai qu'à toute les fois que mon Array(20) soit rendu à la 7e ligne du Array (Array (6)), qu'il regarde la position Mid(MyArray(6),2,2). Si elle égale à 1, j'aimerais que la 14e ligne (Array(13)) soit marqué et que ça se fasse pour mes 3500 array de ma base de données.
J,espère m'être bien expliqué, dsl, je ne suis pas encore un habitué du language de programmation et c'est difficile pour le moment de bien m,exprimer en ce sens.
Merci de bien vouloir me donner un coup de main.
Merci
Nick
A voir également:
- Problème avec un code
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
3 réponses
Bonjour nick_2428,
Je ne sait pas si quelqu'un a compris, moi pas.
Définitions:
- Une base de données, contient une ou plusieurs table(s).
- Une table contient un à plusieurs champs (si une table ne contient qu'un seul champ, on peut la supprimer et ajouter son en tant que propriété à une autre table).
_ une table peut ne pas contenir d'occurrence (enregistrement) ou plusieurs occurrences.
Explique avec plus de précision.
Je ne sait pas si quelqu'un a compris, moi pas.
Définitions:
- Une base de données, contient une ou plusieurs table(s).
- Une table contient un à plusieurs champs (si une table ne contient qu'un seul champ, on peut la supprimer et ajouter son en tant que propriété à une autre table).
_ une table peut ne pas contenir d'occurrence (enregistrement) ou plusieurs occurrences.
Explique avec plus de précision.
Bonjour,
Si j'ai bien compris:
On lit 20 lignes de suite, si la 7ème ligne remplit la condition, on écrit la 14ème ligne dans le fichier resultat.
Il faut que le fichier base de données ait un nombre de lignes multiple de 20.
A+
Si j'ai bien compris:
On lit 20 lignes de suite, si la 7ème ligne remplit la condition, on écrit la 14ème ligne dans le fichier resultat.
strSourceFile = "C:\.....txt" strResultat = "C:\......ods" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.openTextFile(strSourceFile, 1,true) Set objResultat = objFSO.openTextFile(strResultat, 8,true) dim Myarray (20) x=0 Do until objTextFile.AtEndOfStream MyArray(x) = objTextFile.ReadLine If x=19 Then StrRetraite = Mid(MyArray(6),2,2) If StrRetraite = 1 Then objResultat.writeline MyArray(13) End If x=0 Else x=x+1 End If Loop objTextFile.close objResultat.close wscript.quit
Il faut que le fichier base de données ait un nombre de lignes multiple de 20.
A+
Merci Heliotte d'avoir essayé de me donner un coup de main. Je sais que je n'utilise pas les bons mots pour exprimer ce que je veux et souvent ça me cause problèmes lors de mes recherches internet.
Yoda a réglé mon problème. C'est exactement ça que je cherchais à faire et tout marche parfaitement. Merci énormément du coup de main et je vois maintenant ou mon code n'était pas correct.
En apprenant de façon autodidacte, c'est pas toujours évident et même si je suis un habitué de se site (je lis très souvent les questions des autres pour en apprendre d'avantage), il s'agissait de ma 1ere question posé ici et je dois dire que tout le monde semble très respectueux et prêt à aider. Votre rapidité à répondre est très apprécié.
Merci à vous 2.
Dernière question, si je voulais mettre un titre aux résultats obtenus qui ne se répète pas à chaque résultats obtenus, comment faire? je sais qu'en marquant ceci, ça fonctionne, mais ça répète le titre à chaque boucle, donc 3500 fois, en plus des résultats obtenus. Ce qui n,est pas ce que je recherche à faire.
strSourceFile = "C:\.....txt"
strResultat = "C:\......ods"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.openTextFile(strSourceFile, 1,true)
Set objResultat = objFSO.openTextFile(strResultat, 8,true)
dim Myarray (20)
x=0
Do until objTextFile.AtEndOfStream
MyArray(x) = objTextFile.ReadLine
If x=19 Then
StrRetraite = Mid(MyArray(6),2,2)
If StrRetraite = 1 Then
objResultat.writeline "ADRESSES"
objResultat.writeline MyArray(13)
End If
x=0
Else
x=x+1
End If
Loop
objTextFile.close
objResultat.close
wscript.quit
J,aimerais que le titre soit marqué seulement à la ligne 1 du fichier des résultats obtenus et que les résultats obtenus viennent ensuite tour à tour. J,espère encore une vois avoir été assez claire pour me faire comprendre, mes excuses encore une fois.
Merci
Yoda a réglé mon problème. C'est exactement ça que je cherchais à faire et tout marche parfaitement. Merci énormément du coup de main et je vois maintenant ou mon code n'était pas correct.
En apprenant de façon autodidacte, c'est pas toujours évident et même si je suis un habitué de se site (je lis très souvent les questions des autres pour en apprendre d'avantage), il s'agissait de ma 1ere question posé ici et je dois dire que tout le monde semble très respectueux et prêt à aider. Votre rapidité à répondre est très apprécié.
Merci à vous 2.
Dernière question, si je voulais mettre un titre aux résultats obtenus qui ne se répète pas à chaque résultats obtenus, comment faire? je sais qu'en marquant ceci, ça fonctionne, mais ça répète le titre à chaque boucle, donc 3500 fois, en plus des résultats obtenus. Ce qui n,est pas ce que je recherche à faire.
strSourceFile = "C:\.....txt"
strResultat = "C:\......ods"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.openTextFile(strSourceFile, 1,true)
Set objResultat = objFSO.openTextFile(strResultat, 8,true)
dim Myarray (20)
x=0
Do until objTextFile.AtEndOfStream
MyArray(x) = objTextFile.ReadLine
If x=19 Then
StrRetraite = Mid(MyArray(6),2,2)
If StrRetraite = 1 Then
objResultat.writeline "ADRESSES"
objResultat.writeline MyArray(13)
End If
x=0
Else
x=x+1
End If
Loop
objTextFile.close
objResultat.close
wscript.quit
J,aimerais que le titre soit marqué seulement à la ligne 1 du fichier des résultats obtenus et que les résultats obtenus viennent ensuite tour à tour. J,espère encore une vois avoir été assez claire pour me faire comprendre, mes excuses encore une fois.
Merci
Il faut ecrire ADRESSES avant d'entrer dans la boucle
strSourceFile = "C:\.....txt"
strResultat = "C:\......ods"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.openTextFile(strSourceFile, 1,true)
Set objResultat = objFSO.openTextFile(strResultat, 8,true)
dim Myarray (20)
x=0
objResultat.writeline "ADRESSES"
Do until objTextFile.AtEndOfStream
MyArray(x) = objTextFile.ReadLine
If x=19 Then
StrRetraite = Mid(MyArray(6),2,2)
If StrRetraite = 1 Then
objResultat.writeline MyArray(13)
End If
x=0
Else
x=x+1
End If
Loop
objTextFile.close
objResultat.close
wscript.quit
A+.
strSourceFile = "C:\.....txt"
strResultat = "C:\......ods"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.openTextFile(strSourceFile, 1,true)
Set objResultat = objFSO.openTextFile(strResultat, 8,true)
dim Myarray (20)
x=0
objResultat.writeline "ADRESSES"
Do until objTextFile.AtEndOfStream
MyArray(x) = objTextFile.ReadLine
If x=19 Then
StrRetraite = Mid(MyArray(6),2,2)
If StrRetraite = 1 Then
objResultat.writeline MyArray(13)
End If
x=0
Else
x=x+1
End If
Loop
objTextFile.close
objResultat.close
wscript.quit
A+.