Apprentissage

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Warkering
Messages : 808
Inscription : ven. 08/janv./2010 1:14
Localisation : Québec, Canada

Re: Apprentissage

Message par Warkering »

C'est exactement la sorte de laboratoire que nous on fait au Cégep! Sauf que moi, je m'emmerde vraiment puisque c'est en Delphi ( Que je trouve encore tout autant répugnant! ) et que je fais des ateliers comme ça depuis que j'ai 12 ans! :|
Sinon, c'est exactement comme ça que tu progresseras! Commencez par des petits trucs inutiles pour comprendre les éléments fondamentaux des projets monstres pour en finir avec Half-Life 3! :mrgreen:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Apprentissage

Message par Backup »

c'est vrais que nous les "vieux"
on a eu la chance de commencer a l'epoque du ZX81 (1980)

la micro informatique n'etait pas connu du tout, c'etait un hobby pour
les gens pas normaux....

mais gros avantage , les DOC de ces micro ordinateurs, etaient de vraie
cours de Basic (langage roi , en 1980) (a part pour le Jupiter Ace "FORTH")

les magasines qui commençaient a poindre le bout de leur nez
etaient eux aussi de véritables cours de programmation

nous y apprenions les bases de la programmation par des petit exercices proposés,
ou par le recopiage de listing, de petits programmes, qui permettaient par exemple
de calculer le nombre de LAIEs (bande de papier murale) , qu'il fallait, pour
tapisser une pieces de X metres carré !
ou pour dessiner un cercle a l'ecran

la memoire vive etait de 1 kilo octets !! :)

certains c'étaient aperçus qu'en ecrivant un prg sur ZX81, cela générai un son
sur la cassette (on enregistrait sur bande magnétique a l'epoque)

en réécoutant le prg, on entendait des son chaotique

, ben certains avait trouvé comment lui faire jouer "au clair de la lune" !! :lol:
en ecrivant certaines valeur

un epoque de OUFs , mais carrement démente :)

je plaints les jeunes ayant échappé a ça :)
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Apprentissage

Message par dayvid »

En ce qui me concerne, je ne m'en plains pas

Ar-S, pas dur sur ce point-là, comme toujours chers moi, quand sa marche pas
c'est que c'est un problème de variable, il est là mon défaut a moi

Code : Tout sélectionner

Enumeration 1
#Repertoire
#ExplorerComboGadget
#Window_1
#lister
#ExplorerGadget
EndEnumeration

OpenWindow(#Window_1, 0, 0, 510, 540, "Exploreur de fichiers",  #PB_Window_SystemMenu | #PB_Window_Tool | #PB_Window_ScreenCentered)
;ExplorerComboGadget(#ExplorerComboGadget, 5, 5, 300, 25, "C:\")
ExplorerListGadget(#ExplorerGadget, 5, 35, 500, 470, "C:\", #PB_Explorer_GridLines)
ButtonGadget(#lister, 205, 510, 100, 25, "Lister")


Repeat
  Event = WindowEvent()
  GadgetID = EventGadget()

    If Event = #PB_Event_Gadget
      If GadgetID = #lister
  >>> Repertoire$ = "" <<<
        If ExamineDirectory(#Repertoire, "C:\", "*.*")
  
  Repeat
    
    If NextDirectoryEntry(#repertoire)
      Repertoire$ + DirectoryEntryName(#Repertoire)
      
      If DirectoryEntryType(#Repertoire) = #PB_DirectoryEntry_File
        Repertoire$ + " >>> Fichier" + Chr(13)
      ElseIf DirectoryEntryType(#Repertoire) = #PB_DirectoryEntry_Directory
        Repertoire$ + " >>> Repèrtoire" + Chr(13)
      EndIf
      
    Else
      Break
    EndIf
    
  ForEver
  
Else
  MessageRequester("Erreur", "Ne peut pas examiner le repèrtoire selectionner", 16)
EndIf

MessageRequester("Liste des fichiers", Repertoire$, 64)
      EndIf
    EndIf

  Until Event = #PB_Event_CloseWindow

Aller, suivent :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Apprentissage

Message par Backup »

dayvid a écrit :En ce qui me concerne, je ne m'en plains pas
tu passe pourtant ton temps a dire que tu cherche des cours ...
et que personne ne veux répondre a tes questions ... :roll:

ce que je dis , c'est qu'avant tu aurai eu ces cours (et donc tes réponses)
dans les magasines ou les doc des ordinateurs... alors oui d'une certaine façon oui ,tu te plaint !
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Apprentissage

Message par dayvid »

Oh la la pauvre de moi :lol:

Ba si je demande c'est que je ne sais pas voilà tous
et puis j'ai pas eu votre expérience moi :wink:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Apprentissage

Message par case »

oui mais voila tu demande et tu râles quand pas de réponses , surtout que la plupart de tes questions on deja la réponse dans le forum ou dans la doc de PB...
en plus tu te lance dans des trucs que pertinemment tu sais ne pas être capable de faire seul (moi même je me lancerais pas la dedans), donc forcement tu compte sur les autres pour résoudre tes problèmes. ce n'est pas la bonne méthode si tu veux apprendre quoi que ce soit.

souviens toi l'époque pas si lointaine pour toi ou tu étais a l'école maternelle. est-ce que l'institutrice t'as demandé de commencer par lire du victor hugo ? non je ne crois pas , elle t'as demandé de commencer par des gribouillis, puis t'es arrivé petit a petit a ecrire et a lire ( avec plus ou moins de réussite ceci dit en passant ) voila la bonne méthode. donc fait pareil... commence par des gribouillis et quand tu maitrisera l'alphabet tu pourra commencer a penser a faire des trucs plus difficiles.

le plus bel exemple est ton histoire de variable globale, tu pensais que parce qu'elles étaient en dehors des procédures elles étaient globales. alors que tu n'avais pas précisé 'globale' avant...

ce qui prouve que tu n'as pas lu la doc a ce sujet. le B a Ba de la programmation, les variables leur types et leur portée . donc comment tu veux te lancer dans un truc aussi complexe qu'un correcteur d'orthographe ? ou un langage de programmation ?


ton plus gros problème c'est que tu veux tout , tout de suite,c'est un peu comme se lancer dans la construction d'une tour sur des sables mouvants ... t'as plutôt intérêt a solidifier un peu tout ca...
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Apprentissage

Message par Ar-S »

Ok, c'est bien, Passons au level 2 :D

Toujours en partant de ce même programme, j'aimerai que tu changes ton bouton "Lister" en "Lister Fichiers"
et que tu ajoutes un "Lister les dossiers".
Ta mission est de faire en sorte que lorsque tu cliques sur l'un ou l'autre des boutons, un "SaveFileRequester" proposant à l'utilisateur de sauver la liste désirée apparaisse.

Au boulot ;)

Le Level 3 sera un peu plus pimenté ;)
~~~~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
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Apprentissage

Message par dayvid »

Oh ouais cool, HEIN QUOI ! 8O

Il va m'achever ce type :lol:
Oh la la, et puis dit sa sert a quoi puisque plus je ferais et plus tu m'achèvera
je ferais mieux de me tirer une balle de suite tu croix pas ? :mrgreen:

Et ba MÊME PAS EN RÊVE :twisted:
Je suis du genre coriace moi

Et dit ya combien de niveaux au faite :| hein ?

Et si j'y arrive pas, tu me dira un truc du genre, ouais et ba laisse béton
et va jouer aux billes et j'aurais fait tous sa pour rien alors ? snif :cry:

Si j'y arrive pas, faudra que mon maitre m'aide hein quand même
sinon où est l'intérêt, et sinon j'aurais droit à une image si je réussi :D

Bon oki au boulot
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Apprentissage

Message par dayvid »

Voilà, c'est fait maitre

Code : Tout sélectionner

Enumeration 1
  #Repertoire
  #ExplorerComboGadget
  #Window_1
  #lister_fichier
  #lister_dossier
  #ExplorerGadget
EndEnumeration

OpenWindow(#Window_1, 0, 0, 510, 540, "Exploreur de fichiers",  #PB_Window_SystemMenu | #PB_Window_Tool | #PB_Window_ScreenCentered)
;ExplorerComboGadget(#ExplorerComboGadget, 5, 5, 300, 25, "C:\")
ExplorerListGadget(#ExplorerGadget, 5, 35, 500, 470, "C:\", #PB_Explorer_GridLines)
ButtonGadget(#lister_fichier, 102, 510, 100, 25, "Lister les fichiers")
ButtonGadget(#lister_dossier, 205, 510, 100, 25, "Lister les Dossiers")


Repeat
  Event = WindowEvent()
  GadgetID = EventGadget()
  
  If Event = #PB_Event_Gadget
    If GadgetID = #lister_fichier
      Fichiers$ = ""
      If ExamineDirectory(#Repertoire, "C:\", "*.*")
        
        Repeat
          
          If NextDirectoryEntry(#repertoire)
            
            If DirectoryEntryType(#Repertoire) = #PB_DirectoryEntry_File
              Fichiers$ + DirectoryEntryName(#Repertoire) + Chr(13) + Chr(10)
            EndIf
            
          Else
            Break
          EndIf
          
        ForEver
        
      Else
        MessageRequester("Erreur", "Ne peut pas examiner le repèrtoire selectionner", 16)
      EndIf
      
      Fichier_a_sauvegarder$ = SaveFileRequester("Sauvegarder la liste", "", "Fichiers Textes (.Txt)|*.txt", 0)
      DeleteFile(Fichier_a_sauvegarder$)
      If OpenFile(1, Fichier_a_sauvegarder$ + ".txt")
        WriteStringN(1, Fichiers$)
      Else
        MessageRequester("Erreur", "Ne peut pas enregistrer le fichier", 16)
      EndIf
      
    ElseIf GadgetID = #lister_dossier
      Repertoire$ = ""
      If ExamineDirectory(#Repertoire, "C:\", "*.*")
        
        Repeat
          
          If NextDirectoryEntry(#repertoire)
            
            If DirectoryEntryType(#Repertoire) = #PB_DirectoryEntry_Directory
              Repertoire$ + DirectoryEntryName(#Repertoire) + Chr(13) + Chr(10)
            EndIf
            
          Else
            Break
          EndIf
          
        ForEver
        
      Else
        MessageRequester("Erreur", "Ne peut pas examiner le repèrtoire selectionner", 16)
      EndIf
      
      Fichier_a_sauvegarder$ = SaveFileRequester("Sauvegarder la liste", "", "Fichiers Textes (.Txt)|*.txt", 0)
      DeleteFile(Fichier_a_sauvegarder$)
      If OpenFile(1, Fichier_a_sauvegarder$ + ".txt")
        WriteStringN(1, Repertoire$)
      Else
        MessageRequester("Erreur", "Ne peut pas enregistrer le fichier", 16)
      EndIf
      
      
      
    EndIf
  EndIf
  
Until Event = #PB_Event_CloseWindow

La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Apprentissage

Message par Ar-S »

Et si j'y arrive pas, tu me dira un truc du genre, ouais et ba laisse béton
et va jouer aux billes et j'aurais fait tous sa pour rien alors ? snif :cry:
Ne me donne pas l'occasion de le faire ;)
Si j'y arrive pas, faudra que mon maitre m'aide hein quand même
sinon où est l'intérêt, et sinon j'aurais droit à une image si je réussi
N'appelle pas les gens qui t'aident "maitre", c'est gênant et surtout injustifié car je ne te considère pas comme mon élève.

Revenons à nos moutons.
Bon, alors là y'a des erreurs, le level 2 n'est pas trop dur mais ce n'est pas du level 1 non plus ^^

Lorsque l'on navigue dans l'explorergadget et que l'on clique sur les boutons, le repertoire actuel du gadget n'est pas pris en compte..
Il faut que tu corriges ça. Pour ce faire, tu dois vérifier avec un simple GetGadgetText le nom du répertoire en cours.
Dans mon code, tu vas devoir réutiliser DossierCible$

Erreur plus grave :twisted: , car la tu touches à l'écriture de fichier. Pour tout Openfile, tu dois le terminer par la commande CloseFile (regarde ce que dit la doc pour openfile) !
Grave toi ça dans la tête car c'est important !

Utilise ce code et ajoute les fonctions de listing des fichiers.
J'ai ajouter un simple stringgadget pour afficher le repertoire courant de l'explorergadget, ainsi tu sais ou tu te trouves.
J'ai aussi converti les IF / GadgetID en Select / Case
C'est bien plus lisible sinon tu vas te paumer dans les if else endif à répétition.

Code : Tout sélectionner

Enumeration
  #Window_0
  #lister_fichier
  #lister_dossier
  #ExplorerGadget
  #INFO
EndEnumeration

Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 636, 85, 534, 561, "Window_0", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    ButtonGadget(#lister_fichier, 35, 510, 190, 35, "Lister fichier")
    ButtonGadget(#lister_dossier, 230, 510, 190, 35, "Lister Dossier")
    
    ExplorerListGadget(#ExplorerGadget, 10, 10, 515, 455, "c:\")
    ; Pour le 1er lancement, on vérifier ou se trouve l'explorer (logiquement dans c:\
    DossierCible$=GetGadgetText(#ExplorerGadget)
    
    ; et on l'affiche dans la barre d'info
    StringGadget(#INFO, 15, 470, 510, 20, "Localisation : "+DossierCible$, #PB_String_ReadOnly)

  EndIf
EndProcedure

OpenWindow_Window_0()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #lister_fichier
          Fichiers$ = ""
          DossierCible$=GetGadgetText(#ExplorerGadget) ; ICI TU RE VERIFIES QU'ON EST TOUJOURS AU MÊME ENDROIT DANS L'EXPLORER
          
          ;(A TOI DE CODER ICI)
          
        Case #lister_dossier
          Repertoire$ = ""
          DossierCible$=GetGadgetText(#ExplorerGadget) ; ICI TU RE VERIFIES QU'ON EST TOUJOURS AU MÊME ENDROIT DANS L'EXPLORER
          
          ;(A TOI DE CODER ICI)
          
        Case #ExplorerGadget
             DossierCible$=GetGadgetText(#ExplorerGadget)
             SetGadgetText(#INFO,"Localisation : "+DossierCible$) 
      EndSelect
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
ForEver

Je préfère que tu réfléchisses et que tu pondes un code sans erreurs "lourdes" (comme closefile()) plutôt que tu te précipites.
Et use toi les yeux sur la doc !

Au boulot ! ET PRENDS TON TEMPS on fait pas la course.
~~~~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
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: Apprentissage

Message par jbernard13 »

merci Ar-S pour tes cours
Jbernard13
Répondre