PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → d'expérimenté qui d
d'expérimenté qui d
Débuté par NiCo, 26 jan. 2006 17:17 - 7 réponses
Posté le 26 janvier 2006 - 17:17
Bonjour,

Voilà, je n'arrive pas à faire une chose et je me demandais si quelqu'un
d'assez doué pouvait me le faire en me fournissant des explications.

En fait, j'ai le fichier suivant :

start="20060202004500" stop="20060202014500" showview="83029043"
channel="C10" title="Le point"
start="20060202014500" stop="20060202020000" showview="22165260"
channel="C10" title="TV5 Monde, linvité"
start="20060202020000" stop="20060202022000" showview="42133753"
channel="C10" title="TV5 Monde, le journal"
start="20060202022000" stop="20060202040000" showview="30946956"
channel="C10" title="Garonne"
start="20060130060000" stop="20060130190000" channel="C117" title="JT"
start="20060130190000" stop="20060131055900" channel="C117" title="Journaux"
start="20060131060000" stop="20060131190000" channel="C117" title="JT"
start="20060131190000" stop="20060201055900" channel="C117" title="Journaux"
start="20060201060000" stop="20060201190000" channel="C117" title="JT"
start="20060201190000" stop="20060202055900" channel="C117" title="Journaux"
start="20060126060000" stop="20060126060800" showview="60189220"
channel="C121" title="News"
start="20060126060800" stop="20060126061000" showview="375823133"
channel="C121" title="Press Review"


Ce que j'aimerai, c'est créer une table dynamiquement avec les infos
souhaitées.
C'est à dire :
- Créer une combo depuis laquelle on choisirait le channel.
- En fonction du channel sélectionné, une table contenant les
informations start, stop et title est remplie est affichée.

Pour le showview, j'aimerai bien enlever cette partie du fichier mais je
n'y arrive pas.

Le but : dans un fichier tv.txt, j'ai une liste de ce type :

2 - France 2:C2
3 - France 3 national:C3
7 - Arte:C5
5 - France 5:C7
21 - RTL9:C8
23 - TV5:C10
14 - France 4:C28
44 - MTV France:C31
9 - W9:C38
22 - AB 1:C40
240 - Rai Uno:C42
241 - Rai Due:C43
239 - RTPi:C78
63 - AB Moteurs:C98
60 - L'Equipe TV:C117
6 - Euronews:C121
16 - i>TELE:C122
75 - BloombergTV:C162
84 - Fashion TV:C163
8 - Direct8:C167
11 - NT1:C168
12 - NRJ 12 5.1:C169
12 - NRJ 12 Stéréo:C169
13 - La Chaîne Parlementaire:C170
17 - Europe 2 TV:C193
15 - BFM TV:C194
18 - Gulli:C195

Donc ma combo afficherait le nom des chaînes. Lorsque l'on sélectionne
une chaîne, la valeur du channel correspondant est transmise à la table
pour afficher les données.

Quelqu'un pourrait m'aider s'il vous plait, c'est important pour moi, je
suis sur un assez gros projet et j'aimerai bien le terminer sans soucis :)

Merci d'avance.

PS : Si ça intéresse quelqu'un, qu'il me mail les infos plutôt que de
passer par le forum car s'il y a beaucoup de code, ça risque de faire
brouillon.
Posté le 26 janvier 2006 - 17:46
Chouette, on va avoir un freetv fait en windev !!

Zag
Posté le 26 janvier 2006 - 18:19
Il existe déjà mais j'aimerai l'améliorer. Voir FreeWAR sur
www.freeplayer.org :)

Zag a écrit :
Chouette, on va avoir un freetv fait en windev !!

Zag
Posté le 26 janvier 2006 - 18:49
J'ai marqué dans la licence qu'une fois en version finale, les sources
seront mises à disposition des curieux. Et puis, la mise à disposition.
des sources peut être avantageuse si des gens améliorent le programme et
nettoient le code.

Cédrick a écrit :
héhé j'ai pensé exactement la même chose en lisant le post. J'espère qu'il
sera laissé en accès libre à tous une fois fini.

On Thu, 26 Jan 2006 16:46:42 +0100, Zag <guest@newsgroup.fr> wrote:



Chouette, on va avoir un freetv fait en windev !!

Zag



Posté le 26 janvier 2006 - 19:15
Bonjour,
Je ne vois pas trop ce qu'il y a de difficile, ou alors je n'ai pas compris le problème.
Tu as deux fichiers : un qui contient la liste des chaines ( chaine,nom,canal ), et l'autre les programmes ( debut,fin,titre,canal... ). Tu peux faire une jointure entre les deux sur le numéro de canal.
Tu crées une combo de type fichier, reliée à la liste des chaines. Cette combo est de type table, et affiche les deux colonnes ( tu peux masquer le canal si tu veux ). Dans les propriétés de la combo, tu indiques que la colonne renvoyée est le numero de canal.
De cette façon, l'utilisateur ne voit que le nom de la chaine, et le programme récupère directement le canal associé.
Ensuite, tu filtres les programmes sur le numéro de canal, en fonction du contenu de la combo avec un hfiltre:
En sortie de la combo:
hfiltre(ProgTV,"Canal",cmb_canal.code,hidentique)
TableAffiche(TableProg,tainit)

Ensuite tu crées une table fichier ( la fameuse TableProg du code ci-dessus), reliée au fichier programme, et qui respecte le filtre ( je n'ai plus le nom de l'option en tête ). Tu peux choisir les colonnes affichées sans problème lors de la création de la table.

Frédéric.
Posté le 26 janvier 2006 - 20:15
Ok mais mes fichiers sont au format texte, ce ne sont pas des fichiers
hyperfile...

Frédéric DEMILLY a écrit :
Bonjour,
Je ne vois pas trop ce qu'il y a de difficile, ou alors je n'ai pas compris le problème.
Tu as deux fichiers : un qui contient la liste des chaines ( chaine,nom,canal ), et l'autre les programmes ( debut,fin,titre,canal... ). Tu peux faire une jointure entre les deux sur le numéro de canal.
Tu crées une combo de type fichier, reliée à la liste des chaines. Cette combo est de type table, et affiche les deux colonnes ( tu peux masquer le canal si tu veux ). Dans les propriétés de la combo, tu indiques que la colonne renvoyée est le numero de canal.
De cette façon, l'utilisateur ne voit que le nom de la chaine, et le programme récupère directement le canal associé.
Ensuite, tu filtres les programmes sur le numéro de canal, en fonction du contenu de la combo avec un hfiltre:
En sortie de la combo:
hfiltre(ProgTV,"Canal",cmb_canal.code,hidentique)
TableAffiche(TableProg,tainit)

Ensuite tu crées une table fichier ( la fameuse TableProg du code ci-dessus), reliée au fichier programme, et qui respecte le filtre ( je n'ai plus le nom de l'option en tête ). Tu peux choisir les colonnes affichées sans problème lors de la création de la table.

Frédéric.
Posté le 27 janvier 2006 - 10:42
OK, dans ce cas tu utilises la même technique, à quelques détails près:
Tu utilises la même combo, mais que tu remplies à la main:
Dans le code d'initialisation de la combo
IdFic est un entier
LigneLue est une chaine

tablesupprimetout(moimeme) // pour faire le ménage dans la combo

IdFic = fouvre(...) // ici tu mets le chemin du fichier contenant la liste des chaines
lignelue = flitligne(idfic)
tantque pas lignelue = eot
tableajoute(moimeme,extraitchaine(lignelue,2,":") + tab + extraitchaine(lignelue,1,":"))
lignelue = flitligne(idfic)
fin
fferme(idfic)

Dans le code de sortie de la combo:
IdFic est un entier
LigneLue est une chaine
NumCanal est une chaine

tablesupprimetout(tableprog) // Pourfaire le ménage dans la table

IdFic = fouvre(...) // chemin des programmes
lignelue = flitligne(idfic)
tantque pas lignelue = eot
numcanal = extraitchaine(extraitchaine(lignelue,4," "),2,"=")
si numcanal = cmbcanal.code alors
tableajoute(tableprog,....) // ici tu formates la ligne en fonction de ce que tu veux ajouter
lignelue = flitligne(idfic)
fin
fferme(idfic)

Je te laisse ajouter la gestion des erreurs.
Une autre solution est qu'au lancement de l'application, tu charges tes fichiers textes dans une base HF, puis que tu utilises ma première méthode.

Frédéric.
Posté le 27 janvier 2006 - 11:00
Merci pour la réponse. Cependant, quelqu'un m'a aussi proposé une
solution équivalente. C'est donc réglé :) Je garde quand même ta réponse
dans un coin au cas où :)

Merci.

Frédéric DEMILLY a écrit :
OK, dans ce cas tu utilises la même technique, à quelques détails près:
Tu utilises la même combo, mais que tu remplies à la main:
Dans le code d'initialisation de la combo
IdFic est un entier
LigneLue est une chaine

tablesupprimetout(moimeme) // pour faire le ménage dans la combo

IdFic = fouvre(...) // ici tu mets le chemin du fichier contenant la liste des chaines
lignelue = flitligne(idfic)
tantque pas lignelue = eot
tableajoute(moimeme,extraitchaine(lignelue,2,":") + tab + extraitchaine(lignelue,1,":"))
lignelue = flitligne(idfic)
fin
fferme(idfic)

Dans le code de sortie de la combo:
IdFic est un entier
LigneLue est une chaine
NumCanal est une chaine

tablesupprimetout(tableprog) // Pourfaire le ménage dans la table

IdFic = fouvre(...) // chemin des programmes
lignelue = flitligne(idfic)
tantque pas lignelue = eot
numcanal = extraitchaine(extraitchaine(lignelue,4," "),2,"=")
si numcanal = cmbcanal.code alors
tableajoute(tableprog,....) // ici tu formates la ligne en fonction de ce que tu veux ajouter
lignelue = flitligne(idfic)
fin
fferme(idfic)

Je te laisse ajouter la gestion des erreurs.
Une autre solution est qu'au lancement de l'application, tu charges tes fichiers textes dans une base HF, puis que tu utilises ma première méthode.

Frédéric.