Skrive til en tekstfil, men begrænse antal viste linier.

Tags:    asp

Hej!
Via en formular skal man kunne skrive noget.
Det skal lagres i en tekstfil, når man klikker på tilføj, og teksten vises så på siden.
Derefter kan der skrives igen - og denne tekst bliver nu tilføjet (gerne øverst) på siden.
Dette har jeg fundet ud af at lave således:
<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("/medlem/beskeder.txt")
Set f = fso.OpenTextFile(filespec,8)

' Skriv tekst
f.Write Request.Form("kommentar")

' Åbn filen til læsning linie for linie
Set f = fso.OpenTextFile(filespec,1)
Do While not f.AtEndOfStream
Response.write f.ReadLine & ""
Loop
f.Close
%>
<form method='post' action='/medlem/chat.asp' ><input type='hidden' name='mode' value='send'>
<table width="56%" border="0">
<tr>
<td>
<p><b>Besked:</p></b> </p>
<p align="left"><textarea cols="48" rows="3" name='kommentar'></textarea>
</p>
</td>
</tr>
<tr>
<td>
<p align="left"><input type="submit" value="Tilføj"></p>
<p align="left"> </p>
</td>
</tr>
</table>
</form>

NU er det bare sådan at ny tekst kommer til at stå nedenunder den sidst skrevne tekst - og dette i en uendelighed.

Kan man ikke få sidst skrevne tekst til at stå øverst, og så også begrænse teksten til f.eks. max 10 linier? (Altså få den til at slette fra bunden.)

Egentligt fungerer det fint nok hvis jeg sætter filespec til 2 i stedet for 8, men så vil den næste der besøger siden ikke kunne se hvad der er blevet skrevet.

Håber det er til at forstå hvordan jeg gerne vil have det, og at jeg kan få et tip om, hvad der skal til.

Hilsner fra Gitte





6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Hej Mathias - jeg har prøvet det du anbefalede.
Jeg får denne fejlmeddelse:

Microsoft VBScript runtime error '800a003e'

Input past end of file

/medlem/test.asp, line 51

Link til testside: http://www.skoliose.dk/medlem/test.asp

Hilsen Gitte

Hej!
Via en formular skal man kunne skrive noget.
Det skal lagres i en tekstfil, når man klikker på tilføj, og teksten vises så på siden.
Derefter kan der skrives igen - og denne tekst bliver nu tilføjet (gerne øverst) på siden.
Dette har jeg fundet ud af at lave således:
<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("/medlem/beskeder.txt")
Set f = fso.OpenTextFile(filespec,8)

' Skriv tekst
f.Write Request.Form("kommentar")

' Åbn filen til læsning linie for linie
Set f = fso.OpenTextFile(filespec,1)
Do While not f.AtEndOfStream
Response.write f.ReadLine & ""
Loop
f.Close
%>
<form method='post' action='/medlem/chat.asp' ><input type='hidden' name='mode' value='send'>
<table width="56%" border="0">
<tr>
<td>
<p>Besked:</p> </p>
<p align="left"><textarea cols="48" rows="3" name='kommentar'></textarea>
</p>
</td>
</tr>
<tr>
<td>
<p align="left"><input type="submit" value="Tilføj"></p>
<p align="left"> </p>
</td>
</tr>
</table>
</form>

NU er det bare sådan at ny tekst kommer til at stå nedenunder den sidst skrevne tekst - og dette i en uendelighed.

Kan man ikke få sidst skrevne tekst til at stå øverst, og så også begrænse teksten til f.eks. max 10 linier? (Altså få den til at slette fra bunden.)

Egentligt fungerer det fint nok hvis jeg sætter filespec til 2 i stedet for 8, men så vil den næste der besøger siden ikke kunne se hvad der er blevet skrevet.

Håber det er til at forstå hvordan jeg gerne vil have det, og at jeg kan få et tip om, hvad der skal til.

Hilsner fra Gitte


Prøv det her:
Fold kodeboks ind/udKode 


Hilsen Mathias

Så årøv dette her:
Fold kodeboks ind/udKode 


Hilsen Mathias



Hej Gitte

Jeg har skrevet din kode lidt om, jeg håber det virker, som du gerne vil have det til:

Fold kodeboks ind/udKode 



-----------------------------------------------------------------------------

Software is here and now but rock and roll is forever.



Hej!
Via en formular skal man kunne skrive noget.
Det skal lagres i en tekstfil, når man klikker på tilføj, og teksten vises så på siden.
Derefter kan der skrives igen - og denne tekst bliver nu tilføjet (gerne øverst) på siden.
Dette har jeg fundet ud af at lave således:
<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("/medlem/beskeder.txt")
Set f = fso.OpenTextFile(filespec,8)

' Skriv tekst
f.Write Request.Form("kommentar")

' Åbn filen til læsning linie for linie
Set f = fso.OpenTextFile(filespec,1)
Do While not f.AtEndOfStream
Response.write f.ReadLine & ""
Loop
f.Close
%>
<form method='post' action='/medlem/chat.asp' ><input type='hidden' name='mode' value='send'>
<table width="56%" border="0">
<tr>
<td>
<p>Besked:</p> </p>
<p align="left"><textarea cols="48" rows="3" name='kommentar'></textarea>
</p>
</td>
</tr>
<tr>
<td>
<p align="left"><input type="submit" value="Tilføj"></p>
<p align="left"> </p>
</td>
</tr>
</table>
</form>

NU er det bare sådan at ny tekst kommer til at stå nedenunder den sidst skrevne tekst - og dette i en uendelighed.

Kan man ikke få sidst skrevne tekst til at stå øverst, og så også begrænse teksten til f.eks. max 10 linier? (Altså få den til at slette fra bunden.)

Egentligt fungerer det fint nok hvis jeg sætter filespec til 2 i stedet for 8, men så vil den næste der besøger siden ikke kunne se hvad der er blevet skrevet.

Håber det er til at forstå hvordan jeg gerne vil have det, og at jeg kan få et tip om, hvad der skal til.

Hilsner fra Gitte


Prøv det her:
Fold kodeboks ind/udKode 


Hilsen Mathias



Hej Mathias - jeg har prøvet det du anbefalede.
Jeg får denne fejlmeddelse:

Microsoft VBScript runtime error '800a003e'

Input past end of file

/medlem/test.asp, line 51

Link til testside: http://www.skoliose.dk/medlem/test.asp

Hilsen Gitte

Hej!
Via en formular skal man kunne skrive noget.
Det skal lagres i en tekstfil, når man klikker på tilføj, og teksten vises så på siden.
Derefter kan der skrives igen - og denne tekst bliver nu tilføjet (gerne øverst) på siden.
Dette har jeg fundet ud af at lave således:
<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("/medlem/beskeder.txt")
Set f = fso.OpenTextFile(filespec,8)

' Skriv tekst
f.Write Request.Form("kommentar")

' Åbn filen til læsning linie for linie
Set f = fso.OpenTextFile(filespec,1)
Do While not f.AtEndOfStream
Response.write f.ReadLine & ""
Loop
f.Close
%>
<form method='post' action='/medlem/chat.asp' ><input type='hidden' name='mode' value='send'>
<table width="56%" border="0">
<tr>
<td>
<p>Besked:</p> </p>
<p align="left"><textarea cols="48" rows="3" name='kommentar'></textarea>
</p>
</td>
</tr>
<tr>
<td>
<p align="left"><input type="submit" value="Tilføj"></p>
<p align="left"> </p>
</td>
</tr>
</table>
</form>

NU er det bare sådan at ny tekst kommer til at stå nedenunder den sidst skrevne tekst - og dette i en uendelighed.

Kan man ikke få sidst skrevne tekst til at stå øverst, og så også begrænse teksten til f.eks. max 10 linier? (Altså få den til at slette fra bunden.)

Egentligt fungerer det fint nok hvis jeg sætter filespec til 2 i stedet for 8, men så vil den næste der besøger siden ikke kunne se hvad der er blevet skrevet.

Håber det er til at forstå hvordan jeg gerne vil have det, og at jeg kan få et tip om, hvad der skal til.

Hilsner fra Gitte


Prøv det her:
Fold kodeboks ind/udKode 


Hilsen Mathias





Hej Mathias!
Desværre, det virker heller ikke.
Den melder om fejl i denne linie:
f.Write Request.Form("kommentar") & f2.ReadAll
(jeg tror det er den linie)
Det ligger stadig på siden http://www.skoliose.dk/medlem/test.asp

Gitte


Så årøv dette her:
Fold kodeboks ind/udKode 


Hilsen Mathias
Gitte




Hej Mathias!
Desværre, det virker heller ikke.
Den melder om fejl i denne linie:
f.Write Request.Form("kommentar") & f2.ReadAll
(jeg tror det er den linie)
Det ligger stadig på siden http://www.skoliose.dk/medlem/test.asp

Gitte


Så årøv dette her:
Fold kodeboks ind/udKode 


Hilsen Mathias
Gitte

Fold kodeboks ind/udKode 



Hilsen Mathias



t