Newsgroup: it.comp.www.asp
Titolo: problema coi numeri in successione

allora.io
 ho creato una pagina asp che prende dei valori da un documento txt
e li trasferisce in una tabella
per farvi capire meglio cosa intendo andate qui
http://www.logosoft.it/titus/vari/esercizi/amici.asp
nel documento txt c'č scritto questo:
PaoloŁhttp://go.to/borghyŁfurbo
GigioŁ#Łmeno furbo
DanieleŁ#Łmeno furbo ancora...
e nella pagina asp il codice č
<%@ LANGUAGE=JScript %>
<html>
<head><title>lista amici</title>
<STYLE>
a{color:aqua ; text-decoration:none}
a:hover{color:yellow ; test-decoration:underline}
</STYLE>
</head>
<body background="
http://www.logosoft.it/titus/sfondofigo.gif
" link="aqua"
alink="aqua" vlink="aqua" text="aqua">
<%
var crea = new ActiveXObject("Scripting.FileSystemObject");
file://apro il file
var stream = crea.OpenTextFile(Server.MapPath("amici.txt"));
%>
<table border="1" bordercolor="8A2BE2" cellspacing="0" cellpadding="2">
<tr>
<td>NUMERO</TD>
<td>NICKNAME</TD>
<TD>HOMEPAGE</TD>
<TD>CARATTERISTICHE</TD></TR>
<%
while (!stream.AtEndOfStream) {
sing = stream.Readline();
arr = sing.split("Ł");
var i = 0;
for(i=0;i<arr.length;i++){
%>
<tr>
<td><%=i++%></td>
<td><%=arr[0]%></td>
<td><a href="<%=arr[1]%>" target="_blank"><%=arr[1]%></td>
<td><%=arr[2]%>
</tr>
<%
}}
%>
</table>
<%
stream.Close();
%>
</body>
</html>
ora....come si fa a fare in modo che dal primo nome venga 1,dal secondo 2 e
via dicendo?
io ho provato mettendo un for(i=o;i<arr.length;i++){ }
perň mi fa un casino....
spero che qualcuno lo sappia risolvere,mi farebbe un grande piacere...
Titus
www.logosoft.it/titus

però mi fa un casino....
Hai incrementato due volta "i". La prima volta ne ciclo for e la
seconda volta nel codice. Non sara' questo che ti fa' casino ?
Davide

ho anche provato a mettere <%=i%>
però mi dà fa una cosa del genere
0 paolo ........
1 paolo .......
2 paolo .......
0 gigio
1 gigio
2 gigio
0 daniele
1 daniele
2 daniele
e ciò è ancora peggio...
spero che qualcuno riesca a risolvere sto dannato problema
grazie


ho anche provato a mettere <%=i%>
Hnnn... momento... quello che vuoi fare tu e' avere un progressivo
per ogni riga ?
0 paolo ........
1 gigio
2 daniele
...
In questo caso dovrai modificare il tuo codice:
<table>
<tr>
<td>NUMERO</TD>
<td>NICKNAME</TD>
<TD>HOMEPAGE</TD>
<TD>CARATTERISTICHE</TD></TR>
<%
	var crea = new ActiveXObject("Scripting.FileSystemObject");
	var stream = crea.OpenTextFile(Server.MapPath("amici.txt"));
	var i = 0;
	while (!stream.AtEndOfStream)
	{
		// reperisco l'elemento
		sing = stream.Readline();
		arr = sing.split("£");
%>
		<tr>
		<td><%=i%></td>
		<td><%=arr[0]%></td>
		<td><a href="<%=arr[1]%>" target="_blank"><%=arr[1]%></td>
		<td><%=arr[2]%>
		</tr>
<%
		// incremento il contatore di riga
		i++;
		// prossima riga
	}
%>
</table>
Spiegazione: la variabile "i" e' usata per numerare le singole
righe. Il ciclo for e' stato eliminato perche' assolutamente
inutile.
Ho messo l'incremento fuori dalla visualizzazione solo per
maggiore chiarezza.
Davide

Io, fossi in te, toglierei completamente quel for()!!
Da quanto ho capito, e' del tutto inutile!!
C'e' gia' il while! Il tuo arr[ ]  contiene gli elementi di una singola
riga, per cui i dati relativi ad un unico "amico".
Lascia i++ e togli tutto il for (non il suo contenuto ovviamente!)
Insomma, cosi':
<%
var i = 0;
while (!stream.AtEndOfStream) {
sing = stream.Readline();
arr = sing.split("£");
%>
<tr>
<td><%=i++%></td>
<td><%=arr[0]%></td>
<td><a href="<%=arr[1]%>" target="_blank"><%=arr[1]%></td>
<td><%=arr[2]%>
</tr>
<%
}
%>
ciaociao

 %>
ma dà come risultato
0 paolo ....
0 gigio ......
0 daniele ....
allora ho provato il metodo di Daniele,ma mi ha dato lo stesso risultato di
quello usato prima di Francesca....
non credo sia irrealizzabile...
però non vorrei arrivare a dover mettere nel file txt il numero vicino ad
ogni nome
speriamo in tanti di riuscire a risolverlo...
anche perchè sembra tanto semplice,ma non lo è...
Titus(attendo risposte)