Page 1 sur 2

File

Publié : lun. 26/avr./2004 11:43
par jblaise.cs
Bonjour je vous esplique le truc :

Je veu faire un chti truc qui me generera des pages html a partir de fichier log.
Ses "logs" son editer pendans la partie sa donne ca :

L 04/25/2004 - 22:57:31: Log file started (file "c:\sierra\half-life_old_version\SvenCoop\logs\L0425004.log") (game "SvenCoop") (version "46/1.1.1.0/2056"
L 04/25/2004 - 22:57:38: "-=[RG]=- n00b (rg-team.new.fr)<1><4200901><>" connected, address "loopback"
L 04/25/2004 - 22:57:41: "-=[RG]=- n00b (rg-team.new.fr)<1><4200901><team1>" has entered the game
L 04/25/2004 - 22:58:14: "monster_human_grunt<monster><NoWonID><enemy>" has been killed by "-=[RG]=- n00b (rg-team.new.fr)<1><4200901><team1>"
L 04/25/2004 - 23:01:30: "monster_human_grunt<monster><NoWonID><enemy>" killed "-=[RG]=- n00b (rg-team.new.fr)<1><4200901><team1>" with "monster_human_grunt"
L 04/25/2004 - 23:12:20: Server shutdown
L 04/25/2004 - 23:12:20: Log file closed

Jvous ai mit toutes les lignes possible qui m interressent.
toutes les lignes commencent par L + la date + l heure
ensuite il y a linformation, ca jespere que je saurait comment faire pour lextraire....
mais c pas pour ca que je viens...:)
Ca peut vous paraitre simple desole je debute :p

Dans l exemple fourni avec purebasic "file" il y a

If ReadFile(0, "Log1.log")
First$ = Trim(ReadString())
MessageRequester("PureBasic", "Line read: "+First$, 0)
CloseFile(0)
Else
MessageRequester("PureBasic", "Error: Can't read the file", 0)
EndIf

Mais le problemes c que les fichier logs on des centaines et des milliers lignes...
Hmm vous pouriez po maidez svp?

Publié : lun. 26/avr./2004 11:56
par nico
Bienvenue dans la communauté Pure Basic, Jblaise :)

Pour lire toutes les lignes d'un fichier, il faut rajouter une boucle While/Wend comme ceci:

Code : Tout sélectionner

If ReadFile(0, "c:\texte.txt") 
  While Eof(0)=0 ; tant que eof(0) égale 0, la fin du fichier n'a pas été atteinte
    First$ = Trim(ReadString())
    ;il n'est pas recommandé de mettre un MessageBox à l'intérieur d'une boucle
    ;mais tu peux le faire pour des essais pour de très petits fichiers
    MessageRequester("PureBasic", "Line read: "+First$, 0) 
  Wend
  CloseFile(0) 
Else 
  MessageRequester("PureBasic", "Error: Can't read the file", 0) 
EndIf 

Publié : lun. 26/avr./2004 12:00
par jblaise.cs
Woooooo rapide merci... ;) a+(c sur :oops: )

Publié : lun. 26/avr./2004 12:17
par brossden
Bonjour

Tu peux essayer cela aussi !

Code : Tout sélectionner


File.s=OpenFileRequester("Choix du fichier","c:\","*.*","")
If OpenFile(1,File)
  While Eof(1)=0
    Debug ReadString()
  Wend
EndIf


Publié : lun. 26/avr./2004 12:51
par jblaise.cs
Merci denis mais ca mets les chaines dans le debuggeur...
Deja que je comprends pas trop je ne vais pas trop compliquer ^^

J ai un autre problemes :

Code : Tout sélectionner

A$="2"
B$="1"
Val(A$)-Val(B$)=C
MessageRequester("Title", Str(C))
Pourquoi ca ne marche pas ?

Publié : lun. 26/avr./2004 12:54
par jblaise.cs
Et j aime bien celui la :

Code : Tout sélectionner

A=2
B=1
A-B=C
MessageRequester("Title", Str(C))
2-1=0 :)

Publié : lun. 26/avr./2004 12:57
par jblaise.cs
lool dsl je me suis tromper jai inverser le egal :oops:

Publié : lun. 26/avr./2004 13:21
par jblaise.cs
hmm sans vouloir etre reloud
Est ce qu il y orait une comande pour soustraire des Minutes heure...
Par ce que 22:57 - 23:12 ca fait 1:-45...

Publié : lun. 26/avr./2004 13:41
par Chris
Salut :)

Code : Tout sélectionner

;Voir l'aide pour ParseDate() et FormatDate()

HeureMaintenant = ParseDate("%hh:%ii:%ss","23:12:00")
HeureAvant = ParseDate("%hh:%ii:%ss","22:57:00")

Difference = HeureMaintenant - HeureAvant

Diff$ = FormatDate("%hh:%ii:%ss",Difference)
Debug Diff$
Chris :)

Publié : lun. 26/avr./2004 13:48
par jblaise.cs
Merci encore a tt le monde :D
ke ca va vite sur ce forum c halcinant sur les otres c deux / trois heures...la 5/20 min
BRAVO!

Publié : lun. 26/avr./2004 14:02
par LavaLava
Si j'ai bien compris, tu veux connaitre le temps entre 2 heures ...
Alors essaye ça :

Code : Tout sélectionner

Heure1=22
Minute1=57
Heure2=23
Minute2=12

Diff = (Heure1*60 + Minute1) - (Heure2*60 + Minute2)

Heure = ( Diff ) / 60
Minute = Diff - Heure * 60

Debug Str(Heure) + ":" + Str(Minute)
Si tu ne veux pas que Heure et Minute soit négatif, utilise la fonction Abs(Heure) et Abs(Minute).

J'ai utilisé Debug car je crois que tu n'a pas lieu d'avoir peur de l'utiliser. L'utilisation de la commande Debug sert simplement à afficher dans une fenêtre des données (tel que le fait le MessageRequester). Tu n'est pas obligé d'utiliser les boutons 'Stop', 'Step',...
Essaye tu verras que c'est plus pratique et plus facile de Debugger ainsi !

Publié : lun. 26/avr./2004 14:10
par jblaise.cs
Haa oué je ny avait pas penser. C est vrai que j utilise que des messagerequester pour voir si sa marche bien...
ok cimer
Vi c est ca le temp entre deux heure
jvai prendre celui de LavaLava il est plus pratique pour mon code...

Hmm

Publié : lun. 26/avr./2004 14:13
par jblaise.cs
Je sai que ca a un peu rien a voir mais je voulais savoir qu elle diplome faut avoir pour etre programmeur(on ma di ke maintenant on disait analyste...)

Publié : lun. 26/avr./2004 14:21
par LavaLava
@Chris
Personellemnent ta solution me plait plus mais si la différence entre HeureAvant et HeureMaintenant est négative (22H57 - 23H12) cela ne marche pas !
As tu une solution ? Cela m'interesse car j'avais commencé comme toi mais j'ai abandonné suite à ça !

@Jblaise
A ma connaissance il existe des BTS Analyste programmeur, des DUT Genie Informatique,... Il faut que tu aille dans un CIO (Centre d'Information et d'Orientation) d'un lycée (si tu est lycéen !).

Publié : lun. 26/avr./2004 14:29
par LavaLava
@Crhis
J'ai oublié de te dire, une solution, sans test style If HeureMaintenant > HeureAvant ...