Avatar billede do Nybegynder
04. oktober 2001 - 11:38 Der er 23 kommentarer og
1 løsning

?????

Hvordan får jeg et script til at læse de 10 nyeste linjer i en text fil ?
Avatar billede tmceu Praktikant
04. oktober 2001 - 11:39 #1
De 10 første, 10 sidste eller de 10 \"nyeste\" i filen. Hvis sidstnævnte, hvad er så definationen på \"nyeste\" ?
Avatar billede do Nybegynder
04. oktober 2001 - 11:42 #2
Jeg ved ikke om de nyeste er øverste eller nederst..

Jeg er igang med at lave en chat hvor at det man skriver ryger ind i en text fil og når så der er 10 linjer så skal den overskrive den ældste.
Avatar billede nordclc Nybegynder
04. oktober 2001 - 11:52 #3
Hvis du ikke har index på tabellen, så kan du gøre således:

select top 10 * from tabel

//Claus
Avatar billede nordclc Nybegynder
04. oktober 2001 - 11:53 #4
Ups, hvis det er en tekstfil, så skal vi vide om du tilføjer i toppen eller bunden af filen?

//Claus
Avatar billede do Nybegynder
04. oktober 2001 - 11:53 #5
Tabellen ? Det er ikke en database..
Avatar billede do Nybegynder
04. oktober 2001 - 11:54 #6
Bunden... Men den skal overskrive de existrende linjer når der er over 10..
Avatar billede nordclc Nybegynder
04. oktober 2001 - 11:56 #7
Ahhh, så nu spøger du om både at læse og skrive ;o)
Avatar billede do Nybegynder
04. oktober 2001 - 11:57 #8
Jaja.... Så får du lige 100 point hvis du svarer..
Avatar billede nordclc Nybegynder
04. oktober 2001 - 11:59 #9
Jeg skal lige til frokost, men jeg kigger på det når jeg kommer tilbage, hvis andre altså ikke har svaret inden da ;o)

//Claus
Avatar billede Søren Bech Morsing Praktikant
04. oktober 2001 - 12:00 #10
Hvorfor ikke brugen en database?

Det lyder for mig lidt dumt at slette linier permanent
Avatar billede do Nybegynder
04. oktober 2001 - 12:05 #11
Ville det være lettere at bruge database ??

Så er det bare hvordan jeg får den til at overskrive den ældste post i DB\'en.. ??

Sådan at databasen ikke lige pludselig fylder 5mb på et par dage..
Avatar billede nordclc Nybegynder
04. oktober 2001 - 12:30 #12
Da du ved der altid er maks 10 linier i tekstfilen, så kan du læse og udskrive den på følgende måde:
-----------------------------------------------
<html>
<title>Læse fra tekstfiler</title>
<head>
</head>
<body>
<%
Dim fso, f, filespec
Set fso = CreateObject(\"Scripting.FileSystemObject\")
filespec = Server.Mappath(\"/chat.txt\")
Set f = fso.OpenTextFile(filespec,1)

\' Læs linie for linie indtil slutningen af filen
Do While not f.AtEndOfStream
  Response.write f.ReadLine & \"<br>\"
Loop

f.Close
%>
</body>
</html>
-----------------------------------------------
Jeg vender snart tilbage med skrivningen.

//Claus
Avatar billede Søren Bech Morsing Praktikant
04. oktober 2001 - 12:40 #13
do: din database vil \"aldrig\" komme op på 5 mb, det vil kræve tusindvis af indlæg.
Og ja det ville være nemmere med en database, + du kan kontrollere gamle indlæg
Avatar billede nordclc Nybegynder
04. oktober 2001 - 13:08 #14
Okay, du skal oprette en 3 filer, med følgende indhold:

chat.txt
--------
linie 1<br>
linie 2<br>
linie 3<br>
linie 4<br>
linie 5<br>
linie 6<br>
linie 7<br>
linie 8<br>
linie 9<br>
linie 10<br>


las.asp
-------
<html>
<head>
<meta http-equiv=\'pragma\' content=\'nocache\'>
<meta http-equiv=\'case-control\' content=\'no-store\'>
<title>Læs fra tekstfil</title>
</head>
<body>
<%
Dim fso, f, filespec
Set fso = CreateObject(\"Scripting.FileSystemObject\")
filespec = Server.Mappath(\"../../fpdb/chat.txt\")
Set f = fso.OpenTextFile(filespec,1)

\' Læs linie for linie indtil slutningen af filen
Do While not f.AtEndOfStream
  Response.write f.ReadLine
Loop

f.Close
%>
</body>
</html>


skriv.asp
---------
<% response.buffer=true %>
<html>
<head>
<meta http-equiv=\'pragma\' content=\'nocache\'>
<meta http-equiv=\'case-control\' content=\'no-store\'>
<title>Skriv ti tekstfil</title>
</head>
<body>
<%
Dim fso, f, filespec, tekst, arrtekst
Set fso = CreateObject(\"Scripting.FileSystemObject\")
filespec = Server.Mappath(\"../../fpdb/chat.txt\")
Set f = fso.OpenTextFile(filespec,1)

\' Læs tekstfil
tekst = f.ReadAll
f.Close

\' Dan array fra 0-9
arrtekst = Split(tekst,\"<br>\")

Set f = fso.OpenTextFile(filespec,2)

\' Skriv tekst i fil, arrtekst(0) udelades, da det er den ældste
f.WriteLine arrtekst(1) & \"<br>\"
f.WriteLine arrtekst(2) & \"<br>\"
f.WriteLine arrtekst(3) & \"<br>\"
f.WriteLine arrtekst(4) & \"<br>\"
f.WriteLine arrtekst(5) & \"<br>\"
f.WriteLine arrtekst(6) & \"<br>\"
f.WriteLine arrtekst(7) & \"<br>\"
f.WriteLine arrtekst(8) & \"<br>\"
f.WriteLine arrtekst(9) & \"<br>\"
f.WriteLine \"Her skal du skrive den nye tekst!\" & \"<br>\"

f.Close

response.redirect \"las.asp\"
%>

</body>
</html>


//Claus
Avatar billede nordclc Nybegynder
05. oktober 2001 - 15:45 #15
do>> Kunne du bruge det?
Avatar billede do Nybegynder
10. oktober 2001 - 11:54 #16
Ja...
Avatar billede nordclc Nybegynder
10. oktober 2001 - 11:56 #17
Det var godt ;o)

//Claus
Avatar billede do Nybegynder
10. oktober 2001 - 11:56 #18
Nu har jeg bare et problem..

Hvordan får jeg den til at kunne skrive æ ø og å ind i chat.txt ?? Når jeg skriver æø eller å i chatten, går den kold og jeg skal opdatere \"Skriv\" siden inden jeg kan skrive videre på chatten ?!?
Avatar billede do Nybegynder
10. oktober 2001 - 11:59 #19
Så får du lige 200 point hvis du svare på det..
Avatar billede nordclc Nybegynder
10. oktober 2001 - 11:59 #20
Prøv at indsætte <% Session.LCID = 1030 %> i toppen af dine dokumenter!
Avatar billede do Nybegynder
10. oktober 2001 - 17:03 #21
Nu har jeg slettet alt det text møg og lavet det om til database...

Hvordan sørger jeg for at databasen ikke fylder alt for meget ?

Og hvordan får jeg den til at skrive de 10 nyeste poster i databasen ind i chatten ??

Jeg har allerede så den bare skriver alt i databasen.. Men den skal kun vise de 10 nyeste..
Avatar billede do Nybegynder
10. oktober 2001 - 17:05 #22
SBK>>> Der kommer da hurtigt et par tusinde indlæg hvis et par stykker sidder og chatter nogen timer..!
Avatar billede nordclc Nybegynder
11. oktober 2001 - 08:52 #23
Du er nødt til at have en felt du kan sortere efter (f.eks. dato/tid), så kan du gøre således:

select top 10 * from database order by datotid desc

//Claus
Avatar billede do Nybegynder
23. oktober 2001 - 23:04 #24
Jeg bruger bare Id feltet..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester