compter les éléments d'un fichier
compter les éléments d'un fichier
j'aimerai savoir comment faire pour compter les élements d'un fichier
je m'explique
j'aimerai à chaque fois que je rajoute un élément dans mon fichier, que mon programme me dise "aujourd'hui 20 mars 2004, il y a x dans le programme"
merci beaucoup
je m'explique
j'aimerai à chaque fois que je rajoute un élément dans mon fichier, que mon programme me dise "aujourd'hui 20 mars 2004, il y a x dans le programme"
merci beaucoup
Code : Tout sélectionner
If CreatePreferences(Fichier) ; On crée un fichier de préférences, c'est plus simple qu'un fichier normal au niveau de la gestion
WritePreferenceString("Titre", Titre)
WritePreferenceString("Réalisateur", realisateur)
WritePreferenceString("Acteur 1", acteur1)
WritePreferenceString("Acteur 2", acteur2)
WritePreferenceString("Acteur 3", acteur3)
WritePreferenceString("Durée", duree)
WritePreferenceString("Origine", origine)
WritePreferenceString("Année", annee)
WritePreferenceString("Producteur", producteur)
WritePreferenceString("nom de l'emprunteur",personne)
WritePreferenceString ("date de pret",prete)
WritePreferenceString("date de retour",retour)
ClosePreferences()
MessageRequester("Validation", "Le film " + titre + " est bien enregistré")
Else
MessageRequester("probleme", "impossible de creer le fichier", 0)
EndIf
A mon avis, tu te casse bien la tête pour pas grand chose, là!
Si tu crée une liste chainée avec tous les paramètres, tu peux enregistrer chaque film, avec tous les paramètres le concernant, séparés par un caractère, par ex. une virgule, sur une seule ligne.
Tu as donc un film par ligne, et il te suffit ensuite de compter les lignes dans le fichier, ou même d'enregistrer le nombre de films au début, ou à la fin du fichier. La fonction CountList(Liste()) te donnes cette valeur.
Chris
Si tu crée une liste chainée avec tous les paramètres, tu peux enregistrer chaque film, avec tous les paramètres le concernant, séparés par un caractère, par ex. une virgule, sur une seule ligne.
Tu as donc un film par ligne, et il te suffit ensuite de compter les lignes dans le fichier, ou même d'enregistrer le nombre de films au début, ou à la fin du fichier. La fonction CountList(Liste()) te donnes cette valeur.
Chris

Code : Tout sélectionner
; Tu commences par créer ta liste, avec tous les paramètres
Structure FILM
titre.s
realisateur.s
acteur1.s
acteur2.s
acteur3.s
duree.s
origine.s
annee.s
producteur.s
personne.s
prete.s
retour.s
EndStructure
NewList MesFilms.FILM()
; Ensuite, tu entres les paramètres.
; Film 1
AddElement(MesFilms())
MesFilms()\titre = "Le film du siècle"
MesFilms()\realisateur = "Gilbert DUPONT"
MesFilms()\acteur1 = "Robert TARTEMPION"
MesFilms()\acteur2 = "Roger DUGLAND"
MesFilms()\acteur3 = "Michel DUCHMOLL"
MesFilms()\duree = "257"
MesFilms()\origine = "Indeterminee"
MesFilms()\producteur = "Emile SANS-LE-SOU"
MesFilms()\personne = "Arsène LUPIN"
MesFilms()\prete = "23/12/98"
MesFilms()\retour = "Jamais"
; Film 2
AddElement(MesFilms())
MesFilms()\titre = "Une grosse bouse"
MesFilms()\realisateur = "Inconnu"
MesFilms()\acteur1 = "Georges GROSNUL"
MesFilms()\acteur2 = ""
MesFilms()\acteur3 = ""
MesFilms()\duree = "302"
MesFilms()\origine = "France"
MesFilms()\producteur = "Paul-Henry PAS De TUNE"
MesFilms()\personne = "Monsieur X"
MesFilms()\prete = "19/03/2003 à 08:30"
MesFilms()\retour = "19/03/2003 à 08:31"
; Enregistrement dans le fichier
OpenFile(0,"MesFilms.txt") ; On ouvre un nouveau fichier si il n'existe pas
; sinon, on ouvre le fichier existant
WriteStringN(Str(CountList(MesFilms())))
ForEach MesFilms()
C$ = MesFilms()\titre + ";"+MesFilms()\realisateur+";"+MesFilms()\acteur1+";"+MesFilms()\acteur2+";"+MesFilms()\acteur3+";"+MesFilms()\duree+";"+MesFilms()\origine+";"+MesFilms()\producteur+";"+MesFilms()\personne+";"+MesFilms()\prete+";"+MesFilms()\retour
WriteStringN(C$)
Next
CloseFile(0)
; Naturellement, tu n'entres pas chaque donnée comme ça. il faut faire une interface
; sinon, ça va vite devenir ingèrable
; Pour voir ce qui est enregistré:
If FileSize("MesFilms.txt")<>-1
OpenFile(0,"MesFilms.txt")
NbFilms = Val(ReadString())
For i = 0 To NbFilms -1
Debug ReadString()
Next
EndIf
; Pour récupérer chaque champs, tu dois utiliser la fonction StringField()
; Voir l'aide dans "String"
; Pour remettre les valeurs dans la liste, tu fais comme au début de l'exemple.
; Bon, j'admet que c'est un peu brouillon, comme exemple, mais en si peu de temps, c'est
; pas trop facile de faire quelque chose de bien.
Chris

PS : Tu devrais mettre le genre de film. (Polar, SF, Western, etc...)
Re-PS : Et ce serait sympa que tu t'enregistres, aussi, si ce n'est pas déjà fait.
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Oui, on t'a reconnu France avec ton logiciel de base de donnés pour tes films.
une question, ce n'est pas plutot compter le nombre de fichiers de preferences (donc présentant un film) contenu dans un dossier que tu cherches ?
je reconnais le bout de code qui est de moi et à mon avis c'est cela.
donc le truc c'est :
donc tu mets ton dossier et hop
une question, ce n'est pas plutot compter le nombre de fichiers de preferences (donc présentant un film) contenu dans un dossier que tu cherches ?
je reconnais le bout de code qui est de moi et à mon avis c'est cela.
donc le truc c'est :
Code : Tout sélectionner
Procedure Comptage(Dossier.s)
If ExamineDirectory(n, Dossier, "*.txt") ; on examine le dossier
Repeat
Filetype = NextDirectoryEntry() ; cherche le prochain fichier contenu dans le dossier
If FileType = 1 ; on a trouvé un fichier dans le dossier
Nb + 1
EndIf
Until FileType = 0 ; si filetype = 0 c'est qu'il n'y a plus de fichier non trouvé dans le dossier
EndIf
ProcedureReturn Nb
EndProcedure
Debug Comptage("C:\purebasic\catalogue\") ; donne le nombre de fichier dans le Dossier
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
ben, ça marche cher moi ?
tu as bien mis le bon dossier en paramètre ?
Si tu veux, tu me donne ton code complet, je regarde et je l'insère. tu veux que ça l'affiche au démarrage, c'est bien cela ?
tu as bien mis le bon dossier en paramètre ?
Si tu veux, tu me donne ton code complet, je regarde et je l'insère. tu veux que ça l'affiche au démarrage, c'est bien cela ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
oui c ca
je voulais qu'a l'ouverture du menu il m'indique le nbre de films que j'ai
je te renvoies donc le prog qui deviendra bientot le tien,
, mais grace à toi, j'apprends énormément, et je t'en remercies
a+
je voulais qu'a l'ouverture du menu il m'indique le nbre de films que j'ai
je te renvoies donc le prog qui deviendra bientot le tien,

a+
Code : Tout sélectionner
; déclaration des constantes
Enumeration
#menu
#Text_0
#Text_1
#Text_2
#Text_3
#Text_4
#Text_5
#Text_6
#Text_7
#Text_8
#text_9
#text_10
#text_11
#text_12
#text_13
#text_14
#text_15
#text_16
#text_17
#text_18
#text_19
#text_20
#text_21
#text_22
#text_23
#text_24
#text_25
#String_0
#String_1
#String_2
#String_3
#String_4
#String_5
#String_6
#String_7
#String_8
#Button_0
#Button_1
#button_2
#button_consultation_film
#consultation
#film_du_catalogue
#pret_de_film
#message
#bouton_inserer
#page_film
#sauvegarder
#corriger
#gadget_editeur
#bouton_consulter
#page_consultation
#pret
#text_26
#text_27
#text_28
#text_29
#text_30
#string_9
#string_10
#string_11
#string_12
#string_13
#string_14
#fini
#retour3
#effacer
#nbre
EndEnumeration
Global titre.s, acteur1.s, realisateur.s, acteur2.s, acteur3.s, duree.s, origine.s, annee.s, producteur.s,film.s,prete.s,retour.s,personne.s ,nb
Declare creation_de_film(Modification.l)
Declare recapitulatif()
Declare creation_fichier()
Declare consultation_de_film()
Declare pret_de_film()
Procedure ouverture_menu()
If OpenWindow(#menu, 0, 0, 200, 200, #pb_window_systemmenu | #pb_window_windowcentered, "menu")
If CreateGadgetList (WindowID())
ButtonGadget(#bouton_inserer, 10, 10, 180, 20, "INSERER UN FILM")
ButtonGadget(#bouton_consulter, 10, 40, 180, 20, "CONSULTER LE CATALOGUE")
ButtonGadget(#pret,10,70,180,20,"PRET DE FILM")
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_EventCloseWindow Or EventID = #PB_EventGadget
CloseWindow(#menu)
If EventID = #PB_EventGadget
Select EventGadgetID()
Case #bouton_inserer
; On initialise les variables, important !
Titre = ReadPreferenceString("Titre", "")
realisateur = ""
acteur1 = ""
acteur2 = ""
acteur3 = ""
duree = ""
origine = ""
annee = ""
producteur = ""
creation_de_film(0)
Case #bouton_consulter
consultation_de_film()
Case #pret
film = ReadPreferenceString("film","")
personne = ""
prete = ""
retour = ""
pret_de_film ()
EndSelect
EndIf
EndProcedure
Procedure creation_de_film(Modification.l)
; Modification = 1 si on modifie la page
If OpenWindow(#page_film, 216, 0, 343, 333, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered, "information pour le film")
If CreateGadgetList(WindowID())
TextGadget(#Text_0, 10, 10, 90, 20, "Titre du film :")
TextGadget(#Text_1, 10, 40, 90, 20, "Réalisateur :")
TextGadget(#Text_2, 10, 70, 90, 20, "Premier acteur :")
TextGadget(#Text_3, 10, 100, 90, 20, "Deuxième acteur :")
TextGadget(#Text_4, 10, 130, 90, 20, "Troisième acteur :")
TextGadget(#Text_5, 10, 160, 90, 20, "Durée :")
TextGadget(#Text_6, 10, 190, 90, 20, "Origine :")
TextGadget(#Text_7, 10, 220, 90, 20, "Année :")
TextGadget(#Text_8, 10, 250, 90, 20, "Producteur :")
StringGadget(#String_0, 100, 10, 210, 20, Titre)
StringGadget(#String_1, 100, 40, 210, 20, realisateur)
StringGadget(#String_2, 100, 70, 210, 20, acteur1)
StringGadget(#String_3, 100, 100, 210, 20, acteur2)
StringGadget(#String_4, 100, 130, 210, 20, acteur3)
StringGadget(#String_5, 100, 160, 210, 20, duree)
StringGadget(#String_6, 100, 190, 210, 20, origine)
StringGadget(#String_7, 100, 220, 210, 20, annee)
StringGadget(#String_8, 100, 250, 210, 20, producteur)
ButtonGadget(#Button_0, 30, 290, 120, 30, "Terminer")
ButtonGadget(#Button_1, 190, 290, 120, 30, "Annuler")
EndIf
Recapitulatif = 0
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID() ; La gestion des évenements
Case #Button_0
; L'utilistateur à terminer la saisie des informations
titre = GetGadgetText(#String_0)
realisateur = GetGadgetText(#String_1)
acteur1 = GetGadgetText(#String_2)
acteur2 = GetGadgetText(#String_3)
acteur3 = GetGadgetText(#String_4)
duree = GetGadgetText(#String_5)
origine = GetGadgetText(#String_6)
annee = GetGadgetText(#String_7)
producteur = GetGadgetText(#String_8)
; On a mémorisé toute les informations utiles
; on ferme la fenetre et on quitte
CloseWindow(#page_film)
Recapitulatif = 1
Case #Button_1
; L'utilisateur à changer d'idée, on ferme la fenètre
If Modification ; Si on ne fait que modifier le film, on retourne au récapitulatif
Recapitulatif = 1
EndIf
EventID = #PB_EventCloseWindow
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow Or Recapitulatif
; On ferme la Fenètre pour la saisie des informations d'un film
CloseWindow(#page_film)
If Recapitulatif
Recapitulatif()
Else
ouverture_menu()
EndIf
EndIf
EndProcedure
Procedure recapitulatif()
If OpenWindow(#page_film, 216, 0, 430, 400, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered, "Récapitulatif des informations pour le nouveau film")
If CreateGadgetList(WindowID())
ButtonGadget(#sauvegarder, 10, 340, 200, 20, "sauvegarder")
ButtonGadget(#corriger, 220, 340, 200, 20, "corriger")
ButtonGadget(#button_2, 10, 370, 200, 20, "retour au menu")
ButtonGadget(#pret,220,370,200,20,"pret du film")
If LoadFont(0, "arial", 25, #PB_Font_Underline)
TextGadget(#text_9, 10, 10, 430, 40, titre, #pb_text_center)
SetGadgetFont(#text_9, FontID())
TextGadget(#text_10, 10, 100, 100, 20, "Réalisé par :")
TextGadget(#text_11, 200, 100, 150, 20, realisateur)
TextGadget(#text_12, 10, 130, 100, 20, "avec entre autre : ")
TextGadget(#text_13, 200, 130, 100, 15, acteur1)
TextGadget(#text_14, 200, 150, 100, 15, acteur2)
TextGadget(#text_15, 200, 170, 100, 15, acteur3)
TextGadget(#text_16, 10, 200, 150, 20, "La duree du film est de :")
TextGadget(#text_17, 200, 200, 100, 20, duree)
TextGadget(#text_18, 10, 230, 100, 20, "l'origine est : ")
TextGadget(#text_19, 200, 230, 100, 20, origine)
TextGadget(#text_20, 10, 260, 190, 20, " création de " + titre + " est :")
TextGadget(#text_21, 200, 260, 100, 20, annee)
TextGadget(#text_22, 10, 290, 100, 20, "produit par : ")
TextGadget(#text_23, 200, 290, 100, 20, producteur)
EndIf
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_EventCloseWindow Or EventID = #PB_EventGadget
CloseWindow(#page_film)
If EventID = #PB_EventGadget
Select EventGadgetID()
Case #corriger
creation_de_film(1)
Case #sauvegarder
creation_fichier()
Case #button_2
ouverture_menu()
Case #pret
pret_de_film()
Case #nbre
EndSelect
EndIf
EndIf
EndIf
EndProcedure
Procedure creation_fichier()
; Demande le nom du fichier à l'utilisateur avec le titre du film en nom par défaut
Fichier.s = SaveFileRequester("Sauver le fichier", "c:\dvd\" + Titre + ".txt", "Fichiers texte|*.txt", 0)
If Fichier = "" ; Si la function retourne un texte vide, vous avez appuyé sur annulé
Else ; si la fonction SaveFileRequester retourne une valeur
If GetExtensionPart(Fichier) = "" ; si le nom de fichier ne comporte pas d'extension
Fichier = Fichier + ".txt" ; on ajoute l'extension
EndIf
If CreatePreferences(Fichier) ; On crée un fichier de préférences, c'est plus simple qu'un fichier normal au niveau de la gestion
WritePreferenceString("Titre", Titre)
WritePreferenceString("Réalisateur", realisateur)
WritePreferenceString("Acteur 1", acteur1)
WritePreferenceString("Acteur 2", acteur2)
WritePreferenceString("Acteur 3", acteur3)
WritePreferenceString("Durée", duree)
WritePreferenceString("Origine", origine)
WritePreferenceString("Année", annee)
WritePreferenceString("Producteur", producteur)
WritePreferenceString("nom de l'emprunteur",personne)
WritePreferenceString ("date de pret",prete)
WritePreferenceString("date de retour",retour)
ClosePreferences()
MessageRequester("Validation", "Le film " + titre + " est bien enregistré")
Else
MessageRequester("probleme", "impossible de creer le fichier", 0)
EndIf
EndIf
Recapitulatif()
EndProcedure
Procedure consultation_de_film()
; on demande le fichier a ouvrir
Fichier.s = OpenFileRequester("Ouvrir", "c:\dvd\", "Films|*.txt", 0)
If Fichier = "" ; on a annulé la demande d'ouverture de fichier
Ouverture_Menu() ; on retourne au menu
Else
If OpenPreferences(Fichier)
Titre = ReadPreferenceString("Titre", "")
realisateur = ReadPreferenceString("Réalisateur", "")
acteur1 = ReadPreferenceString("Acteur 1", "")
acteur2 = ReadPreferenceString("Acteur 2", "")
acteur3 = ReadPreferenceString("Acteur 3", "")
duree = ReadPreferenceString("Durée", "")
origine = ReadPreferenceString("Origine", "")
annee = ReadPreferenceString("Année", "")
producteur = ReadPreferenceString("Producteur", "")
personne = ReadPreferenceString("nom de l'emprunteur","")
prete=ReadPreferenceString("date de pret","")
retour=ReadPreferenceString("date de retour","")
ClosePreferences()
; on affiche le film
Recapitulatif()
EndIf
EndIf
EndProcedure
Procedure pret_de_film()
If OpenWindow(#pret_de_film, 216, 0,430, 150, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered, "PRET DU FILM "+TITRE)
If CreateGadgetList(WindowID())
TextGadget(#text_26 ,10,10,150,20,"nom de l'emprunteur :")
StringGadget(#string_9,170,10,210,20, personne)
TextGadget(#text_27,10,50,90,20,"date de pret :")
StringGadget(#string_10,100,50,100,20, prete)
TextGadget(#text_28,210,50,90,20,"date de retour :")
StringGadget(#string_11,310,50,90,20, retour)
ButtonGadget(#fini,270,100,90,20,"sauvegarder")
ButtonGadget(#retour3,10,100,90,20,"retour")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID() ; La gestion des évenements
Case #fini
; L'utilistateur à terminer la saisie des informations
personne = GetGadgetText(#String_9)
prete= GetGadgetText(#String_10)
retour = GetGadgetText(#String_11)
; On a mémorisé toute les informations utiles
; on ferme la fenetre et on quitte
CloseWindow(#pret_de_film)
creation_fichier()
Case #retour3
CloseWindow(#pret_de_film)
ouverture_menu()
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow
EndIf
EndProcedure
ouverture_menu()
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
c'était tout simple, je te laisse te rendre compte par toi même (voir procedure Ouverture_menu)
Code : Tout sélectionner
; déclaration des constantes
Enumeration
#menu
#Text_0
#Text_1
#Text_2
#Text_3
#Text_4
#Text_5
#Text_6
#Text_7
#Text_8
#text_9
#text_10
#text_11
#text_12
#text_13
#text_14
#text_15
#text_16
#text_17
#text_18
#text_19
#text_20
#text_21
#text_22
#text_23
#text_24
#text_25
#String_0
#String_1
#String_2
#String_3
#String_4
#String_5
#String_6
#String_7
#String_8
#Button_0
#Button_1
#button_2
#button_consultation_film
#consultation
#film_du_catalogue
#pret_de_film
#message
#bouton_inserer
#page_film
#sauvegarder
#corriger
#gadget_editeur
#bouton_consulter
#page_consultation
#pret
#text_26
#text_27
#text_28
#text_29
#text_30
#string_9
#string_10
#string_11
#string_12
#string_13
#string_14
#fini
#retour3
#effacer
#nbre
#NbFilm ; Nombre de film contenu dans le dossier
EndEnumeration
Global titre.s, acteur1.s, realisateur.s, acteur2.s, acteur3.s, duree.s, origine.s, annee.s, producteur.s, film.s, prete.s, retour.s, personne.s, nb
Declare creation_de_film(Modification.l)
Declare recapitulatif()
Declare creation_fichier()
Declare consultation_de_film()
Declare pret_de_film()
Procedure Comptage(Dossier.s)
If ExamineDirectory(n, Dossier, "*.txt") ; on examine le dossier
Repeat
Filetype = NextDirectoryEntry() ; cherche le prochain fichier contenu dans le dossier
If FileType = 1 ; on a trouvé un fichier dans le dossier
Nb + 1
EndIf
Until FileType = 0 ; si filetype = 0 c'est qu'il n'y a plus de fichier non trouvé dans le dossier
EndIf
ProcedureReturn Nb
EndProcedure
Procedure ouverture_menu()
If OpenWindow(#menu, 0, 0, 200, 200, #pb_window_systemmenu | #pb_window_windowcentered, "menu")
If CreateGadgetList (WindowID())
ButtonGadget(#bouton_inserer, 10, 10, 180, 20, "INSERER UN FILM")
ButtonGadget(#bouton_consulter, 10, 40, 180, 20, "CONSULTER LE CATALOGUE")
ButtonGadget(#pret, 10, 70, 180, 20, "PRET DE FILM")
; Pour afficher le nombre de film
TextGadget(#NbFilm, 10, 180, 180, 20, "Nombre de films catalogués : " + Str(Comptage("C:\Dvd")))
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_EventCloseWindow Or EventID = #PB_EventGadget
CloseWindow(#menu)
If EventID = #PB_EventGadget
Select EventGadgetID()
Case #bouton_inserer
; On initialise les variables, important !
Titre = ReadPreferenceString("Titre", "")
realisateur = ""
acteur1 = ""
acteur2 = ""
acteur3 = ""
duree = ""
origine = ""
annee = ""
producteur = ""
creation_de_film(0)
Case #bouton_consulter
consultation_de_film()
Case #pret
film = ReadPreferenceString("film", "")
personne = ""
prete = ""
retour = ""
pret_de_film ()
EndSelect
EndIf
EndProcedure
Procedure creation_de_film(Modification.l)
; Modification = 1 si on modifie la page
If OpenWindow(#page_film, 216, 0, 343, 333, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered, "information pour le film")
If CreateGadgetList(WindowID())
TextGadget(#Text_0, 10, 10, 90, 20, "Titre du film :")
TextGadget(#Text_1, 10, 40, 90, 20, "Réalisateur :")
TextGadget(#Text_2, 10, 70, 90, 20, "Premier acteur :")
TextGadget(#Text_3, 10, 100, 90, 20, "Deuxième acteur :")
TextGadget(#Text_4, 10, 130, 90, 20, "Troisième acteur :")
TextGadget(#Text_5, 10, 160, 90, 20, "Durée :")
TextGadget(#Text_6, 10, 190, 90, 20, "Origine :")
TextGadget(#Text_7, 10, 220, 90, 20, "Année :")
TextGadget(#Text_8, 10, 250, 90, 20, "Producteur :")
StringGadget(#String_0, 100, 10, 210, 20, Titre)
StringGadget(#String_1, 100, 40, 210, 20, realisateur)
StringGadget(#String_2, 100, 70, 210, 20, acteur1)
StringGadget(#String_3, 100, 100, 210, 20, acteur2)
StringGadget(#String_4, 100, 130, 210, 20, acteur3)
StringGadget(#String_5, 100, 160, 210, 20, duree)
StringGadget(#String_6, 100, 190, 210, 20, origine)
StringGadget(#String_7, 100, 220, 210, 20, annee)
StringGadget(#String_8, 100, 250, 210, 20, producteur)
ButtonGadget(#Button_0, 30, 290, 120, 30, "Terminer")
ButtonGadget(#Button_1, 190, 290, 120, 30, "Annuler")
EndIf
Recapitulatif = 0
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID() ; La gestion des évenements
Case #Button_0
; L'utilistateur à terminer la saisie des informations
titre = GetGadgetText(#String_0)
realisateur = GetGadgetText(#String_1)
acteur1 = GetGadgetText(#String_2)
acteur2 = GetGadgetText(#String_3)
acteur3 = GetGadgetText(#String_4)
duree = GetGadgetText(#String_5)
origine = GetGadgetText(#String_6)
annee = GetGadgetText(#String_7)
producteur = GetGadgetText(#String_8)
; On a mémorisé toute les informations utiles
; on ferme la fenetre et on quitte
CloseWindow(#page_film)
Recapitulatif = 1
Case #Button_1
; L'utilisateur à changer d'idée, on ferme la fenètre
If Modification ; Si on ne fait que modifier le film, on retourne au récapitulatif
Recapitulatif = 1
EndIf
EventID = #PB_EventCloseWindow
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow Or Recapitulatif
; On ferme la Fenètre pour la saisie des informations d'un film
CloseWindow(#page_film)
If Recapitulatif
Recapitulatif()
Else
ouverture_menu()
EndIf
EndIf
EndProcedure
Procedure recapitulatif()
If OpenWindow(#page_film, 216, 0, 430, 400, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered, "Récapitulatif des informations pour le nouveau film")
If CreateGadgetList(WindowID())
ButtonGadget(#sauvegarder, 10, 340, 200, 20, "sauvegarder")
ButtonGadget(#corriger, 220, 340, 200, 20, "corriger")
ButtonGadget(#button_2, 10, 370, 200, 20, "retour au menu")
ButtonGadget(#pret, 220, 370, 200, 20, "pret du film")
If LoadFont(0, "arial", 25, #PB_Font_Underline)
TextGadget(#text_9, 10, 10, 430, 40, titre, #pb_text_center)
SetGadgetFont(#text_9, FontID())
TextGadget(#text_10, 10, 100, 100, 20, "Réalisé par :")
TextGadget(#text_11, 200, 100, 150, 20, realisateur)
TextGadget(#text_12, 10, 130, 100, 20, "avec entre autre : ")
TextGadget(#text_13, 200, 130, 100, 15, acteur1)
TextGadget(#text_14, 200, 150, 100, 15, acteur2)
TextGadget(#text_15, 200, 170, 100, 15, acteur3)
TextGadget(#text_16, 10, 200, 150, 20, "La duree du film est de :")
TextGadget(#text_17, 200, 200, 100, 20, duree)
TextGadget(#text_18, 10, 230, 100, 20, "l'origine est : ")
TextGadget(#text_19, 200, 230, 100, 20, origine)
TextGadget(#text_20, 10, 260, 190, 20, " création de " + titre + " est :")
TextGadget(#text_21, 200, 260, 100, 20, annee)
TextGadget(#text_22, 10, 290, 100, 20, "produit par : ")
TextGadget(#text_23, 200, 290, 100, 20, producteur)
EndIf
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_EventCloseWindow Or EventID = #PB_EventGadget
CloseWindow(#page_film)
If EventID = #PB_EventGadget
Select EventGadgetID()
Case #corriger
creation_de_film(1)
Case #sauvegarder
creation_fichier()
Case #button_2
ouverture_menu()
Case #pret
pret_de_film()
Case #nbre
EndSelect
EndIf
EndIf
EndIf
EndProcedure
Procedure creation_fichier()
; Demande le nom du fichier à l'utilisateur avec le titre du film en nom par défaut
Fichier.s = SaveFileRequester("Sauver le fichier", "c:\dvd\" + Titre + ".txt", "Fichiers texte|*.txt", 0)
If Fichier = "" ; Si la function retourne un texte vide, vous avez appuyé sur annulé
Else ; si la fonction SaveFileRequester retourne une valeur
If GetExtensionPart(Fichier) = "" ; si le nom de fichier ne comporte pas d'extension
Fichier = Fichier + ".txt" ; on ajoute l'extension
EndIf
If CreatePreferences(Fichier) ; On crée un fichier de préférences, c'est plus simple qu'un fichier normal au niveau de la gestion
WritePreferenceString("Titre", Titre)
WritePreferenceString("Réalisateur", realisateur)
WritePreferenceString("Acteur 1", acteur1)
WritePreferenceString("Acteur 2", acteur2)
WritePreferenceString("Acteur 3", acteur3)
WritePreferenceString("Durée", duree)
WritePreferenceString("Origine", origine)
WritePreferenceString("Année", annee)
WritePreferenceString("Producteur", producteur)
WritePreferenceString("nom de l'emprunteur", personne)
WritePreferenceString ("date de pret", prete)
WritePreferenceString("date de retour", retour)
ClosePreferences()
MessageRequester("Validation", "Le film " + titre + " est bien enregistré")
Else
MessageRequester("probleme", "impossible de creer le fichier", 0)
EndIf
EndIf
Recapitulatif()
EndProcedure
Procedure consultation_de_film()
; on demande le fichier a ouvrir
Fichier.s = OpenFileRequester("Ouvrir", "c:\dvd\", "Films|*.txt", 0)
If Fichier = "" ; on a annulé la demande d'ouverture de fichier
Ouverture_Menu() ; on retourne au menu
Else
If OpenPreferences(Fichier)
Titre = ReadPreferenceString("Titre", "")
realisateur = ReadPreferenceString("Réalisateur", "")
acteur1 = ReadPreferenceString("Acteur 1", "")
acteur2 = ReadPreferenceString("Acteur 2", "")
acteur3 = ReadPreferenceString("Acteur 3", "")
duree = ReadPreferenceString("Durée", "")
origine = ReadPreferenceString("Origine", "")
annee = ReadPreferenceString("Année", "")
producteur = ReadPreferenceString("Producteur", "")
personne = ReadPreferenceString("nom de l'emprunteur", "")
prete = ReadPreferenceString("date de pret", "")
retour = ReadPreferenceString("date de retour", "")
ClosePreferences()
; on affiche le film
Recapitulatif()
EndIf
EndIf
EndProcedure
Procedure pret_de_film()
If OpenWindow(#pret_de_film, 216, 0, 430, 150, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered, "PRET DU FILM " + TITRE)
If CreateGadgetList(WindowID())
TextGadget(#text_26, 10, 10, 150, 20, "nom de l'emprunteur :")
StringGadget(#string_9, 170, 10, 210, 20, personne)
TextGadget(#text_27, 10, 50, 90, 20, "date de pret :")
StringGadget(#string_10, 100, 50, 100, 20, prete)
TextGadget(#text_28, 210, 50, 90, 20, "date de retour :")
StringGadget(#string_11, 310, 50, 90, 20, retour)
ButtonGadget(#fini, 270, 100, 90, 20, "sauvegarder")
ButtonGadget(#retour3, 10, 100, 90, 20, "retour")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID() ; La gestion des évenements
Case #fini
; L'utilistateur à terminer la saisie des informations
personne = GetGadgetText(#String_9)
prete = GetGadgetText(#String_10)
retour = GetGadgetText(#String_11)
; On a mémorisé toute les informations utiles
; on ferme la fenetre et on quitte
CloseWindow(#pret_de_film)
creation_fichier()
Case #retour3
CloseWindow(#pret_de_film)
ouverture_menu()
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow
EndIf
EndProcedure
ouverture_menu()
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
oui effectivement
j'avais mal positionné la procedure comptage()
par contre, je me suis permis de mettre juste en dessous de
car sinon il m'additionner a chaque fois le nombre de films
9,18,27, etc...
en tout cas merci beaucoup
j'avais mal positionné la procedure comptage()
par contre, je me suis permis de mettre juste en dessous de
Code : Tout sélectionner
If ExamineDirectory(n, Dossier, "*.txt"); on examine le dossier
nb=0
9,18,27, etc...
en tout cas merci beaucoup