Chris
File
Ben finalement, si: je vois!!!
Tu mets une des deux parties en commentaire, et tu utilises l'autre.
Et y a pas de IF
Chris
PS: Le "INT" n'est pas indispensable: Ca métonnerait qu'on ait une valeur après la virgule, dans ce cas précis
Code : Tout sélectionner
;Voir l'aide pour ParseDate() et FormatDate()
;/Dé-Commente une des parties ci-dessous, et commente l'autre
;- Partie 1 : Dans cette partie, HeureMaintenant > que HeureAvant
; HeureMaintenant = ParseDate("%hh:%ii:%ss","23:12:00")
; HeureAvant = ParseDate("%hh:%ii:%ss","22:57:00")
;- Partie 2 : Dans cette partie, HeureAvant > que HeureMaintenant
HeureMaintenant = ParseDate("%hh:%ii:%ss","22:57:00")
HeureAvant = ParseDate("%hh:%ii:%ss","23:12:00")
Difference.f = Int(Abs(HeureMaintenant - HeureAvant))
Diff$ = FormatDate("%hh:%ii:%ss",Difference)
Debug Diff$
Et y a pas de IF
Chris
PS: Le "INT" n'est pas indispensable: Ca métonnerait qu'on ait une valeur après la virgule, dans ce cas précis
-
jblaise.cs
- Messages : 30
- Inscription : lun. 26/avr./2004 11:30
- Localisation : V'dauban
- Contact :
wowowo
Ca ce complique :p
lol
Hmm ya un chti probleme avec les jours :
Donne "02:02:00" au lieu de "01:02:00"
lol
Hmm ya un chti probleme avec les jours :
Code : Tout sélectionner
D1$="10"
H1$="10"
M1$="00"
D2$="11"
H2$="12"
M2$="00"
HeureAvant = ParseDate("%dd:%hh:%ii",D1$+":"+H1$+":"+M1$)
HeureMaintenant = ParseDate("%dd:%hh:%ii",D2$+":"+H2$+":"+M2$)
Difference = HeureMaintenant - HeureAvant
Diff$ = FormatDate("%dd:%hh:%ii",Difference)
Debug Diff$
Dernière modification par jblaise.cs le lun. 26/avr./2004 15:11, modifié 1 fois.
Non, il n'y a rien de compliqué la dedans! 
Abs() te retourne une valeur positive, même si la valeur que tu lui donne est négative. Elle retire simplement le signe.
Par exemple, si valeur = -900, Abs(Valeur) te retournera 900.
Dans cet exemple, Différence est un nombre avec virgule (Float), parce que ABS() fonctionne mieux avec ce type de nombre.
Chris
Dans ton cas, il faut que tu donnes la date complète dans ParseDate(), parce que la fonction ne connait pas la date sur laquelle elle travaille. Tu ne lui donnes que le jour. Tu dois aussi lui donner le mois et l'année.
Ensuite, tu fais afficher les données qu tu veux voir dans FormatDate().
Bon... J'ai pas essayé, mais je suppose que c'est comme ça que ça fonctionne.
Chris
Abs() te retourne une valeur positive, même si la valeur que tu lui donne est négative. Elle retire simplement le signe.
Par exemple, si valeur = -900, Abs(Valeur) te retournera 900.
Dans cet exemple, Différence est un nombre avec virgule (Float), parce que ABS() fonctionne mieux avec ce type de nombre.
Chris
Dans ton cas, il faut que tu donnes la date complète dans ParseDate(), parce que la fonction ne connait pas la date sur laquelle elle travaille. Tu ne lui donnes que le jour. Tu dois aussi lui donner le mois et l'année.
Ensuite, tu fais afficher les données qu tu veux voir dans FormatDate().
Bon... J'ai pas essayé, mais je suppose que c'est comme ça que ça fonctionne.
Chris
-
jblaise.cs
- Messages : 30
- Inscription : lun. 26/avr./2004 11:30
- Localisation : V'dauban
- Contact :
hmm
Est ce qu on peu afficher un nombre a virgule(*.f) dans une variable(*$)
Est ce qu on peu afficher un nombre a virgule(*.f) dans une variable(*$)
Code : Tout sélectionner
A.f=150/60
Debug Str(A)
Debug AOui, en utilisant StrF()
Chris 
Code : Tout sélectionner
A.f=150/60
Debug Str(A)
Debug A
MaVariable$ = StrF(A)
Debug MaVariable$-
jblaise.cs
- Messages : 30
- Inscription : lun. 26/avr./2004 11:30
- Localisation : V'dauban
- Contact :
Voilà un bout de code qui permet de retrouver la différence entre deux dates:
Ce n'est certainement pas la seule solution, ni la meilleure, mais ça fonctionne: C'est le principal.
Si quelqu'un à mieux à proposer, qui ne fasse pas 2000 lignes de code, je suis preneur
Chris
Ce n'est certainement pas la seule solution, ni la meilleure, mais ça fonctionne: C'est le principal.
Code : Tout sélectionner
;- Pour que la fonction retrouve ses petits, tu dois lui fournir une date complète
;- sinon, elle se croit en 1970
D1$="10" ;10/04/2004 10:00
M1$="04"
Y1$="2004"
H1$="10"
Mn1$="00"
D2$="11" ;11/04/2004 12:00
M2$="04"
Y2$="2004"
H2$="12"
Mn2$="00"
;- Pour commencer, construit tes chaines à l'extérieur: C'est le plus simple
Date1$ = D1$+"/"+M1$+"/"+Y1$
Date2$ = D2$+"/"+M2$+"/"+Y2$
Heure1$ = H1$+":"+Mn1$
Heure2$ = H2$+":"+Mn2$
;- Calcule la différence de date indépendamment de celle de l'heure
DateAvant = ParseDate("%dd/%mm/%yyyy",Date1$)
DateMaintenant = ParseDate("%dd/%mm/%yyyy",Date2$)
;- La valeur retournée est en secondes : 1 Jour = 86400 secondes (60*60*24)
DiffDate = Abs(DateMaintenant-DateAvant)/86400 ; C'est la différence recherchée
;- Ensuite, calcul de la différence entre les heures
HeureAvant = ParseDate("%hh:%ii",Heure1$)
HeureMaintenant = ParseDate("%hh:%ii",Heure2$)
Difference = Abs(HeureMaintenant - HeureAvant)
Diff$ = FormatDate("%hh:%ii",Difference)
;- Affichage du résultat
Debug "Différence = "+Str(DiffDate)+" jour et "+Diff$+" heures"Chris
-
jblaise.cs
- Messages : 30
- Inscription : lun. 26/avr./2004 11:30
- Localisation : V'dauban
- Contact :
-
jblaise.cs
- Messages : 30
- Inscription : lun. 26/avr./2004 11:30
- Localisation : V'dauban
- Contact :
hehe 
J ai fini l interpretation des logs !! (sans vous
)
Une structure et tout et tout...
bon la j ataque la compilation en html.....
ale ale jpar confiant la !
J ai fini l interpretation des logs !! (sans vous
Code : Tout sélectionner
Structure Player
PLAYER_ENTER_Day.s
PLAYER_ENTER_Mon.s
PLAYER_ENTER_Yea.s
PLAYER_ENTER_Hou.s
PLAYER_ENTER_Min.s
PLAYER_LEAVE_Day.s
PLAYER_LEAVE_Mon.s
PLAYER_LEAVE_Yea.s
PLAYER_LEAVE_Hou.s
PLAYER_LEAVE_Min.s
PLAYER_NAME.s
PLAYER_FRAG.l
PLAYER_DEATH.l
PLAYER_CONN.l
PLAYER_RANK.l
EndStructure
Dim Player.Player(99)
If ReadFile(0, "Log1.log")
While Eof(0)=0
;thx to nico who have helped me for that
First$ = Trim(ReadString())
;-killed
Position = FindString(First$, Chr(34)+" killed "+Chr(34), 1)
If Position <> 0
Position2 = FindString(First$, "<", Position)
If Position2 <> 0
PLAYER_NAME$ = Mid(First$, Position+10, Position2-Position-10)
Result = FindString(PLAYER_LIST$, PLAYER_NAME$, 1)
If Result <> 0
For k=0 To 99
If Player(k)\PLAYER_NAME = PLAYER_NAME$
Player(k)\PLAYER_DEATH = Player(k)\PLAYER_DEATH + 1
EndIf
Next
Else
PLAYER_LIST$=PLAYER_LIST$+"/"+PLAYER_NAME$
PLAYER_NUMBER=PLAYER_NUMBER+1
Player(PLAYER_NUMBER)\PLAYER_NAME = PLAYER_NAME$
Player(PLAYER_NUMBER)\PLAYER_DEATH = Player(PLAYER_NUMBER)\PLAYER_DEATH + 1
EndIf
EndIf
EndIf
Position = FindString(First$, Chr(34)+" has been killed by "+Chr(34), 1)
If Position <> 0
Position2 = FindString(First$, "<", Position)
If Position2 <> 0
PLAYER_NAME$ = Mid(First$, Position+22, Position2-Position-22)
Result = FindString(PLAYER_LIST$, PLAYER_NAME$, 1)
If Result <> 0
For k=0 To 99
If Player(k)\PLAYER_NAME = PLAYER_NAME$
Player(k)\PLAYER_FRAG = Player(k)\PLAYER_FRAG + 1
EndIf
Next
Else
PLAYER_LIST$=PLAYER_LIST$+"/"+PLAYER_NAME$
PLAYER_NUMBER=PLAYER_NUMBER+1
Player(PLAYER_NUMBER)\PLAYER_NAME = PLAYER_NAME$
Player(PLAYER_NUMBER)\PLAYER_FRAG = Player(PLAYER_NUMBER)\PLAYER_FRAG + 1
EndIf
EndIf
EndIf
Wend
CloseFile(0)
Debug "Number of player : "+Str(PLAYER_NUMBER)
Debug "Players : "+PLAYER_LIST$
Debug Player(1)\PLAYER_NAME
Debug Player(1)\PLAYER_FRAG
Debug Player(1)\PLAYER_DEATH
Else
MessageRequester("PureBasic", "Error: Can't read the file", 0)
EndIf