Tja, det borde väl gå. Skrivet ur skallen, otestat alltså:
<%
set objFSO = Server.CreateObject("Scripting.FileSystemObject")
set objFile = objFSO.OpenTextFile(Server.MapPath("Filen.txt"))
strFile = objFile.Readall
objFile.Close
set objFile = Nothing
set objFSO = Nothing
arrFile = split(strFile, vbCrLf)
Response.write arrFile (ubound(arrFile)) ' sista raden
Response.write arrFile (ubound(arrFile)-1) ' näst sista raden
%>
Det är dock en bra idé att kontrollera att filen har tillräckligt många rader först, innan du försöker skriva ut dem.
<%
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("textfilen.txt"),1)
arrRows = Split(objTS.ReadAll,vbCrLf)
Response.Write(arrRows(UBound(arrRows))) ' Sista raden
Response.Write(arrRows(UBound(arrRows) - 1)) ' Näst sista
Response.Write(arrRows(UBound(arrRows) - 2)) ' Näst näst sista
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
%>
Lite skumt dock
Response.Write(arrRows(UBound(arrRows))) ' Sista raden
Response.Write(arrRows(UBound(arrRows) - 1)) ' Näst sista
Response.Write(arrRows(UBound(arrRows) - 2)) ' Näst näst sista
skriver endast ut
Response.Write(arrRows(UBound(arrRows))) ' Sista raden
Response.Write(arrRows(UBound(arrRows) - 1)) ' Näst sista
likadant om man väljer fler att alla utan 1 skrivs ut hehe men d e ju inget problem direkt, bara o lägga till en extra.
<%
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("textfilen.txt"),1)
arrRows = Split(objTS.ReadAll,vbCrLf)
For i = UBound(arrRows) To (UBound(arrRows) - så många från botten du vill visa) Step -1
Response.Write(arrRows(i))
Next
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
%>
Svaret på den sista frågan, angående alla utan den senaste:
<%
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("textfilen.txt"),1)
arrRows = Split(objTS.ReadAll,vbCrLf)
For i = UBound(arrRows) To (LBound(arrRows) + 1) Step -1
Response.Write(arrRows(i))
Next
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
%>
Men det där med att splita datum/tid, m.m. kan bli svårt, eftersom det inte finns något som visar var det slutar... Det hade varit lättare om det fanns någon avgränsare mellan varje "avdelning". T.ex: 2003/03/23 10:04.42 | 784. | Misfits - Witch Hunt | (1:31)
Ajda.. Nee d gör ju inte d =/ borde man inte kunna utgå från att det som ligger före andra mellanslaget är en sak, det som ligger mellan andra och tredje är en sak, det som ligger mellan tredje mellanslaget och första parantestecknet är en.. och sedan på nått vis klura fram så att parantesen är en? eller d kanske inte funkar?
<%
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("textfilen.txt"),1)
arrRows = Split(objTS.ReadAll,vbCrLf)
For i = UBound(arrRows)-1 To (UBound(arrRows)-4) Step -1
Response.Write "Datum: " & splitstr(arrRows(i))(0) & "<br>"
Response.Write "Artist: " & splitstr(arrRows(i))(3) & "<br>"
Response.Write (arrRows(i)) & "<br>"
Next
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
Function splitstr(rad)
arrRad = Split(rad," ")
splitstr = arrRad
End Function
%>
Problemen kan börja uppstå om mönstret inte alltid stämmer, tex om gruppnamnet består av flera ord, likaså låttiteln. Som du själv säger kanske man ska ge sig in på o kika var parentesen sitter i så fall.
En riktig fullösning, går säkerligen att göra vackrare.
Vet du att låten/artisten alltid avgränsas med ett bindestreck kan du använda det som avgänsare för att skilja på låt/artist.
<%
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.OpenTextFile(Server.MapPath("yawn.log"),1)
arrRows = Split(objTS.ReadAll,vbCrLf)
For i = UBound(arrRows)-1 To (UBound(arrRows)-4) Step -1
Response.Write "Datum: " & splitstr(arrRows(i))(0) & "<br>"
Response.Write "Tid: " & splitstr(arrRows(i))(1) & "<br>"
Response.Write "Låtnummer: " & splitstr(arrRows(i))(2) & "<br>"
songstart = len(splitstr(arrRows(i))(0) & splitstr(arrRows(i))(1) & splitstr(arrRows(i))(2))+3
songlenght = InStr(arrRows(i),"(") - songstart
Response.Write "Artist/Låt: " & Mid(arrRows(i),songstart,songlenght) & "<br>"
Next
objTS.Close
Set objTS = Nothing
Set objFSO = Nothing
Function splitstr(rad)
arrRad = Split(rad," ")
splitstr = arrRad
End Function
%>