Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/04/2008, 12h17   #1
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
Par défaut lire un fichier texte et comparer une chaine de caractere

Bonjour à tous, j'ai un problème, j'ai une page web sur laquelle il y a un champ dans lequel on rentre un identifiant.

je voudrais lire cet identifiant et le comparer a ceux qui sont éventuellement présent dans un fichier texte.

Cependant je débute en ASP et donc je ne sais pas comment ouvrir le fichier, lire une chaine de caractère, la comparer avec l'identifiant. Et continuer jusqu'à trouver la même chaine ou jusqu'à la fin du fichier.

merci de votre aide
letom46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 13h15   #2
Membre confirmé
 
Homme Toto Browny
Développeur informatique
Inscription : mars 2008
Messages : 198
Détails du profil
Informations personnelles :
Nom : Homme Toto Browny
Âge : 31
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Distribution

Informations forums :
Inscription : mars 2008
Messages : 198
Points : 206
Points : 206
Citation:
Envoyé par letom46 Voir le message
Bonjour à tous, j'ai un problème, j'ai une page web sur laquelle il y a un champ dans lequel on rentre un identifiant.

je voudrais lire cet identifiant et le comparer a ceux qui sont éventuellement présent dans un fichier texte.

Cependant je débute en ASP et donc je ne sais pas comment ouvrir le fichier, lire une chaine de caractère, la comparer avec l'identifiant. Et continuer jusqu'à trouver la même chaine ou jusqu'à la fin du fichier.

merci de votre aide
essai ce lien que j'ai trouvé dans "Tutoriel ASP" sur le site

http://msdn.microsoft.com/library/fr...bjectmodel.asp

Si c'est bon n'oublie pas la balise résolu
BROWNY est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 23h14   #3
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 859
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 859
Points : 5 979
Points : 5 979
Salut,

Bienvenu sur le forum.

Tu peux regarder ici aussi: http://www.w3schools.com/asp/met_readline.asp.

C'est expliqué un peu plus simplement.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 10h00   #4
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
j'ai regardé un peu les liens que vous m'avez passé, mais je galère a mort!!
En fait ce que je veut faire, la variable NUM vient d'une autre page html, elle contient un ID que je veut rechercher dans des fichiers textes:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
ouvrir le fichier qui_a_repondu.txt
TANT QUE on est pas a la fin du fichier
{
	lire une ligne
	SI la ligne contient 'NUM'
	{
		envoyer sur la page deja_repondu.php
	}
}
fermer le fichier qui_a_repondu.txt
 
declarer trouver=0
ouvrir le fichier numero_cp_up.txt
TANT QUE on est pas a la fin du fichier
{
	lire une ligne
	SI la ligne contient NUM
	{
		ouvrir qui_a_repondu.txt
		ecrire 'NUM'+retour chariot dans qui_a_repondu.txt
		fermer qui_a_repondu.txt
		envoyer sur la page questionnaireup.php
		trouver=1
	}
}
fermer le fichier numero_cp_up.txt
 
ouvrir le fichier numero_cp_corres.txt
TANT QUE on est pas a la fin du fichier
{
	lire une ligne
	SI la ligne contient 'NUM'
	{
		ouvrir qui_a_repondu.txt
		ecrire 'NUM'+retour chariot dans qui_a_repondu.txt
		fermer qui_a_repondu.txt
		envoyer sur la page questionnairecorres.php
		trouver=1
	}
}
fermer le fichier numero_cp_corres.txt
 
SI trouver !=1
{
	envoyer sur erreur.php
}
Pour le moment j'ai fait cela:
Code :
1
2
3
4
5
6
 
Set FSO = Server.CreateObject("Scripting.FileSystemObject") 
dir= Server.MapPath("chemin repertoire")
cheminfichier= dir & "\qui_a_repondu.txt"
if FSO.FileExists(cheminfichier) then
set fichier=FSO.OpenTextFile(cheminfichier,1,false)
qui ne sert qu'à ouvrir un fichier...si j'ai bien saisi

ensuite, pour les boucles while et if je sais vraiment pas comment faire
letom46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 10h11   #5
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 41
Points : 14
Points : 14
Salut,

Si tu accèdes à ta page de recherche de NUM après validation d'un formulaire où NUM est un champ de ce formulaire tu peux utiliser
Ensuite il me semble que la fonction qui cherche une chaîne de caractère dans une autre est InStr() qui est expliquée ici
jeandormesson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 10h28   #6
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
Citation:
Ensuite il me semble que la fonction qui cherche une chaîne de caractère dans une autre est InStr() qui est expliquée ici
en effet ça pourrait me servir, mais encore une fois ya un truc que je comprend pas lol
Code :
1
2
3
4
5
6
7
8
9
 
Les exemples suivants utilisent la fonction InStr pour rechercher une chaîne : 
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' Chaîne dans laquelle rechercher.
SearchChar = "P" ' Rechercher "P".
 
' Comparaison textuelle commençant à la position 4. Retourne 6.
MyPos = Instr(4, SearchString, 
SearchChar, 1)
Pourquoi cela retourne 6, ya rien d'expliqué, 6 ça veut dire que la chaine a été trouvée??
merci
letom46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 10h52   #7
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 41
Points : 14
Points : 14
En fait ça retourne 0 si la chaîne n'est as trouvée, la position de la chaîne trouvé dans le cas contraire (ici 6 car on commence à partir du 4° caractère et que le premier P suivant est à la 6° position à partir du 4° caractère)
jeandormesson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 10h56   #8
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
aaaahhh ok, donc si c'est different de 0, la chaine est trouvée ?
letom46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 11h06   #9
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 41
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 41
Points : 14
Points : 14
exactement
jeandormesson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 11h56   #10
Invité de passage
 
Inscription : janvier 2008
Messages : 7
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 7
Points : 1
Points : 1
pour le moment, j'ai fait ça, et je suppose que c'est truffé de fautes lol
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
<%
//////////////////////////////ouverture en lecture//////////////////
	Set FSO = Server.CreateObject("Scripting.FileSystemObject") 
	dir= Server.MapPath("chemin repertoire")
	cheminfichier= dir & "\qui_a_repondu.txt"
	if FSO.FileExists(cheminfichier) then
		set fichier=FSO.OpenTextFile(cheminfichier,1,false)
////////////////////////////////////////////////////////////////////
 
//////////////////////////lecture fichier///////////////////////////
	dim variable_lue,variable,var2
//lire une ligne, l'extraire, rechercher une chaine dedans
While*not*fichier.atEndOfStream =*fichier.readLine<br>		//tant qu'on est pas a la fin du fichier ?!
	Set fichier=fs.OpenTextFile(Server.MapPath("qui_a_repondu.txt"), 1) //on lit un mot?!
 
	variable=Instr(, variable_lue,NUM, 1)
	if variable=0 then 	// 0-> chaine trouvée
		var2=1
	else
	Set fichier=fs.OpenTextFile(Server.MapPath("qui_a_repondu.txt"), 1)
	end if
Wend
if var2 <> 1 then
	INPUT TYPE="HIDDEN" VALUE="erreurs/deja_repondu.php'" NAME="redirect">	//redirection vers la page déja repondu?!
//////////////////////////////////////////////////////////////////////
%>
letom46 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 21h23   #11
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 859
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 859
Points : 5 979
Points : 5 979
Et si tu essayais simplement comme ceci:
Code :
1
2
3
4
5
6
7
8
9
10
<%
dim fs, t, x
set fs = Server.CreateObject("Scripting.FileSystemObject") 
    set t = fs.OpenTextFile(Server.MapPath("chemin relatif du fichier"),1,false)
        x = t.ReadAll
        t.close
    set t = nothing
set fs = nothing
if instr(x, "NUM") then Response.Write("test")
%>
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h06.


 
 
 
 
Partenaires

Hébergement Web