compter ligne d'un fichier texte

symbol

Membre émérite
13 Octobre 2004
536
25
Re,

Dans mon forum, y'a un scrolling et diverses indications (voir photo)



"Historique 100 derniers tirages", "Gain cumulé 100 derniers tirages", "calculé sur 100 derniers gains" sont censés afficher une popup/infos avec les 100 derniers tirages.

Il se trouve que parfois pour des raisons techniques, je dois faire un RESET du fichier contenant ces tirages (ce fichier est limité volontairement a 100 lignes max).

Du coup il serait judicieux que le vrai nombre de tirages soit affichés (et pas "100", puisque qu'on part 1 en cas de reset).

PS : Le code pour afficher ces lignes se trouve dans la zone HTML du forum.

Le fichier contenant les lignes des tirages se nomme "RESULTATSHISTORIQUE.txt"
(J'imagine que compter le nombre de lignes de ce fichier, donnera le nombre de tirages effectués)

Est-ce possible a faire ?

Merci
 
Dernière édition:

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
En shell, c'est facile de récupérer le nombre de ligne. Il te suffirait de stocker le résultat dans un autre fichier
En javascript, cela doit être réalisable (à voir).
 

symbol

Membre émérite
13 Octobre 2004
536
25
J'ai fais

Bloc de code:
wc -l /Users/xxx/Desktop/KENODATA/LOGTIRAGE.txt > /Users/xxx/Desktop/ligne.txt
ce me donne dans le fichier ligne.txt
3 /Users/xxx/Desktop/KENODATA/LOGTIRAGE.txt


ou bien

Bloc de code:
nbligne=`wc -l /Users/xxx/Desktop/KENODATA/LOGTIRAGE.txt`
echo $nbligne > /Users/xxx/Desktop/ligne.txt
qui donne la meme chose.
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
Bien joué ;)

Il y a plusieurs façon de ne plus avoir le nom du fichier. La plus simple est de passer via un "cat" et de rediriger le contenu du fichier dans la commande "wc". C'est quasi ce que tu as dans ta deuxième version.
Bloc de code:
nbligne=`cat /Users/xxx/Desktop/KENODATA/LOGTIRAGE.txt | wc -l`
echo $nbligne > /Users/xxx/Desktop/ligne.txt
 

symbol

Membre émérite
13 Octobre 2004
536
25
Je sais pas si ma demande relève de la science-fiction, mais je pose tout de meme la question. :)

Dans l'exemple de code ci-dessous (qui se trouve dans une ZONE HTML d'un forum), est-il possible de changer le nombre "100" ( <b>Gain cumulé 100 derniers tirages</b> ) par une variable qui se trouve un fichier texte (hebergé sur un serveur FTP) ?

Bloc de code:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://kenopronos.free.fr/RESULTATSTATS.txt" onclick="popupcentre(this.href, 'name', '500', '200', 'yes');return false;"><b>Gain cumulé 100 derniers tirages</b></a> <img src="http://kenopronos.free.fr/graph/iconeeuro27s.gif" height="3%" width="3%" alt="Description" title="Affiche les GAINS CUMULES des membres des 100 derniers tirages" 'location=0, toolbar=0, menuBar=0,'/>



Merci
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
En JavaScript tu peux changer le contenu d’une aone de texte. J’avais posté le code dans un autre de tes sujets. Il suffit juste de lire le fichier pour savoir quoi mettre dans ta zone
 

symbol

Membre émérite
13 Octobre 2004
536
25
Ok. je vais chercher. merci


Ca serait pas ca ?

Bloc de code:
document.getElementById('id de l'élément').innerHTML="nouveau texte"




Bloc de code:
 Permier exemple:

var fileSystem=new ActiveXObject("Scripting.FileSystemObject");
var monfichier=fileSystem.OpenTextFile("tutorielsenfolie.txt", 1 ,true);
alert(monfichier.Read(7)); // imprime: "tutorie"
monFichier.Close();

Deuxième exemple:

var fileSystem=new ActiveXObject("Scripting.FileSystemObject");
var monfichier=fileSystem.OpenTextFile("tutorielsenfolie.txt", 1 ,true);
alert(monfichier.ReadAll()); // imprime: "tutoriels en folie"
monFichier.Close();
MAJ: je laisse tomber, c'est au dessus de mes moyens. o_O
 
Dernière édition:

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
3 761
1 155
Clique sur « try it yourself » pour avoir un exemple de la fonction. A toi de voir si quelque chose de ce style te conviendrait.
 

daffyb

-Duck Warrior-
Modérateur
Club MacG
18 Octobre 2001
13 509
1 546
Angoulême
HTML:
<!DOCTYPE html>
<html>
<body onload="myFunction()">

<script>
function myFunction() {
    var x = document.getElementById("NbTir");
    x.innerHTML = "50"; /* c'est ici qu'il faut mettre ta variable */
}
</script>

<a href="http://kenopronos.free.fr/RESULTATSTATS.txt" onclick="popupcentre(this.href, 'name', '500', '200', 'yes');return false;"><b>Gain cumulé <span id="NbTir">100</span> derniers tirages</b></a> <img src="http://kenopronos.free.fr/graph/iconeeuro27s.gif" height="3%" width="3%" alt="Description" title="Affiche les GAINS CUMULES des membres des derniers tirages" 'location=0, toolbar=0, menuBar=0,'/>

</body>
</html>
Je ne sais pas si javascript peut lire un fichier hébergé sur un serveur, et je ne le pense pas.
En PHP c'est possible. Peux tu faire du PHP ?
 

symbol

Membre émérite
13 Octobre 2004
536
25
Merci de ta réponse daffyb,

Avant le code etait :
Bloc de code:
<!-- ## Affiche les GAINS CUMULES des membres des 100 derniers tirages -->
<script language="JavaScript">
function popupcentre(adresse, nomFenetre, largeur, hauteur, scroll)
  {
  var largeurEcran = (screen.width - largeur) / 2;
  var hauteurEcran = (screen.height - hauteur) / 2;
  window.open(adresse, nomFenetre, 'height=' + hauteur + ', width=' + largeur + ', top=' + hauteurEcran + ', left=' + largeurEcran + ', scrollbars=' + scroll + ', resizable')
  }
</script>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://kenopronos.free.fr/RESULTATSTATS.txt" onclick="popupcentre(this.href, 'name', '500', '200', 'yes');return false;"><b>Gain cumulé 100 derniers tirages</b></a> <img src="http://kenopronos.free.fr/graph/iconeeuro27s.gif" height="3%" width="3%" alt="Description" title="Affiche les GAINS CUMULES des membres des 100 derniers tirages" 'location=0, toolbar=0, menuBar=0,'/>
maintenant c'est (si je me suis pas trompé en placant tes lignes) :
Bloc de code:
<script>
function myFunction() {
    var x = document.getElementById("NbTir");
    x.innerHTML = "50"; /* c'est ici qu'il faut mettre ta variable */
}
</script>

<a href="http://kenopronos.free.fr/RESULTATSTATS.txt" onclick="popupcentre(this.href, 'name', '500', '200', 'yes');return false;"><b>Gain cumulé <span id="NbTir">100</span> derniers tirages</b></a> <img src="http://kenopronos.free.fr/graph/iconeeuro27s.gif" height="3%" width="3%" alt="Description" title="Affiche les GAINS CUMULES des membres des derniers tirages" 'location=0, toolbar=0, menuBar=0,'/>

et ca affiche :


Le "50" ne s'affiche pas
 

daffyb

-Duck Warrior-
Modérateur
Club MacG
18 Octobre 2001
13 509
1 546
Angoulême
HTML:
<!DOCTYPE html>

<script type="text/javascript">
<!--
var Fichier = function Fichier(fichier)
{
    if(window.XMLHttpRequest) obj = new XMLHttpRequest(); //Pour Firefox, Opera,...
    else if(window.ActiveXObject) obj = new ActiveXObject("Microsoft.XMLHTTP"); //Pour Internet Explorer
    else return(false);
    if (obj.overrideMimeType) obj.overrideMimeType("text/xml"); //Évite un bug de Safari
    obj.open("GET", fichier, false);
    obj.send(null);
    if(obj.readyState == 4) return(obj.responseText);
    else return(false);
}

function myFunction() {
    var x = document.getElementById("NbTir");
    x.innerHTML = Fichier('test.txt'); /* c'est ici qu'il faut mettre ta variable */
}
//-->
</script>

<html>

<body onload="myFunction()">

<a href="http://kenopronos.free.fr/RESULTATSTATS.txt" onclick="popupcentre(this.href, 'name', '500', '200', 'yes');return false;"><b>Gain cumulé <span id="NbTir">100</span> derniers tirages</b></a> <img src="http://kenopronos.free.fr/graph/iconeeuro27s.gif" height="3%" width="3%" alt="Description" title="Affiche les GAINS CUMULES des membres des derniers tirages" 'location=0, toolbar=0, menuBar=0,'/>

</body>
</html>
Ça fonctionne parfaitement (je viens d'essayer sur mon serveur)
 

daffyb

-Duck Warrior-
Modérateur
Club MacG
18 Octobre 2001
13 509
1 546
Angoulême
avec dans le fichier test.txt UNIQUEMENT le nombre à afficher
Bloc de code:
<body onload="myFunction()">
ce n'est pas que pour faire joli ;)
 

symbol

Membre émérite
13 Octobre 2004
536
25
Daffyb

Je vais ré-éssayer :)

De toute evidence le pb vient de moi.



MAJ :
J'ai mis le code, et ca ne fonctionne pas.

Le contenu de la ZONE HTML est constinuté de code ajouté "a la comme j'te pousse".
Je pense qu'il y a surement une balise/machin qui empeche le fonctionnement, ou c'est pas dans le bon ordre... bref, y'a un truc qui empeche.

Serait-il possible que je t'envoi le contenu de la zone HTML (fichier texte de 16 K) afin que tu y jete un oeil. ?

Si c'est possible, indique moi un mail ou autre pour te l'envoyer.

Merci
 
Dernière édition:

symbol

Membre émérite
13 Octobre 2004
536
25
...mais ca fonctionne :) , sauf l'affichage du nombre de tirage, c'est vrai :(
 
Dernière édition: