Soucis avec la fonction Read

Bonjour tout le monde :slight_smile:

J’ai crée un script afin de lire un fichier texte, permettant de pouvoir tester des logs.
Le soucis vient du faire que je ne suis pas sûr du tout de ce que renvoie la fonction inF.Read (et accésoirement la syntaxe de Server.MapPath(""))

Voici le script en question :


<%
'Vérification des logs dans un fichier !

'On commence par récupérer ce qui a été tapé !
login_user=Request.Form("login")
passwd_user=Request.Form("passwd")

'Et ceux qui vont accueillir les log du fichier
dim taille : taille=6
dim login : redim login(taille)
dim passwd : redim passwd(taille)
dim poubelle : redim poubelle(taille)
login=""
passwd=""

'Petite variable qui permet de sortir de la boucle quand authentifié
dim a : a=0

'On récupère le chemin absolu du fichier dans l'arborescence du serveur
Set FSO=Server.CreateObject("Scripting.FileSystemObject")
mon_fich="\log.txt"
repertoire="/admin/"
chemin_fichier=Server.MapPath(repertoire & nom_fich) 'le chemin du fichier depuis la racine

'On teste si le fichier existe ou non
if FSO.FileExists(chemin_fichier) then
'On commence le traitement
'En ouvrant le fichier
set inF=FSO.OpenTextFile(chemin_fichier, 1, false)

'On lit toutes les lignes tant qu'on a pas tout lu, ou tant que a est différent de 1
While not inF.atEndOfStream or a<>1

login=inF.Read(6) 'Les logins présent dans le fichier
poubelle=inF.Read(1) 'L'espace
passwd=inF.Read(6) 'Les password présents dans le fichier
poubelle=inF.Read(1) 'Le retour chariot

'Et on teste si c'est correct ou pas
if login_user=login and passwd_user=passwd then
rep="OK"
a=1
else 'Ca correspond pas, on met la variable rep à ERREUR, au cas où c'est le dernier tour de boucle
rep="ERREUR"
end if 'On remonte dans la boucle, et on lit la ligne suivante voir si ce coup-ci c'est bon

Wend 'On a lu tout le fichier
'On renvoi donc la variable pour le suite du traitement
Response.Write("rep="&rep)
inF.close
else 'Le fichier n'existe pas
Response.Write("Authentification impossible, veuillez contacter votre Administrateur pour plus d'informations")
end if
%>

Sachant que le fichier “log.txt” est de ce style là:

login1 passw1
login2 passw2
… ainsi de suite

De mon côté j’ai fais le même script en C que je maîtrise beaucoup mieux, et ya aucun soucis à l’exécution. J’en arrive donc à penser que j’utilise mal une/des fonction(s), pensais récupérer quelque chose alors qu’en réalité pas du tout.
Si quelqu’un pouvait m’éclairer :slight_smile:
Merci beaucoup et bonne journée

Tu es sûr de ton coup :

mon_fich="\log.txt"
repertoire="/admin/"

=>

repertoire="\admin"*

Pour le reste, moi je ne sauterai jamais le pas: du C# si vous voulez, mais certainement pas de basic :o

Bah quand tu débarques dans une entreprise, et que t’as un projet à réaliser dans un temps imparti, t’as justement pas trop le temps de faire “ha bah si je commençais par ça ça à l’air plus simple” malheureusement :frowning:
Pour ce qui est du chemin, vu qu’effectivement je n’en suis absolument pas sûr, j’ai viré les lignes en questions, et j’ai donné le chemin en dur, à savoir


chemin_fichier="http://www.monsiteweb.fr/admin/log.txt" 

Edité le 18/04/2008 à 12:17

msdn2.microsoft.com…

Je ne sais pas pour l’ASP mais quand tu ne types pas une variable en VB, c’est une Variante, essaye de typer tes vars en String puis avant de faire n’importe quelle comparaison, vérifié qu’elle n’est pas vide.