Modification d'un .txt et utilisation concrete ...

Résolu
DragoonMaster Messages postés 60 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 16 mars 2009 - 21 déc. 2005 à 10:08
DragoonMaster Messages postés 60 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 16 mars 2009 - 23 déc. 2005 à 20:02
Je m'explique, J'ai un code qui me lis via socket un fichier rss sur un site et qui me le copie sur un .txt en local. et qui ensuite copie le contenue de ce point texte sur mon chan ....
Mais evidement, le point rss il y a des balises, et j'aimerais, pour un souci de clarté, les enlever, en metant par exemple des $replace et/ou des $remove, mais je ne sais pas ou les mettres dans mon code deja existant !!!

Voici mon code :

alias open_socket {
sockclose news
sockopen news grosnoob.info 80
}
on *:sockopen:news:{
if ($sockerr) { return }
else {
sockwrite -tn $sockname GET /alsagamer/forums/extern.php?action=active&type=RSS&fid=16 HTTP/1.1 $+ $crlf $+ Host: grosnoob.info $+ $crlf $+ Connection: close $+ $str($crlf, 2)
}
}
on *:sockread:news:{
var %r
sockread %r
while ($sockbr) {
tokenize 32 %r
if ($sock($sockname).mark != 1) {
if ((HTTP/1.* iswm $1) && (200 == $2)) {
write -c news.txt
}
elseif (!$1) {
if (!$sock($sockname).mark) {
sockmark $sockname 1
}
}
}
else {
write news.txt %r
}
sockread %r
}
}


alias news_say { var %i 1, %f news.txt
while (%i <= $lines(%f)) {
msg $active $read(%f, %i)
inc %i
}
}

12 réponses

Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
21 déc. 2005 à 12:08
ok ok
alias open_socket {
sockclose news
sockopen news grosnoob.info 80
}
on *:sockopen:news:{
if ($sockerr) { return }
else {
sockwrite -tn $sockname GET /alsagamer/forums/extern.php?action=active&type=RSS&fid=16 HTTP/1.1 $+ $crlf $+ Host: grosnoob.info $+ $crlf $+ Connection: close $+ $str($crlf, 2)
}
}
on *:sockread:news:{
var %r
sockread %r
while ($sockbr) {
tokenize 32 %r
if ($sock($sockname).mark != 1) {
if ((HTTP/1.* iswm $1) && (200 == $2)) {
write -c news.txt
}
elseif (!$1) {
if (!$sock($sockname).mark) {
sockmark $sockname 1
}
}
}
else {
write news.txt %r
}
sockread %r
}
}
alias news_say { var %i 1, %f news.txt
while (%i <= $lines(%f)) {
msg $active $replace($read(%f,%i),,,,,,,,)
inc %i
}
}
3
DragoonMaster Messages postés 60 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 16 mars 2009 1
21 déc. 2005 à 16:02
Si tu repond a cette derniere question :)

J'ai donc ce bout de code :
alias news_say { var %i 1, %f news.txt, %n = http://www.grosnoob.info/alsagamer/forums/viewforum.php?id=16News
while (%i <= $lines(%f)) {
msg $active $remove($replace($read(%f,%i),<title>,Titre : ,Post&eacute; le:,Date:,$chr(9),$chr(39),<link>,Lien : $chr(32) ), ,</title>,, ,
,<description>,</description>,</link>,+0100,<![CDATA[Forum:,]]>,[, ,],;action =new,%n)
inc %i
}
}

et ca me donne encore ca :

(15:57:40) (@Dr4gOoN)
(15:57:40) (@Dr4gOoN) 1e
(15:57:40) (@Dr4gOoN) Titre :La ZiLAN #2
(15:57:40) (@Dr4gOoN) 5e
(15:57:40) (@Dr4gOoN) Lien : http://www.grosnoob.info/alsagamer/forums/viewtopic.php?id=123&amp
(15:57:40) (@Dr4gOoN) 111
(15:57:40) (@Dr4gOoN)
(15:57:40) (@Dr4gOoN) Auteur: XNoll
(15:57:40) (@Dr4gOoN) Date: Fri, 05 Nov 2004 08:49:27
(15:57:40) (@Dr4gOoN) Dernier message: Thu, 16 Dec 2004 21:37:24
(15:57:40) (@Dr4gOoN)
(15:57:40) (@Dr4gOoN) 12
(15:57:40) (@Dr4gOoN) </channel>
(15:57:40) (@Dr4gOoN) </rss>
(15:57:40) (@Dr4gOoN) 0


car enfaite, les les lignes vides = $chr(9) j'aimerais les remplacé par des $chr(32) mais, si je fais ca, il ne me li pas le .txt juska la fin (surement a cause du inc %i)
comment je peux faire ??
de plus, j'ai ces numeros, et je ne sais pas d'ou il vienne (12/0/111) ds mon fichier original (sur le site) il n'y sont pas, d'ou vienne til ???
3
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
21 déc. 2005 à 11:46
Eh ben tu remove toute les balises qui existenet (même si ils ne sont pas dans le texte)
$remove($read(%f, %i),,,
,,,,size=,etc..)
0
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
21 déc. 2005 à 11:51
Enfin bref, toute ses balises servent à quelque chose donc plutot utiliser un $replace.
$replace($read(%f,%i),,,,,,,,)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DragoonMaster Messages postés 60 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 16 mars 2009 1
21 déc. 2005 à 12:07
C'est bien gentil, mais j'aimerais savoir OU je dois le mettre ds mon code ....
je ne sais pas OU le placer (si tu pouvais REPRENDRE mon code, pour l'ajouté ..)
0
DragoonMaster Messages postés 60 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 16 mars 2009 1
21 déc. 2005 à 12:18
nickel, merci bcp !
0
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
21 déc. 2005 à 12:19
derien bcp! =P
0
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
21 déc. 2005 à 12:27
Hmm j'ai envi de gagner un peu + de points moi =o) Clik sur réponse acceptée en dessous de mon code la..=p
0
Mc_AbBeR Messages postés 301 Date d'inscription mercredi 15 juin 2005 Statut Membre Dernière intervention 19 février 2007
21 déc. 2005 à 19:55
La parcontre je ne sais pas... j'ai essayer le code et plusieur possibilités...
0
DragoonMaster Messages postés 60 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 16 mars 2009 1
21 déc. 2005 à 20:34
J'ai essayer comme suit :

alias news_say { var %i 1, %j 2, %f = news.txt, %flien = http://www.grosnoob.info/alsagamer/forums/viewforum.php?id=16, %rubrique = News
var %alsa.1 = <?xml version="1.0" encoding="iso-8859-1"?>
var %alsa.2 = <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd
while %i <= $lines(%f) {
if $lines(%f) !ison $chr(9) {
msg $active $remove($replace($read(%f,%i),<title>,Titre: $chr(32),Post&eacute; le:,Date:,<link>,Lien: $chr(32),&#33;,!,$chr(9),$chr(160)), ,</title>,, ,
,<description>,</description>,</link>,+0100,<![CDATA[Forum:,]]>,[, ,],;action =new,&amp,%flien $+ %rubrique)
inc %i
}
else ($lines(%f) ison $chr(9)) {
var %i = %i + 2
msg $active $remove($replace($read(%f,%i),<title>,Titre: $chr(32),Post&eacute; le:,Date:,<link>,Lien: $chr(32),&#33;,!,$chr(9),$chr(160)), ,</title>,, ,
,<description>,</description>,</link>,+0100,<![CDATA[Forum:,]]>,[, ,],;action =new,&amp,%flien $+ %rubrique)
}
}
}

ca me donne ca :
(19:36:29) (Dr4gOoN)
(19:36:29) (Dr4gOoN) 1e
(19:36:29) (Dr4gOoN) Titre: La ZiLAN #2
(19:36:29) (Dr4gOoN) 5e
(19:36:29) (Dr4gOoN) Lien: http://www.grosnoob.info/alsagamer/forums/viewtopic.php?id=123
(19:36:29) (Dr4gOoN) 111
(19:36:29) (Dr4gOoN)
(19:36:29) (Dr4gOoN) Auteur: XNoll
(19:36:29) (Dr4gOoN) Date: Fri, 05 Nov 2004 08:49:27
(19:36:29) (Dr4gOoN) Dernier message: Thu, 16 Dec 2004 21:37:24
(19:36:29) (Dr4gOoN)
(19:36:29) (Dr4gOoN) 12
(19:36:29) (Dr4gOoN) </channel>
(19:36:29) (Dr4gOoN) </rss>
(19:36:29) (Dr4gOoN) 0

enfaite, ca remplacé le $chr(9) par une ligne vide, mais je n'arrive pas lui dire d'incrementé pour arrivé a la ligne qui suit :/
0
DragoonMaster Messages postés 60 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 16 mars 2009 1
21 déc. 2005 à 23:03
j'ai essayer de changer ca :

else ($lines(%f) ison $chr(9)) {
var %i = %i + 2
msg $active $remove($replace($read(%f,%i),<title>,Titre: $chr(32),Post&eacute; le:,Date:,<link>,Lien: $chr(32),&#33;,!,$chr(9),$chr(160)), ,</title>,, ,
,<description>,</description>,</link>,+0100,<![CDATA[Forum:,]]>,[, ,],;action =new,&amp,%flien $+ %rubrique)
}
}
}

en

else ($lines(%f) ison $chr(9)) {
inc %j
msg $active $remove($replace($read(%f, %j ),<title>,Titre: $chr(32),Post&eacute; le:,Date:,<link>,Lien: $chr(32),&#33;,!,$chr(9),$chr(160)),,</title>,,,
,<description>,</description>,</link>,+0100,<![CDATA[Forum:,]]>,[, ,],;action =new,&amp,%flien $+ %rubrique)
}
}
}

mais meme chose :(
0
DragoonMaster Messages postés 60 Date d'inscription dimanche 15 juin 2003 Statut Membre Dernière intervention 16 mars 2009 1
23 déc. 2005 à 20:02
J'ai trouvé, je les vire pas sur le read, mais sur le write, ca donne ca :

alias open_socket {
sockclose news
sockopen news grosnoob.info 80
}
on *:sockopen:news:{
if ($sockerr) { return }
else {
sockwrite -tn $sockname GET /alsagamer/forums/extern.php?action= active&type=RSS&fid=16 HTTP/1.1 $+ $crlf $+ Host: grosnoob.info $+ $crlf $+ Connection: close $+ $str($crlf, 2)
}
}
on *:sockread:news:{
var %r, %flien = http://www.grosnoob.info/alsagamer/forums/viewforum.php?id=16, %rubrique = News
sockread %r
while ($sockbr) {
tokenize 32 %r
if ($sock($sockname).mark != 1) {
if ((HTTP/1.* iswm $1) && (200 == $2)) {
write -c news.txt
}
elseif (!$1) {
if (!$sock($sockname).mark) {
sockmark $sockname 1
}
}
}
else {
write news.txt $remove($replace(%r,<title>,Titre: $chr(32),Post&eacute; le:,Date:,<link>,Lien: $chr(32),&#33;,!,$chr(9),$chr(32)), ,</title>,, ,
,<description>,</description>,</link>,+0100,<![CDATA[Forum:,]]>,[, ,],;action =new,&amp,%flien $+ %rubrique,</rss>,</channel>)
}
sockread %r
}
}


alias news_say { var %i 1, %j 2, %f = news.txt
while %i <= $lines(%f) {
msg $active $read(%f,%i)
inc %i
}
}
}

J'ai quand meme un ptit souci, quand je recupere mon fichier rss via socket, pour le copier ds mon "news.txt" il y a des chiffres qui s'ajoute, et je sais pas trop pk, et surtout, comment eviter ca ...
0
Rejoignez-nous