Page 2 sur 2
Re: Document Texte et PureBasic
Publié : mar. 21/sept./2010 19:25
par Dumli
J'avoue que tu as le mérite de m'avoir enfin fait comprendre le fonctionnement de StringField() !

Cependant, je n'ai toujours pas trouvé comment faire mon tableau :
____Cln 1 Cln 2 Cln 3
Lgn1 Bla | Bli | Blo
Lgn2 Bla | Bli Bli | Blo Blo
Lgn3 Bla | Bli | Blo Blo
J'arrive soit à faire que des lignes soit que des colonnes mais pas les 2 ...

Re: Document Texte et PureBasic
Publié : mar. 21/sept./2010 19:31
par G-Rom
Dumli a écrit :J'avoue que tu as le mérite de m'avoir enfin fait comprendre le fonctionnement de StringField() !

Cependant, je n'ai toujours pas trouvé comment faire mon tableau :
____Cln 1 Cln 2 Cln 3
Lgn1 Bla | Bli | Blo
Lgn2 Bla | Bli Bli | Blo Blo
Lgn3 Bla | Bli | Blo Blo
J'arrive soit à faire que des lignes soit que des colonnes mais pas les 2 ...

Utilise les structures ?
Structure colonnes
nom.s
prenom.s
etc...
endstructure
dim MonTableau.colonnes( NbLignes )
MonTableau(0)\nom = "Bob"
MonTableau(0)\prenom = "L'éponge"
0 est la ligne , le nombres de ligne est défini par NbLignes
@+
Re: Document Texte et PureBasic
Publié : mar. 21/sept./2010 20:13
par Backup
Dumli a écrit :JCependant, je n'ai toujours pas trouvé comment faire mon tableau ::(
attends attends ! le doute m'habite !
tu cherche a faire quoi , un tableau DIM() ?
ou un tableau genre avec des lignes et des colonne comme pour un tableur ?
parceque si c'est ça ,(case genre tableur) , faut passer par le Format RTF
voir le Tuto numero 16 de la section utilisateurs Averti
http://www.purebasic.fr/french/viewtopi ... =21&t=6664
Re: Document Texte et PureBasic
Publié : dim. 26/sept./2010 18:40
par Dumli
Re: Document Texte et PureBasic
Publié : ven. 01/oct./2010 22:40
par Dumli
Salut tout le monde,
Bon je vais ré-expliquer mon problème. Je possède un document TXT qui me sert, si j'ose dire, de Base de Données et je voudrais pouvoir exploiter le contenu de ce document TXT dans mon programme. Ma base de données(ou document TXT) est composé de X lignes et de 4"colonnes". Dans mon programme, je voudrais pouvoir, par exemple, afficher une ligne au hasard de ce document ou encore afficher la colonne 4 de la ligne 25 par exemple. Pour ce fait je pense que le plus pratique serait de mettre tout le contenue du doc dans un tableau donc Dim(). Néanmoins je n'arrive pas à remplir ce tableau avec des Lignes ET des colonnes ...
J'en appelle donc à vous

Re: Document Texte et PureBasic
Publié : ven. 01/oct./2010 23:23
par nico
Peux tu donner un exemple du formatage des données en précisant le délimitateur pour les colonnes dans ton fichier texte et confirmer que le délimitateur reste toujours le même!
Re: Document Texte et PureBasic
Publié : sam. 02/oct./2010 14:52
par Dumli
Pour le délimiteur, ya pas de problème je peux mettre celui que je veux. Pour l'instant c'est "|", mais je te répète que je peux le changer sans trop de problèmes. Un exemple de fichier TXT :
Bla | Cla | Dla Dlo | Ti |
Bli |Clo Cle | Dli | Ta Tu |
Blo | Clu | Dla Dlu | Te To |
Voila donc je voudrais que dés qu'il y a un "|", le programme change de colonne quand il rempli le tableau cependant il faut que, par exemple pour la 1er ligne, Bla Cla Dla Dlo Ti soit dans la même ligne mais Bla : colonne 1; Cla : colonne 2; Dla Dlo : colonne 3; Ti : colonne 4.
En espérant avoir étais clair,
Re: Document Texte et PureBasic
Publié : sam. 02/oct./2010 16:32
par Backup
ont t'a pourtant donné toutes les clefs pour arriver a faire ce que tu veux

Re: Document Texte et PureBasic
Publié : sam. 02/oct./2010 17:33
par nico
Au vu de ce que tu dis,
Tu as juste besoin de StringField, c'est pas compliqué!
Re: Document Texte et PureBasic
Publié : sam. 02/oct./2010 19:27
par Dumli
Le StringField() ne peut pas faire ce que je veux. La preuve en est que Dobro à fais un Programme uniquement composé de colonne. Et je n'arrive pas à faire Ligne + Colonne !

Re: Document Texte et PureBasic
Publié : sam. 02/oct./2010 20:42
par Ar-S
Sans avoir testé, si tu à 4x le caractère | comme référence, il te suffit de les compter.
Exemple : Ligne 2 colonne 3 signifierait "mot qui se trouve entre aprés le | numéro 6...
Ce serait bien plus simple nom ?
Re: Document Texte et PureBasic
Publié : sam. 02/oct./2010 21:43
par Dumli
Bon aprioris, je suis stupide ou idiot ... De toute façon je commence à être fatigué, je pense que je vais laisser tomber.
Re: Document Texte et PureBasic
Publié : dim. 17/oct./2010 20:40
par Dumli
J'ai réussi !!

Aprés avoir repris entièrement mon programme ... Maintenant, je voudrais ajouté le contenu dans une colonne avec ListIconGadget() sauf que ça ne fonctionne pas :
Code : Tout sélectionner
Width = DesktopWidth(0)
Height = DesktopHeight(0)
W=500
H=400
OpenWindow(0,(Width/2)-W/2,(Height/2)-H/2,W,H,"Verbe")
ListIconGadget(0,5,5,490,390,"Colonne 1",100)
For a=2 To 4
AddGadgetColumn(0,a,"Colonne " + Str(a),100)
Next a
For l=1 To Ligne
c1$+liste(1,l)+Chr(10)
Next l
For l=1 To Ligne
c2$ + liste(2,l)+Chr(10)
Next l
For l=1 To Ligne
c3$ + liste(3,l)+Chr(10)
Next l
For l=1 To Ligne
c4$ + liste(4,l)+Chr(10)
Next l
AddGadgetItem(0,1,c1$)
AddGadgetItem(0,2,c2$)
AddGadgetItem(0,3,c3$)
AddGadgetItem(0,4,c4$)
J'obtiens le 1er mot de c1 c2 c3 et c4 soit 4 mots dans la colonne 1. Alors que je voudrais c1 dans la colonne 1, c2 dans la colonne 2,... avec des retours à la ligne à chaque mots, d'où l'utilisation de chr(10), non ?
Je crois que mon erreur viens de la valeur de Position dans AddGadgetItem().
Re: Document Texte et PureBasic
Publié : lun. 18/oct./2010 20:43
par Dumli
Non, je n'y suis toujours pas arrivé. Je dois bloquer sur un truc tout bête en plus ...

Re: Document Texte et PureBasic
Publié : lun. 18/oct./2010 23:18
par Jacobus
Exemple...
Code : Tout sélectionner
;Ci-dessous commenté, le contenu du fichier texte
;(copier/coller tel que, mais sans les commentaires, dans le bloc-notes et enregsitrer)
;Donne par exemple : C:\Users\zobilamouche\Documents\My Stationery\Listedemerde.txt
; Bla
; Cla
; Dla Dlo
; Ti
; Bli
; Clo Cle
; Dli
; Ta Tu
; Blo
; Clu
; Dla Dlu
; Te To
;Ainsi pas de délimiteur, c'est au moment de la lecture du fichier que tu décides combien de ligne il faut lire pour
;correspondre avec ce que tu veux, 4 en l'occurence, pour 4 colonnes.
;donc... pour l'exemple
Global Filename$ = "C:\Users\zobilamouche\Documents\My Stationery\Listedemerde.txt" ; Changer ça...
If ExamineDesktops() <> 0
Width = DesktopWidth(0)
Height = DesktopHeight(0)
EndIf
W=500
H=400
If OpenWindow(0,(Width/2)-W/2,(Height/2)-H/2,W,H,"Verbe")
ListIconGadget(0,5,5,490,390,"Colonne 1",100) ;colonne 0
AddGadgetColumn(0,1,"Colonne 2",100)
AddGadgetColumn(0,2,"Colonne 3",100)
AddGadgetColumn(0,3,"Colonne4",100)
If ReadFile(0,Filename$)
While Eof(0) = 0 ; lit jusqu'à la fin du fichier
c1$=ReadString(0) ; tu lis une ligne
c2$=ReadString(0) ; puis la suivante
c3$=ReadString(0) ; puis la suivante
c4$=ReadString(0) ; et encore une fois
;tu as donc lu 4 lignes représentant chacune 1 colonne
;maintenant l'affichage normal dans la listicon
AddGadgetItem(0,-1,c1$+Chr(10)+c2$+Chr(10)+c3$+Chr(10)+c4$)
;ça c'est fait, donc on continue de boucler jusqu'à EOF
;et on ajoute une ligne de 4 colonnes à chaque boucle
Wend
CloseFile(0)
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow: Break
EndSelect
ForEver
EndIf
@+