Aide SVP

Joe La Frite Messages postés 6 Date d'inscription mercredi 30 juin 2004 Statut Membre Dernière intervention 3 juillet 2004 - 30 juin 2004 à 15:53
cs_Huitre Messages postés 290 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 29 février 2008 - 5 juil. 2004 à 00:21
Bonjour tout le monde,

Je voulai savoir comment rechercher un mot(n'importe lequel), dans un fichier .ini ?
Par Exemple: Chercher tel serveur dans tel fichier.ini

Merci D'avance.
Ciao.

8 réponses

Kerrigan Messages postés 708 Date d'inscription lundi 15 juillet 2002 Statut Membre Dernière intervention 17 mars 2005
30 juin 2004 à 20:36
pinaise c pas rien ce que tu demandes mon gars lol
alors voici une tentative

alias cherche {
;$1 mot a chercher
;$2 fichier ini
var %n = 1
while ($ini($2,%n)) { var %section $ifmatch,%i 1
while ($readini($2,n,%section,n $+ %i)) {
if ($findtok($ifmatch,$1,1,32)) {
echo -a g trouvé $1 dans $2 a la ligne n $+ %i
}
inc %i
}
inc %n
}
}

en gros c un code comme ça, de ce style la.
MAIS
tout depend de comment tu ecris dans le fichier ini
dans mon exemple, je pars du principe que dans ton fichier tu ecris sous cette forme :

[section]
n1=blabla
n2=blabla...
n3=...

mais si tu ecris d'une façon bizare comme :

[section]
salut=blabla
script=blabla...
bizare=...

il faut que stocke quelque par le nom de chaque ligne enfonction de la section, quelque part pour y avoir acces.
imaginons que tu stocke tou ça dans une variable qui s'apelle :
%contenu-section
si la section s'apelle "section"
le code deviendrait quelque chose comme ça

alias cherche {
;$1 mot a chercher
;$2 fichier ini
var %n = 1
while ($ini($2,%n)) { var %section $ifmatch,%i 1
while ($readini($2,n,%section,$gettok(%contenu- [ $+ [ %section ] ],%i,32))) {
if ($findtok($ifmatch,$1,1,32)) {
echo -a g trouvé $1 dans $2 a la ligne n $+ %i
}
inc %i
}
inc %n
}
}

on peut rendre le code plus performant en s'affranchissant des variables mais je ne te donne qu'un exemple a toi maintenant de dévélopper tout ça en fonction de ce que tu recherches.

MAIS il y a encore une possibilité, beaucoup plus simple celle la. On peut tricher en transformant le fichier ini en fichier texte. Tu peux tout aussi bien copier le fichier ini dans un texte mais bref passons directement a la partie code.

une fois que tu as fais la copie grace a $read(texte,w, **)
tu peux chercher un mot dans un fichier texte , tout depend de ce que tu veux faire.

mais je te conseille d'aller voir dans l'aide pour verifier la syntaxe

mais juste une question ... c bien de chercher un mot mais quand tu le trouve , tu fais quoi avec ?
c bien beau de te montrer des exemples mais si je ne sais pas quoi faire avec ton mot, c'est bie beau de coder :)

sur ce a la prochaine, ce sont des exemples donc si ça ne marche pas ça faudra que tu adaptes.
A la limite si tu es largué je peux tjs te faire une version commentée.

Wala
0
cs_Huitre Messages postés 290 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 29 février 2008
30 juin 2004 à 22:45
Euh, tu peu aussi faire une boucle $read du ini et chercher le mot =)

-> alias FindinIni {var %lines $lines($1) , %text $2- , %i = 1
while ( %i < %lines ) {
if ( %text isin $read($1-,%i) )
return $ifmatch
}

pour avoir le text, tu recup ds une var ou tu remplace "return $ifmatch" par le traitement que tu veux
//echo var %test = $FindinIni(mirc.ini,cequetuveux)

ps: il est tard je vais dodo alors si ca marche pas, je referais reveiller :D
0
Joe La Frite Messages postés 6 Date d'inscription mercredi 30 juin 2004 Statut Membre Dernière intervention 3 juillet 2004
1 juil. 2004 à 14:33
Mon fichier .ini sera presenter comme ça en gros:
[server]
server1= Mot de passe : mdp / Pseudo : pseudo
server2= .... etc

En faite Kerrigan quand j'ai mon mot (qui est en faite une addresse de server) je veut qu'il m'identifie a partir du pseudo correspondant au server1 avec le mot de passe du pseudo, c'est assez complexe je sais pas si tu m'as compris sinon ce n'est pas grave je me débrouillerais a partir des codes que tu m'as donné.

Pour Huitre merci ton code est déjà bien utile mais j'ai dût rajouter quelques petites choses.

Merci a vous deux.
0
Kerrigan Messages postés 708 Date d'inscription lundi 15 juillet 2002 Statut Membre Dernière intervention 17 mars 2005
1 juil. 2004 à 19:44
A la limite la méthode de Huitre est bonne, c'est très simple et ça risque moins de bugger. de surcroit c'est ce que j'ai tenté de t'expliquer a la fin comme derniere méthode. je te conseille d'adopter celle la, autant scripter simple quand ça marche :)
0

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

Posez votre question
cs_Huitre Messages postés 290 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 29 février 2008
1 juil. 2004 à 20:43
Si tu désire de l aide pour la suite , suffit de poster ;)
bonne chance pour ton script :D
0
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
3 juil. 2004 à 05:48
mdr Huitre il manque pas un "inc %i" dans ton script ?
->
alias FindinIni {
var %i $lines($1) , %text $2-
while (%i > 0) {
if (%text isin $read($1,%i)) return $ifmatch
dec %i
}

voila :D
win
0
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
3 juil. 2004 à 05:50
Oups j'ai oublié une }
->
alias FindinIni {
var %i $lines($1) , %text $2-
while (%i > 0) {
if (%text isin $read($1,%i)) return $ifmatch
dec %i
}
return Erreur
}

win
0
cs_Huitre Messages postés 290 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 29 février 2008
5 juil. 2004 à 00:21
oué mea culpa g taper c vite fait , il manque bien un inc %i sinon ca plante , mais l important c qu il é compris le principe et que ca é repondu a sa question =)
0