Fichier RESSOURCES comment faire ???

Le
LE TROLL
Bonjour,

Pouvez-vous m'expliquer avec exemple comment
on fait un fichier "ressources", enfin, comment on
le charge, le modifie, le lit, surtout ???

Je viens de le créer, désormais je voudrais,
via le code, lui envoyer les données d'un fichier
txt, puis ensuite, en exécution, lire ce fichier
ressources, comment qu'on fait, svp ???

--
Merci beaucoup, au revoir et à bientôt :o)

Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
tking
Le #15369681
LE TROLL a écrit :
Bonjour,

Pouvez-vous m'expliquer avec exemple comment
on fait un fichier "ressources", enfin, comment on
le charge, le modifie, le lit, surtout ???

Je viens de le créer, désormais je voudrais,
via le code, lui envoyer les données d'un fichier
txt, puis ensuite, en exécution, lire ce fichier
ressources, comment qu'on fait, svp ???



Salut,

*
Je réponds par rapport à ma version, soit du VB6:

Pour gérer un fichier RESssource(s), il faut aller dans le menu
Compléments, puis choisir Gestionnaire de compléments et ajouter
Éditeur de ressources VB6.

Ensuite dans le menu Outils, choisir Éditeur de ressources.

Pour le reste, tu peux lire la réponse au sujet " Fichier ressources et
icones " posté le 28/2/2008 à 11h 20 par Driss.

Bonne journée.
LE TROLL
Le #15369671
Bonjour,

Merci, mais je ne comprends rien dan ton
exemple (enfin, pas tout!), surtout que je manque
totalement de vocabulaire en ce domaine. Je vais
donc mieux m'expliquer:

J'ai un fichier texte de 80 ko (30.000 lignes
environ)

- Déjà, est-ce que la taille va passer (80ko)
?

Bon, comment charge le fichier texte dans le
fichier ressource, ceci par le code lors du
lancement de son programme ???

Tous est dans le même répertoire par défaut:
Mon fichier se nomme "astrologie3000.res"
Mon fichier texte à charger par ligne, qui
contient les phase de la lune par date sur 150 ans
(19010412D) = (AN+mois+jour+phase), se nomme :
"lune.txt".

QUESTION 1
Me mettre seulement les élément du fichier
ressource à charger, je m'occupe du fichier texte,
disons que les données arrivent ainsi:

dim i as integer (integer = je crois pour l'ID)
dim phase as string
for i = 2 to 30001 (je crois que le "1" est
réservé ?)
... charge_fichier_res(i, phase)...

Quelle est le code à copier/coller, qui
permettrait de charger le fichier ressource par le
fichier texte, comme sus-cité, ceci par le code de
l'exe lors de son lancement ???


QUESTION 2
Comment récupérer ensuite des données dans le
fichier ressource durant l'exécution de son
programme... J'ai ceci:

variableReceptriceTexte = phase = LoadResString(i)

Est-ce bon, ou faut-il déclarer le fichier
ressoure, son pointeur, etc, avant d'y accéder, un
bout de code copier/coller qui marche stp ???


QUESTION 3
Ensuite, soit effacer le code de chargement,
inhiber, soit tester si fichier ressources chargé,
comment on teste si fichier ressources est chargé,
y a-t-il une instruction spéciale ???


---fin---

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"tking" news:
| LE TROLL a écrit :
| > Bonjour,
| >
| > Pouvez-vous m'expliquer avec exemple
comment
| > on fait un fichier "ressources", enfin,
comment on
| > le charge, le modifie, le lit, surtout ???
| >
| > Je viens de le créer, désormais je
voudrais,
| > via le code, lui envoyer les données d'un
fichier
| > txt, puis ensuite, en exécution, lire ce
fichier
| > ressources, comment qu'on fait, svp ???
|
| Salut,
|
| *
| Je réponds par rapport à ma version, soit du
VB6:
|
| Pour gérer un fichier RESssource(s), il faut
aller dans le menu
| Compléments, puis choisir Gestionnaire de
compléments et ajouter
| Éditeur de ressources VB6.
|
| Ensuite dans le menu Outils, choisir Éditeur de
ressources.
|
| Pour le reste, tu peux lire la réponse au sujet
" Fichier ressources et
| icones " posté le 28/2/2008 à 11h 20 par Driss.
|
| Bonne journée.
|
|
Modeste
Le #15369661
Bonsour® LE TROLL avec ferveur ;o))) vous nous disiez :

Mon fichier texte à charger par ligne, qui
contient les phase de la lune par date sur 150 ans
(19010412D) = (AN+mois+jour+phase), se nomme :
"lune.txt".



;o)))
pourquoi ne pas calculer dynamiquement la phase à partir de la date passée en
parametre ???
voir les algorithmes de Jean Meuss
http://www.voidware.com/moon_phase.htm
--
--
@+
;o)))
LE TROLL
Le #15369651
Bonjour Modeste :o)

Ah ah ah!
Soyons modeste... pourquoi ne pas le calculer, ben
parce que je n'en suis pas capable, c'est écrit
sous une forme mathématique, et non
arithmétique...
Tu sais, moi j'ai un CAP de mécanique agricole, et
une capacité en droit, alors tu comprendras que je
manque de connaissances en math, et en anglais
d'ailleurs...

J'ai les livres de Jean Meeus et de Roger
Bouigue (lui il a mis une disquette pour le qVB).

J'ai regardé l'exemple, en C, je n'en ai fait
que durant une année, jadis...

Le mieux serait, si tu le veux, de m'écrire
(depuis mon site, hyperlien in fine ), et de me
communiquer ton email, car on ne vas pas
facilement développer ce genre de calcul dans le
forum ???

En fait, si tu pouvais me remettre ça en VB (b
= basic = que des procédures, pas de fonction), ça
résoudrait en effet mon problème :o)
Reste à voir si le calcul est bon, car je peux te
dire qu'en matière de calcul, il y en a certains
qui laissent à désirer, notamment dans les
logiciels d'astrologie, qui sont faux pour une
partie...

Ayant le fichier des position, il sera facile
de comparer... Justement, si j'avais ton email, je
pourrais te l'envoyer, un petit txt. Je l'ai
généré à l'aide de modules écrits sur disquettes,
dans le livre de Roger Bouigue, mais ce dernier
programme (écrit) comme trois cochons, et en plus,
avec des fonctions sans équivalent VB (genre mise
en mémoire pour lecture une seule fois de datas à
la suite, et rechargement par "restore").
Alors, je n'ai pas réussi à entrer exactement la
date que je voulais, donc j'ai généré en boucle
toutes les phases de 1900 à 2049, tout simplement,
puis je les ai mis en fichier txt.

-=-=-=-= examen du C -=-=-=-
J'ai fait ça:

' lune form 1
'
Option Explicit
'
Sub Form_Load()
Dim y As Integer 'an year
Dim m As Integer 'mois month
Dim d As Integer 'jour day
Dim c As Integer
Dim e As Integer
Dim jd As Double ' JJ ?
Dim b As Integer
d = 1
m = 1
y = 1900
' 0 = NL, 2 = PQ, 4 = PL, 6 = DQ
If m < 3 Then 'if (m < 3) {
y = y - 1 'y--;
m = 12 'm += 12; ???
End If
m = m + 1 '++m;
c = 365.25 * y
e = 30.6 * m
jd = c + e + d - 694039.09 ' /* jd is total days
elapsed */
jd /= 29.53'; /* divide by the moon cycle (29.53
days) */
b = jd '; /* int(jd) -> b, take integer part of
jd */
jd -= b ';/* subtract integer part to leave
fractional part of original jd */
b = jd * 8 + 0.5 '; /* scale fraction from 0-8
and round by adding 0.5 */
b = b + 7 'b = b & 7; /* 0 and 8 are the same so
turn 8 into 0 */
MsgBox b & " ", vbInformation
End Sub ' lune (return b;)

Il y a deux lignes que je ne comprends pas :

jd / = 29.53 ' ; /* divide by the moon cycle
(29.53 days) */
jd - = b ' ; /* subtract integer part to leave
fractional part of original jd */

Si tu peux me traduire ça ?

Est-ce que c'est bon pour le reste ?

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm




------------------------------------------------------------------------------------
"Modeste" message de news:
O$
| Bonsour® LE TROLL avec ferveur ;o))) vous nous
disiez :
|
| > Mon fichier texte à charger par ligne, qui
| > contient les phase de la lune par date sur 150
ans
| > (19010412D) = (AN+mois+jour+phase), se nomme :
| > "lune.txt".
|
| ;o)))
| pourquoi ne pas calculer dynamiquement la phase
à partir de la date passée en
| parametre ???
| voir les algorithmes de Jean Meuss
| http://www.voidware.com/moon_phase.htm
| --
| --
| @+
| ;o)))
|
|
tking
Le #15369601
LE TROLL a utilisé son clavier pour écrire :
Bonjour,

Merci, mais je ne comprends rien dan ton
exemple (enfin, pas tout!), surtout que je manque
totalement de vocabulaire en ce domaine. Je vais
donc mieux m'expliquer:

J'ai un fichier texte de 80 ko (30.000 lignes
environ)

- Déjà, est-ce que la taille va passer (80ko)
?



Heu non, j'ai lu 64 ko max dans la doc. Mais il est possible d'ajouter
plus RES.

.
Bon, comment charge le fichier texte dans le
fichier ressource, ceci par le code lors du
lancement de son programme ???



Non, le fichier RES est en quelque sorte integré avec le code, c'est à
toi de l'ajouter au moment de l'ecriture du programme et il devient
disponible en permanence. Tu l'ajoutes une fois pour toutes.







Dans l'exemple que j'ai donné, le contenu du la ressource est écrite
sous forme de fichier dans le répertoire de ton choix. Pour moi c'est
une façon de maintenir des élements exterieurs (fichier son, texte,
image) avec l'executable et l'accès sous forme de fichier m'etait plus
facile.

Mais il est aussi possible de lire directement dans la ressource sans
passer par l'etape ecriture sur le disque. Il doit y avoir des exemples
sur le web.

Voici ce qui est écrit dans MSDN :

copier / coller
===============
LoadResString, fonction


Charge une chaîne à partir d'un fichier de ressources (.res).

Syntaxe

LoadResString(index)

La syntaxe de la fonction LoadResString comprend les éléments suivants
:

Élément Description
index Nombre entier ou chaîne précisant l'identificateur (ID) des
données dans le fichier de ressources. La ressource dotée de
l'identificateur 1 est réservée à l'icône de l'application.


Remarques

Vous pouvez utiliser la fonction LoadResString au lieu de chaines
littérales dans votre code. Le fait de stocker les chaînes de
caractères longues dans des fichiers de ressources pour y accéder
ensuite permet de diminuer le temps de chargement car vous pouvez les
charger individuellement selon les besoins, plutôt que de les charger
tous en même temps qu'une feuille.

La fonction LoadResString est particulièrement utile pour localiser une
application Visual Basic ; en effet, les ressources qui doivent être
traduites sont isolées dans un fichier de ressources et il n'est pas
nécessaire d'accéder au code source ou de recompiler l'application.

----------------------------------------------

LoadResData, fonction


Charge des données de plusieurs types possibles à partir d'un fichier
de ressources (.res) et renvoie un tableau d'éléments de type Byte.

Syntaxe

LoadResData(index, format)

La syntaxe de la fonction LoadResData comprend les éléments suivants :

Élément Description
Index Nombre entier ou chaîne précisant l'identificateur (ID) des
données dans le fichier de ressources. La ressource dotée de
l'identificateur 1 est réservée à l'icône de l'application.
Format Valeur précisant le format d'origine des données renvoyées,
comme indiqué dans la section Valeurs. La valeur peut également être le
nom de chaîne d'une ressource définie par l'utilisateur.


Valeurs

L'élément format peut prendre les valeurs suivantes :

Valeur Description
1 Ressource curseur
2 Ressourceimage bitmap
3 Ressourceicône
4 Ressource menu
5 Boîte de dialogue
6 Ressource chaîne
7 Ressource répertoire de polices
8 Ressource police
9 Table d'accélérateur
10 Ressource définie par l'utilisateur
12 Curseur de groupe
14 Icône de groupe


Remarques

Les données chargées par la fonction LoadResData à partir du fichier de
ressources peuvent atteindre 64 Ko.

Si la fonction LoadResData est utilisée avec une ressource image
bitmap, icône ou curseur, elle renvoie une chaîne contenant lesbits
réels de la ressource. Pour utiliser l'image bitmap, l'icône ou la
ressource proprement dite, employez la fonction LoadResPicture.

La fonction LoadResData est particulièrement utile pour localiser une
application Visual Basic ; en effet, les ressources qui doivent être
traduites sont isolées dans un fichier de ressources et il n'est pas
nécessaire d'accéder au code source ou de recompiler l'application.


----------------------------------------------------------

LoadResPicture, fonction


Charge uneimage bitmap, uneicône ou un curseur à partir d'un fichier de
ressources (.res).

Syntaxe

LoadResPicture(index, format)

La syntaxe de la fonction LoadResPicture comprend les éléments suivants
:

Élément Description
Index Nombre entier ou chaîne précisant l'identificateur (ID) des
données dans le fichier de ressources. La ressource dotée de
l'identificateur 1 est réservée à l'icône de l'application.
Format Valeur ou constante précisant le format des données renvoyées,
comme indiqué dans la section Valeurs.


Valeurs

L'élément format peut prendre les valeurs suivantes :

Constante Valeur Description
VbResBitmap 0 Ressource image bitmap
VbResIcon 1 Ressource icône
VbResCursor 2 Ressource curseur


Remarques

Vous pouvez utiliser la fonction LoadResPicture au lieu de faire
référence à des graphiques stockés dans la propriété Picture d'un objet
Form ou à des contrôles.

Le fait de stocker des images bitmap, des icônes ou des curseurs dans
des fichiers de ressources pour y accéder ensuite permet de diminuer le
temps de chargement car il est ainsi possible de les charger
individuellement selon les besoins, plutôt que de les charger tous, en
même temps qu'un objet Form.

La fonction LoadResPicture est particulièrement utile pour localiser
une application Visual Basic ; en effet, les ressources qui doivent
être traduites sont isolées dans un fichier de ressources et il n'est
pas nécessaire d'accéder au code source ou de recompiler l'application.


------------------------------------------------------------------
LE TROLL
Le #15369591
Modeste :o)

Voici le calcul en VB, pour moi il ne
fonctionne pas, produisant toujours 7.5, peut être
une erreur, par rapport à la source:

http://www.voidware.com/moon_phase.htm

Si tu vois une erreur...
Mais je suis étonné, normalement il faut 4 pages
pour écrire le calcul, et là, en à peine une page
il ferait pareil, hum...
Comme je le disais, une grande partie des calculs
compliqués sur internet sont faux, bon, là, il a
le bénéfice du doute, à voir, qu'en penses-tu ?
'-------------------code
' lune form 1
Option Explicit
Sub Form_Activate() ' + text1
Dim an As Integer
Dim mois As Byte
Dim jour As Byte
Dim c As Double
Dim e As Double
Dim JJ As Double
Dim phaseLune As Double
jour = 21
mois = 3
an = 2008 ' PL = 4
If mois < 3 Then
an = an - 1
mois = 12
End If
mois = mois + 1
c = 365.25 * an
e = 30.6 * mois
JJ = c + e + jour - 694039.09
JJ = JJ / 29.53
phaseLune = JJ
JJ = JJ - phaseLune
phaseLune = JJ * 8 + 0.5
phaseLune = phaseLune + 7 ' 0 = NL, 2 = PQ, 4 =
PL, 6 = DQ
Text1 = ""
Select Case phaseLune
Case 0: Text1 = "NL"
Case 2: Text1 = "PQ"
Case 4: Text1 = "PL"
Case 6: Text1 = "DQ"
End Select
Text1 = Text1 & " " & phaseLune
End Sub

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Modeste" message de news:
O$
| Bonsour® LE TROLL avec ferveur ;o))) vous nous
disiez :
|
| > Mon fichier texte à charger par ligne, qui
| > contient les phase de la lune par date sur 150
ans
| > (19010412D) = (AN+mois+jour+phase), se nomme :
| > "lune.txt".
|
| ;o)))
| pourquoi ne pas calculer dynamiquement la phase
à partir de la date passée en
| parametre ???
| voir les algorithmes de Jean Meuss
| http://www.voidware.com/moon_phase.htm
| --
| --
| @+
| ;o)))
|
|
LE TROLL
Le #15369581
Merci, je vais voir, je suis aussi sur le calcul,
si je trouve quelqu'un qui veut me le mettre en
VB, ca je n'y comprends rien...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"tking" news:
| LE TROLL a utilisé son clavier pour écrire :
| > Bonjour,
| >
| > Merci, mais je ne comprends rien dan ton
| > exemple (enfin, pas tout!), surtout que je
manque
| > totalement de vocabulaire en ce domaine. Je
vais
| > donc mieux m'expliquer:
| >
| > J'ai un fichier texte de 80 ko (30.000
lignes
| > environ)
| >
| > - Déjà, est-ce que la taille va passer
(80ko)
| > ?
|
| Heu non, j'ai lu 64 ko max dans la doc. Mais il
est possible d'ajouter
| plus RES.
|
| .
| > Bon, comment charge le fichier texte dans
le
| > fichier ressource, ceci par le code lors du
| > lancement de son programme ???
|
| Non, le fichier RES est en quelque sorte integré
avec le code, c'est à
| toi de l'ajouter au moment de l'ecriture du
programme et il devient
| disponible en permanence. Tu l'ajoutes une fois
pour toutes.
|
| >
|
|
|
| Dans l'exemple que j'ai donné, le contenu du la
ressource est écrite
| sous forme de fichier dans le répertoire de ton
choix. Pour moi c'est
| une façon de maintenir des élements exterieurs
(fichier son, texte,
| image) avec l'executable et l'accès sous forme
de fichier m'etait plus
| facile.
|
| Mais il est aussi possible de lire directement
dans la ressource sans
| passer par l'etape ecriture sur le disque. Il
doit y avoir des exemples
| sur le web.
|
| Voici ce qui est écrit dans MSDN :
|
| copier / coller
| =============== |
| LoadResString, fonction
|
|
| Charge une chaîne à partir d'un fichier de
ressources (.res).
|
| Syntaxe
|
| LoadResString(index)
|
| La syntaxe de la fonction LoadResString comprend
les éléments suivants
| :
|
| Élément Description
| index Nombre entier ou chaîne précisant
l'identificateur (ID) des
| données dans le fichier de ressources. La
ressource dotée de
| l'identificateur 1 est réservée à l'icône de
l'application.
|
|
| Remarques
|
| Vous pouvez utiliser la fonction LoadResString
au lieu de chaines
| littérales dans votre code. Le fait de stocker
les chaînes de
| caractères longues dans des fichiers de
ressources pour y accéder
| ensuite permet de diminuer le temps de
chargement car vous pouvez les
| charger individuellement selon les besoins,
plutôt que de les charger
| tous en même temps qu'une feuille.
|
| La fonction LoadResString est particulièrement
utile pour localiser une
| application Visual Basic ; en effet, les
ressources qui doivent être
| traduites sont isolées dans un fichier de
ressources et il n'est pas
| nécessaire d'accéder au code source ou de
recompiler l'application.
|
| ----------------------------------------------
|
| LoadResData, fonction
|
|
| Charge des données de plusieurs types possibles
à partir d'un fichier
| de ressources (.res) et renvoie un tableau
d'éléments de type Byte.
|
| Syntaxe
|
| LoadResData(index, format)
|
| La syntaxe de la fonction LoadResData comprend
les éléments suivants :
|
| Élément Description
| Index Nombre entier ou chaîne précisant
l'identificateur (ID) des
| données dans le fichier de ressources. La
ressource dotée de
| l'identificateur 1 est réservée à l'icône de
l'application.
| Format Valeur précisant le format d'origine des
données renvoyées,
| comme indiqué dans la section Valeurs. La valeur
peut également être le
| nom de chaîne d'une ressource définie par
l'utilisateur.
|
|
| Valeurs
|
| L'élément format peut prendre les valeurs
suivantes :
|
| Valeur Description
| 1 Ressource curseur
| 2 Ressourceimage bitmap
| 3 Ressourceicône
| 4 Ressource menu
| 5 Boîte de dialogue
| 6 Ressource chaîne
| 7 Ressource répertoire de polices
| 8 Ressource police
| 9 Table d'accélérateur
| 10 Ressource définie par l'utilisateur
| 12 Curseur de groupe
| 14 Icône de groupe
|
|
| Remarques
|
| Les données chargées par la fonction LoadResData
à partir du fichier de
| ressources peuvent atteindre 64 Ko.
|
| Si la fonction LoadResData est utilisée avec une
ressource image
| bitmap, icône ou curseur, elle renvoie une
chaîne contenant lesbits
| réels de la ressource. Pour utiliser l'image
bitmap, l'icône ou la
| ressource proprement dite, employez la fonction
LoadResPicture.
|
| La fonction LoadResData est particulièrement
utile pour localiser une
| application Visual Basic ; en effet, les
ressources qui doivent être
| traduites sont isolées dans un fichier de
ressources et il n'est pas
| nécessaire d'accéder au code source ou de
recompiler l'application.
|
|
| ----------------------------------------------------------
|
| LoadResPicture, fonction
|
|
| Charge uneimage bitmap, uneicône ou un curseur à
partir d'un fichier de
| ressources (.res).
|
| Syntaxe
|
| LoadResPicture(index, format)
|
| La syntaxe de la fonction LoadResPicture
comprend les éléments suivants
| :
|
| Élément Description
| Index Nombre entier ou chaîne précisant
l'identificateur (ID) des
| données dans le fichier de ressources. La
ressource dotée de
| l'identificateur 1 est réservée à l'icône de
l'application.
| Format Valeur ou constante précisant le format
des données renvoyées,
| comme indiqué dans la section Valeurs.
|
|
| Valeurs
|
| L'élément format peut prendre les valeurs
suivantes :
|
| Constante Valeur Description
| VbResBitmap 0 Ressource image bitmap
| VbResIcon 1 Ressource icône
| VbResCursor 2 Ressource curseur
|
|
| Remarques
|
| Vous pouvez utiliser la fonction LoadResPicture
au lieu de faire
| référence à des graphiques stockés dans la
propriété Picture d'un objet
| Form ou à des contrôles.
|
| Le fait de stocker des images bitmap, des icônes
ou des curseurs dans
| des fichiers de ressources pour y accéder
ensuite permet de diminuer le
| temps de chargement car il est ainsi possible de
les charger
| individuellement selon les besoins, plutôt que
de les charger tous, en
| même temps qu'un objet Form.
|
| La fonction LoadResPicture est particulièrement
utile pour localiser
| une application Visual Basic ; en effet, les
ressources qui doivent
| être traduites sont isolées dans un fichier de
ressources et il n'est
| pas nécessaire d'accéder au code source ou de
recompiler l'application.
|
|
| ------------------------------------------------------------------
|
|
Kiriasse
Le #15369571
Le fichier de ressources MonAppli.res est le résultat de la compilation d'un
fichier texte MonAppli.rc (que l'on crée facilement avec le bloc-notes) avec
RC.exe.
La syntaxe du fichier RC est simple (faire une recherche dans Google).
Pour ma part, je procède comme suit.
Je mets dans un même répertoire les fichiers :
- MonAppli.rc
- Tous les fichiers WAV, MP3, GIF, JPG, TXT, etc. que je veux inclure dans
mon fichier .RES (et qui sont indiqués dans le fichier .RC)
- RC.EXE (ou plus exactement un raccourci de RC.EXE avec l'indication du
répertoire)
- RC.HLP
- RCDLL.DLL
J'active RC.EXE et j'obtiens immédiatement MonAppli.Res dans le même
répertoire.
J'intègre ce fichier de ressources à mon projet VB6.
Pour l'utilisation par l'application VB6 des fichiers compilés dans le
fichier de ressources, on trouve des exemples un peu partout sur Internet.

Kiriasse
Répondant à

== "LE TROLL"
Pouvez-vous m'expliquer avec exemple comment on fait un fichier
"ressources", enfin, comment on
le charge, le modifie, le lit, surtout ???
Jacques93
Le #15369491
Bonjour LE TROLL,
LE TROLL a écrit :
Modeste :o)

Voici le calcul en VB, pour moi il ne
fonctionne pas, produisant toujours 7.5, peut être
une erreur, par rapport à la source:

http://www.voidware.com/moon_phase.htm

Si tu vois une erreur...
Mais je suis étonné, normalement il faut 4 pages
pour écrire le calcul, et là, en à peine une page
il ferait pareil, hum...
Comme je le disais, une grande partie des calculs
compliqués sur internet sont faux, bon, là, il a
le bénéfice du doute, à voir, qu'en penses-tu ?
'-------------------code
' lune form 1
Option Explicit
Sub Form_Activate() ' + text1
Dim an As Integer
Dim mois As Byte
Dim jour As Byte
Dim c As Double
Dim e As Double
Dim JJ As Double
Dim phaseLune As Double
jour = 21
mois = 3
an = 2008 ' PL = 4
If mois < 3 Then
an = an - 1
mois = 12
End If
mois = mois + 1
c = 365.25 * an
e = 30.6 * mois
JJ = c + e + jour - 694039.09
JJ = JJ / 29.53
phaseLune = JJ
JJ = JJ - phaseLune
phaseLune = JJ * 8 + 0.5
phaseLune = phaseLune + 7 ' 0 = NL, 2 = PQ, 4 =
PL, 6 = DQ
Text1 = ""
Select Case phaseLune
Case 0: Text1 = "NL"
Case 2: Text1 = "PQ"
Case 4: Text1 = "PL"
Case 6: Text1 = "DQ"
End Select
Text1 = Text1 & " " & phaseLune
End Sub




Je ne garanti pas la validité de l'algorithme donné sur le site, mais
pour la conversion de C vers VB, essaie :

Private Sub Form_Activate()
Dim an As Integer
Dim mois As Byte
Dim jour As Byte

Dim c As Long
Dim e As Long
Dim JJ As Double
Dim phaseLune As Long

jour = 21
mois = 3
an = 2008 ' PL = 4

If mois < 3 Then
an = an - 1
mois = mois + 12
End If
mois = mois + 1
c = 365.25 * an
e = 30.6 * mois
JJ = c + e + jour - 694039.09
JJ = JJ / 29.53
phaseLune = Int(JJ)
JJ = JJ - phaseLune
phaseLune = Round(JJ * 8)
phaseLune = phaseLune And 7 ' 0 = NL, 2 = PQ, 4 =PL , 6 = DQ
Text1 = ""
Select Case phaseLune
Case 0: Text1 = "NL"
Case 2: Text1 = "PQ"
Case 4: Text1 = "PL"
Case 6: Text1 = "DQ"
End Select
Text1 = Text1 & " " & phaseLune
End Sub

Ca donne bien PL 4 pour le 21/03/2008
--
Cordialement,

Jacques.
Patrice Henrio
Le #15369481
LE TROLL a écrit :
Modeste :o)

Voici le calcul en VB, pour moi il ne
fonctionne pas, produisant toujours 7.5, peut être
une erreur, par rapport à la source:

http://www.voidware.com/moon_phase.htm

Si tu vois une erreur...
Mais je suis étonné, normalement il faut 4 pages
pour écrire le calcul, et là, en à peine une page
il ferait pareil, hum...
Comme je le disais, une grande partie des calculs
compliqués sur internet sont faux, bon, là, il a
le bénéfice du doute, à voir, qu'en penses-tu ?
'-------------------code
' lune form 1
Option Explicit
Sub Form_Activate() ' + text1
Dim an As Integer
Dim mois As Byte
Dim jour As Byte
Dim c As Double
Dim e As Double
Dim JJ As Double
Dim phaseLune As Double
jour = 21
mois = 3
an = 2008 ' PL = 4
If mois < 3 Then
an = an - 1
mois = 12
End If
mois = mois + 1
c = 365.25 * an
e = 30.6 * mois
JJ = c + e + jour - 694039.09
JJ = JJ / 29.53
phaseLune = JJ
JJ = JJ - phaseLune
phaseLune = JJ * 8 + 0.5
phaseLune = phaseLune + 7 ' 0 = NL, 2 = PQ, 4 =
PL, 6 = DQ
Text1 = ""
Select Case phaseLune
Case 0: Text1 = "NL"
Case 2: Text1 = "PQ"
Case 4: Text1 = "PL"
Case 6: Text1 = "DQ"
End Select
Text1 = Text1 & " " & phaseLune
End Sub



Il y a un problème sur ces deux lignes
> phaseLune = JJ
> JJ = JJ - phaseLune
en effet cela revient à écrire
JJ=0

et donc phaseLune=7,5
Publicité
Poster une réponse
Anonyme