Eftersom du inte vet(?) hur många rader det finns i filen så måste du läsa in hela filen.
if Ubound(arrRad) < 19 then
start = 0
else
start = Ubound(arrRad) - 19
end if
for y = start to ubound(arrRad)
5 svar · 180 visningar · startad av erka
Jag hämtar ut information som ligger i en txt fil, lägger hela txtfilen i en array (hittade inte hur man kunde bara lägga in de 10 nedersta raderna). Koden ser ut så här, varje rad i txtfilen innehåller DATUM|Rubrik|Nyhet|URL
strFilePath = Server.MapPath("/tabeller/scroll/bla/")& "\nyheter.txt"
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fso = Fso.GetFile(strFilePath)
Set ReadFile = Fso.OpenAsTextStream(1, -2)
ArrRad = split(ReadFile.readall,vbcrlf)
For y = 0 to ubound(ArrRad,1)
ArrText = Split(ArrRad(y),"|")
Response.Write"( "& ArrText(0) &" ) "& ArrText(1) &"<br>"& ArrText(2) &"<br>»<a href="""& ArrText(3) &""">Kolla in</a><br><br>"
Next
Readfile.Close
Set ReadFile = Nothing
Set Fso = Nothing
Nu har jag problemet att jag endast vill ha de 20 senast inlaggda posterna, eftersom när jag ligger in en ny rad lägger in den underst måste jag på något sätt få ut de 20 nederstaraderna i textfilen. Antingen genom att läsa in de 20 nedersta raderna i arrayen från början eller skriva ut arrayen bakifrån och endast de 20 posterna. Problemet är att det vore smidigast att inte lägga massa saker i arrayen som inte ska visas, vilket jag gör på detta vis. Någon som vet hur jag kan lösa det på det ena eller andra sättet ?
mvh
Eftersom du inte vet(?) hur många rader det finns i filen så måste du läsa in hela filen.
if Ubound(arrRad) < 19 then
start = 0
else
start = Ubound(arrRad) - 19
end if
for y = start to ubound(arrRad)
Jo men när jag skriver ut dem då så blir ju de nyheter som lades in senaste (längst ner i textfilen) längs ner i filen där jag skriver ut dem...Hur kan man göra för att skriva ut det på andra hållet så att säga
for y = ubound(arrRad) to start step -1
Tack larsg, vad exakt betyder det ?
stega minus 1 !?!