Dans le cadre d'un développement d'un serveur, j'aimerais stocké dans un fichier
texte l'ensemble des émissions et réceptions.
Pour éviter de prendre de de place sur le disque j'aimerais, que la taille du
fichier se limite à 2Mo (environ).
Pour cela, si le fichier fait plus de 2Mo, je supprime la première ligne puis
j'ajoute la nouvelle. Voici le code de ma procédure :
PROCEDURE EcritFichierTrace(sz_InfoTrace)
LOCAL
n_IdFichierTrace est un entier
n_posistion est un entier
sz_TexteFichier est une chaîne
Trace("Debut : "+HeureVersChaine(HeureSys()))
SI :mb_ModeTrace ALORS
// On limite la taille à 2 Mo
SI fTaille(:msz_CheminNomFichierTrace) > (2*1024*1024) ALORS
sz_TexteFichier = fChargeTexte(:msz_CheminNomFichierTrace)
SI sz_TexteFichier<>"" ALORS
n_posistion = Position(sz_TexteFichier,RC,DepuisDébut)
sz_TexteFichier = Milieu(sz_TexteFichier,n_posistion+2)
sz_TexteFichier += DateVersChaine (DateSys()) +" "+HeureVersChaine (HeureSys())
+ " " + sz_InfoTrace+CRLF
fSauveTexte(:msz_CheminNomFichierTrace,sz_TexteFichier)
FIN
SINON
// On écrit les informations dans un fichier Trace
n_IdFichierTrace = fOuvre (:msz_CheminNomFichierTrace,foAjout+foCréationSiInexistant)
SI n_IdFichierTrace <> -1 ALORS
fEcrit (n_IdFichierTrace,DateVersChaine (DateSys()) +" "+HeureVersChaine
(HeureSys()) + " " + sz_InfoTrace+CRLF)
fFerme (n_IdFichierTrace)
FIN
FIN
FIN
Trace("fin : "+HeureVersChaine(HeureSys()))
Le problème est que lorsque le fichier dépasse les 2Mo, le temps de traitement
est de 2 dixième de secondes (ce qui est énorme).
Avez-vous des solutions pour réaliser un fichier mouchard correcte ?
Merci par avance
--
Message monitoré par axinews : http://www.axinews.com/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Dev
fsauvetexte ?
-- Cordialement Christophe Charron
Service Développement PROLOGIQ 7 bis Rue des Aulnes 69410 Champagne au Mont d'Or
Tel : 0 437 499 107 Fax : 0 437 499 105 mailto:
"Erwan" a écrit dans le message de news:432ec5bb$0$29670$
Bonjour,
Dans le cadre d'un développement d'un serveur, j'aimerais stocké dans un
fichier
texte l'ensemble des émissions et réceptions.
Pour éviter de prendre de de place sur le disque j'aimerais, que la taille
du
fichier se limite à 2Mo (environ). Pour cela, si le fichier fait plus de 2Mo, je supprime la première ligne
puis
j'ajoute la nouvelle. Voici le code de ma procédure :
PROCEDURE EcritFichierTrace(sz_InfoTrace)
LOCAL n_IdFichierTrace est un entier n_posistion est un entier sz_TexteFichier est une chaîne Trace("Debut : "+HeureVersChaine(HeureSys())) SI :mb_ModeTrace ALORS // On limite la taille à 2 Mo SI fTaille(:msz_CheminNomFichierTrace) > (2*1024*1024) ALORS sz_TexteFichier = fChargeTexte(:msz_CheminNomFichierTrace) SI sz_TexteFichier<>"" ALORS n_posistion = Position(sz_TexteFichier,RC,DepuisDébut) sz_TexteFichier = Milieu(sz_TexteFichier,n_posistion+2) sz_TexteFichier += DateVersChaine (DateSys()) +" "+HeureVersChaine
(HeureSys())
+ " " + sz_InfoTrace+CRLF fSauveTexte(:msz_CheminNomFichierTrace,sz_TexteFichier) FIN SINON // On écrit les informations dans un fichier Trace n_IdFichierTrace = fOuvre
SI n_IdFichierTrace <> -1 ALORS fEcrit (n_IdFichierTrace,DateVersChaine (DateSys()) +" "+HeureVersChaine (HeureSys()) + " " + sz_InfoTrace+CRLF) fFerme (n_IdFichierTrace) FIN FIN FIN Trace("fin : "+HeureVersChaine(HeureSys()))
Le problème est que lorsque le fichier dépasse les 2Mo, le temps de
traitement
est de 2 dixième de secondes (ce qui est énorme). Avez-vous des solutions pour réaliser un fichier mouchard correcte ?
Merci par avance
-- Message monitoré par axinews : http://www.axinews.com/
fsauvetexte ?
--
Cordialement
Christophe Charron
Service Développement
PROLOGIQ
7 bis Rue des Aulnes
69410 Champagne au Mont d'Or
"Erwan" <erwan.allain@a3dis.com.invalid> a écrit dans le message de
news:432ec5bb$0$29670$626a14ce@news.free.fr...
Bonjour,
Dans le cadre d'un développement d'un serveur, j'aimerais stocké dans un
fichier
texte l'ensemble des émissions et réceptions.
Pour éviter de prendre de de place sur le disque j'aimerais, que la taille
du
fichier se limite à 2Mo (environ).
Pour cela, si le fichier fait plus de 2Mo, je supprime la première ligne
puis
j'ajoute la nouvelle. Voici le code de ma procédure :
PROCEDURE EcritFichierTrace(sz_InfoTrace)
LOCAL
n_IdFichierTrace est un entier
n_posistion est un entier
sz_TexteFichier est une chaîne
Trace("Debut : "+HeureVersChaine(HeureSys()))
SI :mb_ModeTrace ALORS
// On limite la taille à 2 Mo
SI fTaille(:msz_CheminNomFichierTrace) > (2*1024*1024) ALORS
sz_TexteFichier = fChargeTexte(:msz_CheminNomFichierTrace)
SI sz_TexteFichier<>"" ALORS
n_posistion = Position(sz_TexteFichier,RC,DepuisDébut)
sz_TexteFichier = Milieu(sz_TexteFichier,n_posistion+2)
sz_TexteFichier += DateVersChaine (DateSys()) +" "+HeureVersChaine
(HeureSys())
+ " " + sz_InfoTrace+CRLF
fSauveTexte(:msz_CheminNomFichierTrace,sz_TexteFichier)
FIN
SINON
// On écrit les informations dans un fichier Trace
n_IdFichierTrace = fOuvre
SI n_IdFichierTrace <> -1 ALORS
fEcrit (n_IdFichierTrace,DateVersChaine (DateSys()) +" "+HeureVersChaine
(HeureSys()) + " " + sz_InfoTrace+CRLF)
fFerme (n_IdFichierTrace)
FIN
FIN
FIN
Trace("fin : "+HeureVersChaine(HeureSys()))
Le problème est que lorsque le fichier dépasse les 2Mo, le temps de
traitement
est de 2 dixième de secondes (ce qui est énorme).
Avez-vous des solutions pour réaliser un fichier mouchard correcte ?
Merci par avance
--
Message monitoré par axinews : http://www.axinews.com/
Service Développement PROLOGIQ 7 bis Rue des Aulnes 69410 Champagne au Mont d'Or
Tel : 0 437 499 107 Fax : 0 437 499 105 mailto:
"Erwan" a écrit dans le message de news:432ec5bb$0$29670$
Bonjour,
Dans le cadre d'un développement d'un serveur, j'aimerais stocké dans un
fichier
texte l'ensemble des émissions et réceptions.
Pour éviter de prendre de de place sur le disque j'aimerais, que la taille
du
fichier se limite à 2Mo (environ). Pour cela, si le fichier fait plus de 2Mo, je supprime la première ligne
puis
j'ajoute la nouvelle. Voici le code de ma procédure :
PROCEDURE EcritFichierTrace(sz_InfoTrace)
LOCAL n_IdFichierTrace est un entier n_posistion est un entier sz_TexteFichier est une chaîne Trace("Debut : "+HeureVersChaine(HeureSys())) SI :mb_ModeTrace ALORS // On limite la taille à 2 Mo SI fTaille(:msz_CheminNomFichierTrace) > (2*1024*1024) ALORS sz_TexteFichier = fChargeTexte(:msz_CheminNomFichierTrace) SI sz_TexteFichier<>"" ALORS n_posistion = Position(sz_TexteFichier,RC,DepuisDébut) sz_TexteFichier = Milieu(sz_TexteFichier,n_posistion+2) sz_TexteFichier += DateVersChaine (DateSys()) +" "+HeureVersChaine
(HeureSys())
+ " " + sz_InfoTrace+CRLF fSauveTexte(:msz_CheminNomFichierTrace,sz_TexteFichier) FIN SINON // On écrit les informations dans un fichier Trace n_IdFichierTrace = fOuvre
SI n_IdFichierTrace <> -1 ALORS fEcrit (n_IdFichierTrace,DateVersChaine (DateSys()) +" "+HeureVersChaine (HeureSys()) + " " + sz_InfoTrace+CRLF) fFerme (n_IdFichierTrace) FIN FIN FIN Trace("fin : "+HeureVersChaine(HeureSys()))
Le problème est que lorsque le fichier dépasse les 2Mo, le temps de
traitement
est de 2 dixième de secondes (ce qui est énorme). Avez-vous des solutions pour réaliser un fichier mouchard correcte ?
Merci par avance
-- Message monitoré par axinews : http://www.axinews.com/
Erwan
A priori la solution la plus simple serait d'avoir un fichier hiostorique par jour et de supprimer les fichier de plus de 7 jours. Ce qui nous donne lme code suivant :
PROCEDURE EcritFichierTrace(sz_InfoTrace)
LOCAL n_IdFichierTrace est un entier n_posistion est un entier sz_TexteFichier est une chaîne sz_NomFichier est une chaîne sz_NomFichierASupprimer est une chaîne sz_DateFichier est une chaîne
SI :mb_ModeTrace ALORS Trace("Debut : "+HeureVersChaine(HeureSys()))
sz_NomFichier = :msz_CheminNomFichierTrace+DateSys()+".txt" SI PAS fFichierExiste(sz_NomFichier) ALORS // on supprime les fichiers précédents (historique sur 7 jours) sz_NomFichierASupprimer = fRep(:msz_CheminNomFichierTrace+"*.txt", frFichier) TANTQUE sz_NomFichierASupprimer <> "" sz_DateFichier = Gauche(Droite(sz_NomFichierASupprimer,12),8) SI DateValide(sz_DateFichier) ALORS SI DateDifférence(sz_DateFichier,DateSys()) > 7 ALORS fSupprime(sz_NomFichierASupprimer) FIN // si DateDifférence(sz_DateFichier,datesys()) > 7 ALORS FIN // si datevalide(sz_DateFichier) ALORS sz_NomFichierASupprimer = fRep("", frFichier) FIN // TANTQUE sz_NomFichierASupprimer <> "" FIN // si pas ffichierexiste(sz_NomFichier) ALORS
// On écrit les informations dans un fichier Trace n_IdFichierTrace = fOuvre (sz_NomFichier,foAjout+foCréationSiInexistant) SI n_IdFichierTrace <> -1 ALORS fEcrit (n_IdFichierTrace,DateVersChaine (DateSys()) +" "+HeureVersChaine (HeureSys()) + " " + sz_InfoTrace+CRLF) fFerme (n_IdFichierTrace) FIN
Trace("fin : "+HeureVersChaine(HeureSys())) FI
-- Message monitoré par axinews : http://www.axinews.com
A priori la solution la plus simple serait d'avoir un fichier hiostorique par
jour et de supprimer les fichier de plus de 7 jours. Ce qui nous donne lme code
suivant :
PROCEDURE EcritFichierTrace(sz_InfoTrace)
LOCAL
n_IdFichierTrace est un entier
n_posistion est un entier
sz_TexteFichier est une chaîne
sz_NomFichier est une chaîne
sz_NomFichierASupprimer est une chaîne
sz_DateFichier est une chaîne
SI :mb_ModeTrace ALORS
Trace("Debut : "+HeureVersChaine(HeureSys()))
sz_NomFichier = :msz_CheminNomFichierTrace+DateSys()+".txt"
SI PAS fFichierExiste(sz_NomFichier) ALORS
// on supprime les fichiers précédents (historique sur 7 jours)
sz_NomFichierASupprimer = fRep(:msz_CheminNomFichierTrace+"*.txt", frFichier)
TANTQUE sz_NomFichierASupprimer <> ""
sz_DateFichier = Gauche(Droite(sz_NomFichierASupprimer,12),8)
SI DateValide(sz_DateFichier) ALORS
SI DateDifférence(sz_DateFichier,DateSys()) > 7 ALORS
fSupprime(sz_NomFichierASupprimer)
FIN // si DateDifférence(sz_DateFichier,datesys()) > 7 ALORS
FIN // si datevalide(sz_DateFichier) ALORS
sz_NomFichierASupprimer = fRep("", frFichier)
FIN // TANTQUE sz_NomFichierASupprimer <> ""
FIN // si pas ffichierexiste(sz_NomFichier) ALORS
// On écrit les informations dans un fichier Trace
n_IdFichierTrace = fOuvre (sz_NomFichier,foAjout+foCréationSiInexistant)
SI n_IdFichierTrace <> -1 ALORS
fEcrit (n_IdFichierTrace,DateVersChaine (DateSys()) +" "+HeureVersChaine (HeureSys())
+ " " + sz_InfoTrace+CRLF)
fFerme (n_IdFichierTrace)
FIN
Trace("fin : "+HeureVersChaine(HeureSys()))
FI
--
Message monitoré par axinews : http://www.axinews.com
A priori la solution la plus simple serait d'avoir un fichier hiostorique par jour et de supprimer les fichier de plus de 7 jours. Ce qui nous donne lme code suivant :
PROCEDURE EcritFichierTrace(sz_InfoTrace)
LOCAL n_IdFichierTrace est un entier n_posistion est un entier sz_TexteFichier est une chaîne sz_NomFichier est une chaîne sz_NomFichierASupprimer est une chaîne sz_DateFichier est une chaîne
SI :mb_ModeTrace ALORS Trace("Debut : "+HeureVersChaine(HeureSys()))
sz_NomFichier = :msz_CheminNomFichierTrace+DateSys()+".txt" SI PAS fFichierExiste(sz_NomFichier) ALORS // on supprime les fichiers précédents (historique sur 7 jours) sz_NomFichierASupprimer = fRep(:msz_CheminNomFichierTrace+"*.txt", frFichier) TANTQUE sz_NomFichierASupprimer <> "" sz_DateFichier = Gauche(Droite(sz_NomFichierASupprimer,12),8) SI DateValide(sz_DateFichier) ALORS SI DateDifférence(sz_DateFichier,DateSys()) > 7 ALORS fSupprime(sz_NomFichierASupprimer) FIN // si DateDifférence(sz_DateFichier,datesys()) > 7 ALORS FIN // si datevalide(sz_DateFichier) ALORS sz_NomFichierASupprimer = fRep("", frFichier) FIN // TANTQUE sz_NomFichierASupprimer <> "" FIN // si pas ffichierexiste(sz_NomFichier) ALORS
// On écrit les informations dans un fichier Trace n_IdFichierTrace = fOuvre (sz_NomFichier,foAjout+foCréationSiInexistant) SI n_IdFichierTrace <> -1 ALORS fEcrit (n_IdFichierTrace,DateVersChaine (DateSys()) +" "+HeureVersChaine (HeureSys()) + " " + sz_InfoTrace+CRLF) fFerme (n_IdFichierTrace) FIN
Trace("fin : "+HeureVersChaine(HeureSys())) FI
-- Message monitoré par axinews : http://www.axinews.com