webForumDet fria alternativet

Söker lite hjälp ang. asp! Enkel nybörjarfråga troligtvis! Vore mycket tacksam!

ASP

11 svar · 421 visningar · startad av Grasklipparen

Medlem sedan apr. 200222 inlägg
Frågan#1

Detta är det som i .asp visar en lista från ett .txt-dokument, och jag undrar hur man skulle kunna få den att lista bara det sista i listan i textfilen. Som det är nu listar den allt, liksom. Hoppas ni förstår trots att det inte blev någon vidare förklaring.

Här är koden:

<%
Protest = Server.MapPath("protest.txt")
Set Obj = CreateObject("Scripting.FileSystemObject")
Set TS = Obj.OpenTextFile(Protest)

Do Until TS.AtEndOfLine

Namn = TS.ReadLine
Epost = TS.ReadLine
Protest = TS.ReadLine
%>
Namn: <%=Namn%><br>
Epost: <%=Epost%><br>
Protest: <%=Protest%><p>

<%
Loop
TS.Close
%>

Vore mycket tacksam för hjälp! Gärna snabb! :)

Medlem sedan juni 200032 967 inlägg
#2

En enkel och snabb lösning är ju att bara flytta ut utskrifterna utanför loopen. Om det är den bästa lösningen, hinner jag dock inte fundera på nu. ;)

<% 
Protest = Server.MapPath("protest.txt") 
Set Obj = CreateObject("Scripting.FileSystemObject") 
Set TS = Obj.OpenTextFile(Protest) 

Do Until TS.AtEndOfLine 

Namn = TS.ReadLine 
Epost = TS.ReadLine 
Protest = TS.ReadLine 
Loop 
TS.Close 
%> 
Namn: <%=Namn%><br> 
Epost: <%=Epost%><br> 
Protest: <%=Protest%><p>

Mvh,

Medlem sedan dec. 200012 464 inlägg
#3

Om inte filen är alltför stor så kan du göra

<% 
Protest = Server.MapPath("protest.txt") 
Set Obj = CreateObject("Scripting.FileSystemObject") 
Set TS = Obj.OpenTextFile(Protest) 

Tarr = split(ts.readall , vbcrlf)

l = ubound(tarr) - 2
Namn = tarr(l)
Epost = tarr(l+1)
Protest = tarr(l+2)
%> 
Namn: <%=Namn%><br> 
Epost: <%=Epost%><br> 
Protest: <%=Protest%><p> 

<% 
TS.Close 
%>

Annars så går det att göra så här också


<% 
Protest = Server.MapPath("protest.txt") 
Set Obj = CreateObject("Scripting.FileSystemObject") 
Set TS = Obj.OpenTextFile(Protest) 

Do Until TS.AtEndOfLine 

Namn = TS.ReadLine 
Epost = TS.ReadLine 
Protest = TS.ReadLine  
Loop 
TS.Close 
%>
Namn: <%=Namn%><br> 
Epost: <%=Epost%><br> 
Protest: <%=Protest%><p>
Medlem sedan apr. 200222 inlägg
#4

Ok, tackar!! Jäkligt schysst, nu funkar det hur finfint som helst!!

Medlem sedan apr. 200222 inlägg
#5

Finfint att ni hjälpte mig förut!! Tyvärr verkar jag ha ett nytt problem, och jag vore självklart mycket glad ifall det fanns någon som kunde hjälpa till!

Går det att begränsa så att endast ett visst antal bokstäver eller liknande kan synas visa-filen?

Vore mycket tacksam!

Förresten, lite ot, någon som kan något typ av radbrytningsscript? Ett sådant hade varit alldeles utmärkt i inskickningsformuläret!

Medlem sedan juni 200032 967 inlägg
#6

För att bara visa x antal tecken kan du använda funktionen Left().

Protest: <%=Left(Protest,30)%><p>

30 är alltså antalet tecken i begränsningen.

Ang. din andra fråga: det har tagits upp tidigare här på wF. Sök och du skall finna. Söker du och inte finner, ropa, och du får hjälp att finna. ;)

Mvh,

Medlem sedan mars 2002777 inlägg
#7
Function Brakes(txt)
txt = Replace(Trim(txt), vbCrLf, "<br>")
Brakes = txt
End Function

response.write Brakes(objRS("field"))
Medlem sedan apr. 200222 inlägg
#8

Massor med tack!! Därmot verkar jag inte klara av att få in det ändå. (:

Vore minst sagt jäkligt schysst ifall ni bara kunde hjälpa mig var det ska in någonstans.

Så här ser skicka in-filen ut:
"<%
Protest = Server.MapPath("protest.txt")

Set Obj = CreateObject("Scripting.FileSystemObject")
Set TS = Obj.OpenTextFile(Protest, 8)
TS.WriteLine Request.Form("namn")
TS.WriteLine Request.Form("epost")
TS.WriteLine Request.Form("protest")

TS.Close %>"

Var ska radbrytningsscriptet in?

Så här ser asp-filen som visar ut:
"<%
Protest = Server.MapPath("protest.txt")
Set Obj = CreateObject("Scripting.FileSystemObject")
Set TS = Obj.OpenTextFile(Protest)

Do Until TS.AtEndOfLine

Namn = TS.ReadLine
Epost = TS.ReadLine
Protest = TS.ReadLine
%>
Namn: <%=Namn%><br>
Epost: <%=Epost%><br>
Protest: <%=Protest%><p>

<%
Loop
TS.Close
%> "

Var ska jag in med det som gör att det kortas av? Alla utav de tre ska helst kortas.

Jättetack på förhand!

Medlem sedan mars 2002777 inlägg
#9

Är det protest du vill korta av?
Vilken/vilka variabel vill du ha radbrytningar på?

Själva funktionen kan du slänga in i en includefil där du samlar dina funktioner. Sedan includerar du filen längts upp på sidan.

Medlem sedan apr. 200222 inlägg
#10

Ursprungligen av LAMP Är det protest du vill korta av?
Vilken/vilka variabel vill du ha radbrytningar på?

Helst alla tre. Den två översta skulle kunna vara runt 15 och protest skulle kunna vara runt 35. Vore alldeles utmärkt!

"Själva funktionen kan du slänga in i en includefil där du samlar dina funktioner. Sedan includerar du filen längts upp på sidan. "

Dessvärre rena grekiskan för mig. :) Förlåt för att jag är finnen i arslet, men.... hur gör jag det, liksom? Stort tack ska du ha för hjälpen i varje fall!!

Medlem sedan mars 2002777 inlägg
#11

Skapa en asp-fil i samma katalog som heter functions.asp. I denna asp-fil skriver du:

<%
Function Brakes(txt)
txt = Replace(Trim(txt), vbCrLf, "<br>")
Brakes = txt
End Function
%>

Längst upp på presentationssidan där vill visa din text skriver du:

<!--#include file="functions.asp"-->

sedan:

Namn: <%= Brakes(Left(Namn, 15))%><br> 
Epost: <%= Brakes(Left(Epost, 15))%><br> 
Protest: <%= Brakes(Left(Protest, 35))%><p>

Är väl inte mycket lönt att köra radbrytningar på en text som är 15 resp. 35 tecken långt?

Medlem sedan apr. 200222 inlägg
#12

Ursprungligen av LAMP Skapa en asp-fil i samma katalog som heter functions.asp. I denna asp-fil skriver du:

<%
Function Brakes(txt)
txt = Replace(Trim(txt), vbCrLf, "<br>")
Brakes = txt
End Function
%>

Längst upp på presentationssidan där vill visa din text skriver du:

<!--#include file="functions.asp"-->

sedan:

Namn: <%= Brakes(Left(Namn, 15))%><br> 
Epost: <%= Brakes(Left(Epost, 15))%><br> 
Protest: <%= Brakes(Left(Protest, 35))%><p>

Jättetack!! Dock så verkar jag inte få det att fungera riktigt, eftersom att det är i ett inskickningsforumlär jag skulle behöva radbrytningsscriptet! Detta för att det kruppar sig ifall någon gjort en ny rad så stämmer det inte in sedan när visa.asp-filen som "kollar av" txt-filen allt sparas i!

Usch vad krångligt det där lät, hoppas verkligen jag blir förstådd! :)

Så här står det i skickain.asp-filen:

"<%
Protest = Server.MapPath("protest.txt")

Set Obj = CreateObject("Scripting.FileSystemObject")
Set TS = Obj.OpenTextFile(Protest, 8)
TS.WriteLine Request.Form("namn")
TS.WriteLine Request.Form("epost")
TS.WriteLine Request.Form("protest")

TS.Close %>
Tack för att du klagade, <%=Request.Form("namn")%>!<br>
<a href="protest.html">Klaga mer! <a href="Visa.asp">Nuvarande lista!</a>"

Möjligt är ju även förstås att radbrytningsscriptet ska ligga i själva html-filen också där man fyller i det som ska skickas in sedan i skickain.asp. Du kanske märker är jag inte så haj på såna här grejer egentligen! :e Men som sagt, det är otroligt uppskattat all hjälp jag får!

Så här ser då själva html-filen ut:

"<html>
<head>
<body vlink="#0099CC" alink="#0099CC">
<form method="POST" action="skickain.asp">
</form>
<table width="15%" border="3" bordercolor="#006699" height="451">
<tr>
<td><a href="Visa.asp">Se lista!</a>
<form method="POST" action="skickain.asp">
Namn:
<input type="text" name="namn">
<br>
E-post:
<input type="text" name="epost">
<p> Protest: <br>
<textarea rows="20" cols="40" name="protest"></textarea>
<p>
<input type="submit" value="Protestera!" name="submit">
<input type="reset" value="Radera" name="reset">
</form>
</td>
</tr>
</table>
</body>
</html> "

251 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)