[R] Afficher le contenu de 2 fichiers.txt dans un combo

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

[R] Afficher le contenu de 2 fichiers.txt dans un combo

#1

Message par jeanmimigab »

Bonjour à tous(tes) :D

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 :wink:
Modifié en dernier par jeanmimigab le dim. 05 juin 2016 18:09, modifié 1 fois.
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo

#2

Message 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...
Modifié en dernier par blacksoul305 le dim. 05 juin 2016 14:05, modifié 1 fois.
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo

#3

Message 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)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo

#4

Message 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 :wink:
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo

#5

Message 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 :wink:

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)
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 132
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo

#6

Message par Numeric »

Salut,
essaye ça :

Code : Tout sélectionner

GUICtrlSetData($Combo1,$Read1&'|'&$Read2)
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 132
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo

#7

Message 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
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 132
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo

#8

Message par Numeric »

j'avais pas vu l'exemple de mikell Haha!
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
jeanmimigab
Niveau 5
Niveau 5
Messages : 123
Enregistré le : sam. 08 oct. 2011 14:01
Status : Hors ligne

Re: [..] Afficher le contenu de 2 fichiers.txt dans un combo

#9

Message 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 :wink:

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
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 132
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [R] Afficher le contenu de 2 fichiers.txt dans un combo

#10

Message par Numeric »

Salut , :D
Je profite pour ceux que ça intéresserait encore donner une petite fonction pour ça :D
On gagnera un peu plus en temps avec ça :D http://www.autoitscript.fr/forum/viewto ... 21&t=14099
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Répondre