Page 1 sur 1
[R] Afficher le contenu de 2 fichiers.txt dans un combo
Posté : dim. 05 juin 2016 11:35
par jeanmimigab
Bonjour à tous(tes)
Je suis en train de modifier un de mes programme qui utilise des combo pour afficher une liste se trouvant dans différents fichier.txt
cela fonctionne bien si j'associe un fichier pour un combo
par exemple 2 combos avec 2 fichiers > pas de souci
Code : Tout sélectionner
$fileE = FileOpen("BDD\bddE.txt")
$fileG = FileOpen("BDD\bddG.txt")
$ligneE = FileReadLine($fileE)
$ligneG = FileReadLine($fileG)
GUICtrlSetData($Combo1, $ligneE & "|")
GUICtrlSetData($Combo2, $ligneG & "|")
par contre si j'essaie d'afficher le contenu des des fichiers dans un seul combo je galère ( 1 fichier après l'autre sans mélanger les lignes)
tous mes essais donnent des résultats mitigés.
Par exemple ce test là m'insère la premier ligne du deuxième fichier entre chaque ligne du premier fichier
Code : Tout sélectionner
$fileE = FileOpen("BDD\bddE.txt")
$fileG = FileOpen("BDD\bddG.txt")
$ligneE = FileReadLine($fileE)
$ligneG = FileReadLine($fileG)
GUICtrlSetData($Combo1, $ligneE & "|" & $ligneG & "|")
bref...je ne sais pas si c'est possible et comment m'y prendre...
Merci d'avance pour votre aide

Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo
Posté : dim. 05 juin 2016 11:48
par blacksoul305
Salut,
je dirais que deux solutions sont possibles. Une qui nécessite plus de mémoire, une autre qui nécessite plus de temps.
Celle qui consomme plus de mémoire consisterait à prendre deux variables, disons : $sContenuFic1
et $sContenuFic2
en les initialisant d'abord comme deux chaînes vides. Faire une boucle pour le lire les deux fichiers en même temps ligne par ligne, et pour chacune des lignes, faire un $sContenuFic &= $sLigneLuFic & "|"
. Puis à la fin de la boucle, quand tous les fichiers sont lus, faire un GUICtrlSetData($Combo, $sContenuFic1 & $sContenuFic2)
Celle qui consomme plus de temps serait simplement de lire les fichiers ligne par ligne, l'un après l'autre et ajouter les lignes à la combo. Il y aura donc deux boucles à faire.
Dans les deux cas, le contenu n'est pas mélangé. Bon courage !
EDIT (post-réponse de mikell) : Oh mais ce chat alors...
Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo
Posté : dim. 05 juin 2016 13:09
par mikell
?
Code : Tout sélectionner
$fileE = FileRead("BDD\bddE.txt")
$fileG = FileRead("BDD\bddG.txt")
$strE = StringReplace(StringStripWS($fileE, 3), @crlf, "|")
$strG = StringReplace(StringStripWS($fileG, 3), @crlf, "|")
GUICtrlSetData($Combo1, $strE & "|" & $strG)
Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo
Posté : dim. 05 juin 2016 14:16
par jeanmimigab
Merci pour cette piste blacksoul305, je vais voir ce que cela peut donner.
@mikell,
avec le modification proposée, le contenu du combo donne cela...
1
2
1
2
1
2
etc....
je continu de chercher une solution en attendant...
Merci beaucoup à vous deux

Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo
Posté : dim. 05 juin 2016 15:28
par jeanmimigab
En bidouillant j'ai trouvé une solution ( avec FileRead et fileWrite) qui n'est pas terrible mais qui règle le problème > je crée un fichier combo.txt qui reprend le contenu des 2 fichiers (un peu comme "TYPE ...>> ..." en batch).
reste juste à lire le fichier combo.txt dans mon Combo1
Mais bon je préfèrerai la solution de mikell
Code : Tout sélectionner
$fileE = FileRead("BDD\bddE.txt")
$fileG = FileRead("BDD\bddG.txt")
$ligneE = FileRead($fileE)
$ligneG = FileRead($fileG)
FileWrite ( "BDD\combo.txt", $ligneE &@crlf & $ligneG &@crlf)
Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo
Posté : dim. 05 juin 2016 15:33
par Numeric
Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo
Posté : dim. 05 juin 2016 15:39
par Numeric
Si l'exemple peut t'inspirer :
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 615, 438, 192, 124)
Global $Combo1 = GUICtrlCreateCombo(" ", 176, 104, 313, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
Global $Button1 = GUICtrlCreateButton("Button1", 272, 224, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;===================================================================
Local $Fich1, $Fich2
$Fich1 = @ScriptDir&'\Sheri.txt'
$Fich2 = @ScriptDir&'\Sheri2.txt'
If Not FileExists($Fich1) Then
FileWrite($Fich1,'Fichier1'&@CRLF&'bonjour1')
EndIf
If Not FileExists($Fich2) Then
FileWrite($Fich2,'Fichier2'&@CRLF&'bonjour2')
EndIf
$iOpen1 = FileOpen($Fich1,0)
If $iOpen1 = -1 Then MsgBox(16,'','Erreur')
$iOpen2 = FileOpen($Fich2,0)
$Read1 = FileRead($Fich1)
$Read2 = FileRead($Fich2)
GUICtrlSetData($Combo1,$Read1&'|'&$Read2)
;======================================================================
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Form1
Case $Form1
Case $Form1
Case $Form1
Case $Combo1
Case $Button1
EndSwitch
WEnd
Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo
Posté : dim. 05 juin 2016 15:41
par Numeric
j'avais pas vu l'exemple de mikell Haha!
Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo
Posté : dim. 05 juin 2016 18:08
par jeanmimigab
c'est cool, en piochant dans ton code et celui de mikell, j'ai un exemple qui fonctionne, il ne reste plus que l'adaptation à mon usine à gaz de script à réaliser
UN GRAND MERCI à vous tous(tes) et bonne soirée
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 615, 438, 192, 124)
Global $Combo1 = GUICtrlCreateCombo(" ", 176, 104, 313, 25, BitOR($GUI_SS_DEFAULT_COMBO, 0))
Global $Button1 = GUICtrlCreateButton("Button1", 272, 224, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GuictrlsetLimit($Combo1,1000)
;===================================================================
Local $Fich1, $Fich2
$Fich1 = @ScriptDir&'\BDD\bddE.txt'
$Fich2 = @ScriptDir&'\BDD\bddG.txt'
$iOpen1 = FileOpen($Fich1,0)
$iOpen2 = FileOpen($Fich2,0)
$Read1 = FileRead($Fich1)
$Read2 = FileRead($Fich2)
$strE = StringReplace(StringStripWS($Read1, 3), @crlf, "|")
$strG = StringReplace(StringStripWS($Read2, 3), @crlf, "|")
GUICtrlSetData($Combo1, $strE & "|" & $strG)
;======================================================================
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Form1
Case $Form1
Case $Form1
Case $Form1
Case $Combo1
Case $Button1
EndSwitch
WEnd
Re: [R] Afficher le contenu de 2 fichiers.txt dans un combo
Posté : mar. 07 juin 2016 20:25
par Numeric
Salut ,
Je profite pour ceux que ça intéresserait encore donner une petite fonction pour ça
On gagnera un peu plus en temps avec ça
http://www.autoitscript.fr/forum/viewto ... 21&t=14099