May 16, 2001
Jag undrar hur man i vbscript lägger till en textrad ÖVERST i en textfil (istället för att som i denna kod raden hamnar längst ner i textfilen):
-------------
<%Dim filesys, txtfile
Set filesys=CreateObject("Scripting.FileSystemObject")
Set txtfile=filesys.OpenTextFile("C:InetpubwwwrootRandomLogg.txt", 8, true)
txtfil.WriteLine Fullstring
txtfil.Close%>
-------------
I ovanstående kod skapas en txt-fil om ingen finns ('true' gör detta), och sedan läggs en rad till UNDERST i textfilen för varje gång denna kod anropas ('8' står för inmatning). Kan textraden inte läggas in överst i textfilen?
Gör en asp-sida, alltså.
[ Detta Inlägg ändrades av: da Source den 2001-07-19 03:24 ]
April 9, 2001
Kan du inte läsa in hela loggen i en sträng och adda din textrad först till strängen och sedan skriva tillbaka den? Lite performance overhead men jag tror inte det finns någon direkt funktion för att specificera vilken rad den ska in på....
Varför måste du ha den vänd? kan du inte vända den precis innan du/koden ska titta på den?
April 9, 2001
Typ:
'== READ THE PREVIOUS ENTRIES AND ADD IT TO A STRING! =======
Set FileSys = CreateObject("Scripting.FileSystemObject")
if FileSys.FileExists(thePath) then
Set theFile = FileSys.OpenTextFile(thePath, 1, true)
theText = theFile.readAll
theFile.Close
Set theFile = Nothing
else
theText = ""
end if
'=============================================================
'== WRITE TO THE FILE ====================================
Set theFile = FileSys.OpenTextFile(thePath, 2, true)
tempText = "[STARTDATE]" & sTodaysdate & "[STOPDATE]"
tempText = tempText & "[STARTMAIL]" & sMail & "[STOPMAIL]"
tempText = tempText & "[STARTNAME]" & sName & "[STOPNAME]"
tempText = tempText & "[STARTMESS]" & sMessage & "[STOPMESS]"
theFile.WriteLine(tempText & theText)'add the previous entries
theFile.Close
Set theFile = Nothing
'============================================================
May 16, 2001
Nibbler: nä, programmet och filerna ska vara så superenkla som möjligt, och kunna hanteras av nån som inte ex. har access.
Carnail: jo, jag funderade på hur man kunde läsa från sista raden till första från en textfil (alltså vända på listan först i html-dokumentet), men trodde det f-nns en enklare metod att få in nya rader överst i textfilen. (ex. 8 står ju för input längst ner - alltså borde en annan siffra stå för input längst upp - men nä,nä).
Så finns det ett enklare sätt att vända textfilen i browsern, så föredrar jag det framför att varje gång ladda upp hela listan i en temporär fil, och sedan skriva in den baklänges i en ny textfil. Verkar vara resurskrävande, och snabbhet är en dygd i detta sammanhang. Listan kommer bli fetinglång, och jag vill bara visa de senaste 30 i browsern.
Annars testar jag det här - och tackar för svaret
Ps. '2' står för skapande och input i en ny fil?
May 16, 2001
Använder denna kod för läsning av textfilen nu:
-----------------
Dim filesys, txtfile, line
Set filesys=CreateObject("Scripting.FileSystemObject")
Set txtfile=filesys.OpenTextFile("C:InetpubwwwrootRandom2Logg.txt", 1, 0)
Do
line=txtfile.ReadLine%>
<%=line%>
<%Loop Until txtfile.AtEndOfStream
txtfile.Close%>
------------------
1 Guest(s)