webForumDet fria alternativet

Läsa en textfil från slutet?

ASP

8 svar · 218 visningar · startad av JE

Medlem sedan juni 2000144 inlägg
Frågan#1

Går det att läsa en textfil från slutet? Vill gärna ha så att den läser det som är inskrivet senaste högst upp på sidan.

Går det oxo att skriva högst upp i filen inte längst ner.

Medlem sedan dec. 19998 577 inlägg
#2

Kan du inte först räkna antalet rader, sedan göra en loop som går baklänges (ifrån sista raden till rad 1), och sedan läsa varje rad för sig...

Jag löste det en gång i tiden genom att lägga in raderna i ett recordset och sedan hålla på och mixtra en massa...

------------------
www.webeye.nu

Medlem sedan juni 2000144 inlägg
#3

Jag vill helst inte blanda in en databas i detta eftersom det är en väldigt simpel gästbok. Skulle dock va trevligare om man kunde få så att den som skrev in sig senast hamnade överst på listan.

Det finns alltså inget enkelt sett att läsa från slutet av en textfil?

Kan man överhuvudtaget skriva till en textfil högst upp?

Medlem sedan dec. 19998 577 inlägg
#4

Vad jag menade med ett recordset var ett Disconnected Recordset, D.V.S ingen databas... bara en "virituel" databas som bara ligger i minnet på servern...

En annan idé är ju att först hämta allt ifrån filen, lägga till det "nya" i samma variabel, och sedan lägga tilbaks allt igen... det tycker jag låter enklast...

Men jag tror att det jag skrev förut om en omvänd loop skulle inte vara allt för svårt...

------------------
www.webeye.nu

Medlem sedan juni 2000144 inlägg
#5

Ett hämta hem allt i en variabel...blir inte det segt?

Du kan inte ge ett litet simpelt kodexempel? Vore väldigt snällt.

Medlem sedan dec. 19998 577 inlägg
#6
Set fso = CreateObject("Scripting.FileSystemObject")
Set fil = fso.Createtextfile("c:\test.txt", true)
S = fil.ReadAll

S = ditt_nya_innehåll & vbcrlf & S

Fil.write (S)

Detta är inte testat eller nått sånt, så jag vet inte alls om det stämmer... men det är väl en fingervisning på hur du kan göra...

------------------
www.webeye.nu

[Redigerat av Vide den 22 jun 2000]

Medlem sedan juni 2000144 inlägg
#7

Super duper!
Tack ska du ha!

Medlem sedan jan. 2001391 inlägg
#8

Jag har försökt och försökt få de nya nyheterna att hamna överst. Men det vill sig inte riktigt. Är det någon som skulle kunna ge mig ett förslag på en lösning med utgångspunkt från min nuvarande kod som sparar meddelandena underst.

Försökt göra som ovan, men det är något som inte stämmer. Vore därför enormt tacksam om någon ville förbarma sig och hjälpa mig med hur jag ska ändra i min kod.

Stort tack på förhand

Set MittTxtObj = Server.CreateObject ("Scripting.FileSystemObject")
Set MinFil = MittTxtObj.OpenTextFile(fil,8,true)

MinFil.WriteLine "<br><br>"
MinFil.WriteLine "<span class =brodtext>"
MinFil.WriteLine date
MinFil.WriteLine "</span>"
MinFil.WriteLine "<br>"
MinFil.WriteLine "<span class =fetbrod>"
MinFil.WriteLine rubrik
MinFil.WriteLine "</span>"
MinFil.WriteLine "<span class =brodtext>"
MinFil.WriteLine "<br>"
MinFil.WriteLine nyhet
MinFil.WriteLine "</span>"
MinFil.close

------------------
Qwerty

Den som söker han letar...

Medlem sedan jan. 2001510 inlägg
#9

Jag såg en chat en gång som löste problemet genom att helt enkelt läsa in filen i en variabel. Skriva den nya texten och sedan skriva den gamla texten från variabeln. Typ så här.

Dim temp

Set Blaha = OpenTextFile(..., 2)

Temp = Blaha.ReadAll

Blaha.Write NyText
Blaha.Write Temp

Blaha.Close

Det är i princip det enklaste så har du lagt till en rad överst i filen. Däremot så har jag hört att det tar mer resurser med ReadAll än det tar genom att loopa igenom texten till tex. EOF(End Of File).

2:an tror jag står för write dvs. att filen börjar från början och skriver över.

[Redigerat av Janspeed den 16 jan 2001]

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)