je cherche a crée un petit projet( histoire de codé)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
grendizer
Messages : 59
Inscription : mer. 29/mai/2019 6:29

je cherche a crée un petit projet( histoire de codé)

Message par grendizer »

Bonjour
je vous explique je cherche a crée un petit projet( histoire de codé) ce que j'essaye de faire c'est d'avoir un fichier.txt( crée avec le bloc note) avec une liste de mots quand on lance le petit programme on charge le fichier.txt et on clique sur start pour afficher un mot au hasard , petit problème je me rappelle plus tres bien comment on fait en PB .
Bonne journée


Code : Tout sélectionner

;---  Word random 
EnableExplicit

;- Constantes
Enumeration WINDOWS
  #MainForm 
  #Form_Ajouter
 EndEnumeration
 
 Enumeration Gadgets 
   #Button_start
   #Button_efface
   #String_Affiche

 EndEnumeration
 
 ;- Quitter
  Procedure quit()
     End
   EndProcedure
   
   ;-- Main 
   Procedure Main()
  
   If OpenWindow( #MainForm ,0,0,300,180,"Word random  ",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
     StringGadget(#String_Affiche,40,45,220,20,"")
     ButtonGadget( #Button_start,10,130,80,30,"START")
     ButtonGadget( #Button_efface,210,130,80,30,"EFFACER")
     
     
     
     BindEvent(#PB_Event_CloseWindow,@quit(),#MainForm)
          

     Repeat 
      WaitWindowEvent()
        
       ForEver
      

     EndIf
   EndProcedure
   
 ;-- Start   
   Main()
   
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: je cherche a crée un petit projet( histoire de codé)

Message par Ar-S »

Un truc comme ça devrait marcher

Code : Tout sélectionner

Global NewList Mot.s()

If ReadFile(0, "Test.txt")   ; Si le fichier peut être lu , on continue...
    While Eof(0) = 0           ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File') 
        AddElement ( mot() )
        mot() = ReadString(0) ; stockage des mots dans la liste
    Wend
    CloseFile(0)               ; Ferme le fichier précédemment créé ou ouvert
  Else
    MessageRequester("Information","Impossible d'ouvrir le fichier!")
  EndIf
  
  
  Nbr = ListSize( mot() ) ; nbre d'éléments dans la liste
  
  Choix = Random(Nbr) ; tirage au sort
  SelectElement (mot(), choix)  ; selection
    Debug Mot() ; affichage
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: je cherche a crée un petit projet( histoire de codé)

Message par microdevweb »

Bonjour grendizer,

Voici un exemple avec 2 solutions, perso je préfère la deuxième. La première solution est commentée.

Pour tester crée un fichier "text.txt" avec des mots séparés par un retour à la ligne. Sauve le fichier dans le même répertoire que le fichier source du projet.

Voici le code

Code : Tout sélectionner

; renseigner ici le nom du fichier text
#FILE_PATH = "text.txt"
#FILE = 0
Enumeration 
  #MAIN_FORM
  #TEXT
  #BT_START
EndEnumeration
Global NewList mesText.s()
; SOLUTION 2
Global current = 0
Procedure loadText()
  ; si on arrive à ouvrir le fichier
  If OpenFile(#FILE,#FILE_PATH)
    ; tant que la fin du fichier n'est pas atteinte
    While Eof(0) = 0
      ; on ajoute un élément à la liste
      AddElement(mesText())
      mesText() = ReadString(#FILE)
      ;Debug mesText()
    Wend
  EndIf
  ; on ferme le fichier
  CloseFile(#FILE)
  ; SOLUTION 2
  RandomizeList(mesText(),0,ListSize(mesText())-1)
EndProcedure

Procedure evClose()
  CloseWindow(#MAIN_FORM)
  End
EndProcedure
; SOLUTION 1
; Procedure evStart()
;   ; tirage d'un numéro aléatoire
;   Protected n = Random(ListSize(mesText())-1,0)
;   If SelectElement(mesText(),n)
;     SetGadgetText(#TEXT,mesText())
;   EndIf
; EndProcedure

; SOLUTION 2
Procedure evStart()
  If SelectElement(mesText(),current)
    SetGadgetText(#TEXT,mesText())
  EndIf
  current +1
  If current >= ListSize(mesText())
    current = 0
  EndIf
EndProcedure



Procedure OpenMainForm()
  OpenWindow(#MAIN_FORM,0,0,400,400,"Text aléatoire",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  TextGadget(#TEXT,10,10,380,30,"")
  ButtonGadget(#BT_START,10,50,380,30,"Start")
  ; ajoute un écouteur pour la fermeture de la fenêtre
  BindEvent(#PB_Event_CloseWindow,@evClose(),#MAIN_FORM)
  ; ajoute un écouteur pour le click sur le bouton
  BindGadgetEvent(#BT_START,@evStart())
EndProcedure

loadText()
OpenMainForm()

Repeat
  WaitWindowEvent()
ForEver 
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
grendizer
Messages : 59
Inscription : mer. 29/mai/2019 6:29

Re: je cherche a crée un petit projet( histoire de codé)

Message par grendizer »

Merci pour vos precieux conseils les amis
Avatar de l’utilisateur
TazNormand
Messages : 1294
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: je cherche a crée un petit projet( histoire de codé)

Message par TazNormand »

Pour info, Grendizer = Bertrand59 = JB13 = JBernard et je soupçonne Zibeline12

Depuis le temps que tu écumes le forum, JB, il y a des choses que tu devrais maîtriser, notamment le simple fait de charger un fichier dans un tableau et de sélectionner un élément de ce tableau au hasard (cf code de Ar-S).

Sur ce, bonne soirée à tous
Image
Image
Avatar de l’utilisateur
grendizer
Messages : 59
Inscription : mer. 29/mai/2019 6:29

Re: je cherche a crée un petit projet( histoire de codé)

Message par grendizer »

TazNormand a écrit :Pour info, Grendizer = Bertrand59 = JB13 = JBernard et je soupçonne Zibeline12

Depuis le temps que tu écumes le forum, JB, il y a des choses que tu devrais maîtriser, notamment le simple fait de charger un fichier dans un tableau et de sélectionner un élément de ce tableau au hasard (cf code de Ar-S).

Sur ce, bonne soirée à tous


Taz je suis ni Bertrand59 , ni ziberline12 Taz il faut vraiment que tu arrête la fumette !!!!!! :D :D :D :D :D :D
Avatar de l’utilisateur
TazNormand
Messages : 1294
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: je cherche a crée un petit projet( histoire de codé)

Message par TazNormand »

Image
Image
Image
Avatar de l’utilisateur
grendizer
Messages : 59
Inscription : mer. 29/mai/2019 6:29

Re: je cherche a crée un petit projet( histoire de codé)

Message par grendizer »

TazNormand a écrit :Image
je t'ai envoyer un mp ....
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: je cherche a crée un petit projet( histoire de codé)

Message par Kwai chang caine »

Alors si j'ai bien compris Grendizer, c'est une "variante" de JB13 :mrgreen:

Image

Sacré JB13 :lol:

Merci pour le "vaccin" TAZ 8) :wink:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre