Page 1 sur 1

Pure_anniv

Publié : mar. 01/mars/2011 14:00
par Backup
j'ai voulu faire un petit prg qui previens les anniversaires
avant j'utilisais celui de Ar-s
mais celui-ci présente a mes yeux 2 défauts

1 une fois installé , on ne peut apparemment pas le retirer de liste des prg
qui se lance automatiquement dans le registre ...ou alors j'ai pas trouvé ;)
j'ai du désinstaller avec regedit ...

2 une fois que son prg a fait son travail , il reste dans le Systray ..
a mon sens , ça n'a pas d'utilité ... ;)


alors ce matin, j'ai relevé mes manches pour faire un petit prg
quel pied Purebasic .. :)

Re: Pure_anniv

Publié : mar. 01/mars/2011 15:46
par Ar-S
1 une fois installé , on ne peut apparemment pas le retirer de liste des prg
qui se lance automatiquement dans le registre ...ou alors j'ai pas trouvé ;)
j'ai du désinstaller avec regedit ...
En décochant "lancement auto" la clé est supprimée non ?

Sinon c'est sympa de partager ce petit bout de code.

Re: Pure_anniv

Publié : mar. 01/mars/2011 16:21
par Backup
Ar-S a écrit :En décochant "lancement auto" la clé est supprimée non ?
ha bah voila :) , j'avais meme pas vu :oops:
Sinon c'est sympa de partager ce petit bout de code.
c'est vraiment pas grand chose .. :)

mais ça peut permetre a certains de voir
comment avec un simple fichier texte
on pourrai aisement faire une minibase de données

j'adore la fonction Stringfield() , que je colle a toute les sauces :)

Re: Pure_anniv

Publié : mar. 01/mars/2011 17:24
par Ar-S
Dobro a écrit : mais ça peut permetre a certains de voir
comment avec un simple fichier texte
on pourrai aisement faire une minibase de données
j'adore la fonction Stringfield() , que je colle a toute les sauces :)
Moi je suis assez fan des fonctions "pref" de pb ^^ J'y ai juste ajouter ma procedure CountPrefgroup() qui lui manquait.


-----edit-----

Si la personne laisse son pc allumé une nuit parce qu'il télécharge un.... gros iso linux Image, le lendemain il risque de zapper de relancer le programme et éventuellement de louper l'anniv de son conjoint ! Pire, cela risque d'entrainer la destruction de son couple, puis de dépression en dépression, il perdra son boulot et finira par picoler et sombrer dans la folie..

Il est super dangereux ce soft ! Image

Re: Pure_anniv

Publié : mar. 01/mars/2011 17:42
par Backup
Dobro a écrit : c'est une base , vous pouvez éventuellement coder l'ajout de la prise en compte
des fêtes , de l'alerte X jours avant , etc .... :)
:mrgreen:

Re: Pure_anniv

Publié : mar. 01/mars/2011 17:55
par Ar-S
En fait j'ai sorti ma bulle parce que c'est vraiment ce qui m'a pris le choux pour LDVMR.
Le programme doit vérifier l'heure et la date en tache de fond et comparer avec sa base contacte. Si un évènement est à fêter (si le jour est un jour anniversaire), il le signale. Ensuite il doit évidement poursuivre le contrôle au cas ou l'utilisateur le laisserai tourner. (et il prend en compte la prise en charge X jours avant) :P

Re: Pure_anniv

Publié : mar. 29/mars/2011 14:46
par DarkIchigo
Dobro a écrit :...
mais ça peut permetre a certains de voir
comment avec un simple fichier texte
on pourrai aisement faire une minibase de données

j'adore la fonction Stringfield() , que je colle a toute les sauces :)
Moi je veux bien voir comment ça marche, c'est justement ce que je voudrai comprendre (je sais, je suis un peu long ^^)
le seul problème c'est que je vois pas ton code ^^ .

Si vous pouvez m'aider svp.
Merci.

Re: Pure_anniv

Publié : mar. 29/mars/2011 15:49
par Ar-S
Il veut dire :

Code : Tout sélectionner

Separateur$=","
For k=1 To 4
  Debug StringField("Paul,Bob,Toto,Bernard", k, separateur$)
Next

Re: Pure_anniv

Publié : mar. 29/mars/2011 16:19
par DarkIchigo
C'est pour ca que je demandais le code complet de son utilisation (pas forcément complet du programme)
car avec mon niveau de codage je comprend l'exemple mais ne sais pas l'utiliser pour me faire un genre de
fichier .pref (m'en fou qu'il soit lisible).

Re: Pure_anniv

Publié : mar. 29/mars/2011 22:35
par Ar-S
dans la doc tu regardes l'exemple readfile.
ça te donne en le mixant avec le miens la solution :

Imagine que ton fichier Texte.txt contienne (sans les guillemets) : "LSI,Dobro,G-ROM,Ar-S,KCC,Venom,Flaith,Djes,Ollivier,et les autres que j'ai oublié"

Code : Tout sélectionner

;Ar-S
If ReadFile(0, "Texte.txt")  ; Si le fichier peut être lu , on continue...
  ContenuTotal$=""
  While Eof(0) = 0           ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File') 
    Ligne$=ReadString(0)      ; Affiche ligne par ligne le contenu du fichier
    ContenuTotal$+Ligne$        ; Ici on englobe le contenu de chaque ligne
  Wend
  CloseFile(0)               ; Ferme le fichier précédemment ouvert
  
	Separateur$=","
  NbreDeSeparateur=CountString(ContenuTotal$,",")+1 ; tu choppes le nombres de "," et tu ajoutes 1 pour le dernier nom 
	For k=1 To NbreDeSeparateur
    Debug StringField(ContenuTotal$, k, Separateur$) 
  Next 
  
Else
  MessageRequester("Information","Impossible d'ouvrir le fichier!")
EndIf
Voilou.
J'espère que ça répondra à ton soucis.

Note aussi que les commandes Pref de PB marchent aussi très bien.
ClosePreferences
CreatePreferences
ExaminePreferenceGroups
ExaminePreferenceKeys
NextPreferenceGroup
NextPreferenceKey
OpenPreferences
PreferenceComment
PreferenceGroup
PreferenceGroupName
PreferenceKeyName
PreferenceKeyValue
ReadPreferenceDouble
ReadPreferenceFloat
ReadPreferenceInteger
ReadPreferenceLong
ReadPreferenceQuad
ReadPreferenceString
RemovePreferenceGroup
RemovePreferenceKey
WritePreferenceDouble
WritePreferenceFloat
WritePreferenceInteger
WritePreferenceLong
WritePreferenceQuad
WritePreferenceString

Re: Pure_anniv

Publié : mer. 30/mars/2011 7:26
par DarkIchigo
Merci pour ton exemple, je vais essayer de mettre en application pourvoir
si c'est le carnage ou si j'y arrive :)

Re: Pure_anniv

Publié : mer. 30/mars/2011 12:23
par DarkIchigo
Bon du coup je m'en suis sorti avec les pref, ca me parait plus simple et plus adapté a mon besoin.

Merci du coup de main !

Re: Pure_anniv

Publié : mer. 30/mars/2011 13:51
par Ar-S
Content que tu t'en sois tiré. Faut que si les commandes PB de prefs génère des codes un poil longs, elles restent simple à comprendre et font le boulot qu'on leur demande.

Voilà une procédure que j'ai créé (et qui manque aux commandes prefs)
Elle permet de renvoyer le nombre de groupes d'un fichier pref donné :

Code : Tout sélectionner

;- CountPrefGroups(nom_du_fichier_pref$)
; By Ar-S / 2009 - PB.4.xx for Windows >= XP
; Permet de renvoyer le nombre de groupes contenus dans un fichier Pref.
; Si le fichier Pref n'est pas trouvé, la valeur sera de -1

Procedure.i CountPrefGroups(file$)
  If OpenPreferences(file$)
    If ExaminePreferenceGroups()
      NumGroup=0
      While NextPreferenceGroup()
        NumGroup=NumGroup+1
      Wend
    Else
      NumGroup=0
    EndIf
    ClosePreferences() 
  Else
    NumGroup = -1
  EndIf
  ProcedureReturn NumGroup
EndProcedure

 ;EXAMPLE ---

Resultat = CountPrefGroups("testpref.txt")
Debug Resultat
Tu peux télécharger la lib complète (et l'aide/exemple) ICI

Voilou.

Re: Pure_anniv

Publié : jeu. 31/mars/2011 9:34
par DarkIchigo
Merci, je garde dans un coin, je partagerai mon code si jamais j'arrive à régler les quelques bugs :)

Mais faudra pas rigoler, c'est surement pas très bien codé par rapport à vous :)