webForumDet fria alternativet

Lagra övers i textfilen

ASP

4 svar · 469 visningar · startad av Sico

Medlem sedan maj 20002 597 inlägg
Frågan#1

Jag sökte här på forumet och det fanns en hel del trådar som handlade just om att lagra överst i texfilen. Men jag fattar inte hur jag ska göra.
Så här ser min kod ut för att läsa och lagra, men det hamnar som sagt längst ner. Hjälp! :)

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objTextStream = objFSO.OpenTextFile("C:\_HDD\Homesite\Web\words.txt", 1)

Response.Write objTextStream.ReadAll

objTextStream.Close
Set objTextStream = Nothing
Set objFSO = Nothing

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
set objFile = objFSO.OpenTextFile( "C:\_HDD\Homesite\Web\words.txt", 8 )

	Session.LCID = 1053

	strName = Request.Form("name")
	strUrl = Request.Form("www")

	strMsg = Request.Form("msg")
	strMsg = replace(strMsg, vbcrlf, "<br>") 

objFile.WriteLine "<p><span class='title'><a href='" & strUrl & "'>" & strName & "</span></a><span class='grey'> - " & Date & "</span><br>" & strMsg & "</p>"
Medlem sedan dec. 200012 464 inlägg
#2

Om du vill att något skall hamna först i en sekventiell fil så måste du skapa en ny fil där du skriver det du vill i början och sedan resten av den gamla filen. Det är inte för inte som det heter sekventiell.

Medlem sedan maj 20002 597 inlägg
#3

Jaha, så det är så man får gå till väga ändå alltså. Tänkte kanske det fanns ett sätt att bygga uppdatera-funktion också. Tackar

Medlem sedan maj 20002 597 inlägg
#4

Jag har uppdaterat koden lite, även ändrat till mappath.
Dock får jag felmeddelande

Error Type:
Microsoft VBScript runtime (0x800A0036)
Bad file mode

Antar att jag skulle behövt lägga till ",8" efter textfilens sökväg men jag får det inte att fungera med mappath, så hur ska jag göra?

   Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
   Set objTextStream = objFSO.GetFile(Server.Mappath("words.txt"))
   Set tsObjekt = objTextStream.OpenAsTextStream

   strEarlierMsg = CStr(tsObjekt.ReadAll)

	Session.LCID = 1053

	strName = Request.Form("name")
	strUrl = Request.Form("www")

	strMsg = Request.Form("msg")
	strMsg = replace(strMsg, vbcrlf, "<br>") 

	strNewMsg = "<p><span class='title'><a href='" & strUrl & "'>" & strName & "</span></a><span class='grey'> - " & Date & "</span><br>" & strMsg & "</p>" & strEarlierMsg

   tsObjekt.Write CStr(strNewMsg)

   Set objFSO = Nothing
   Set tsObjekt = Nothing
   Set objTextStream = Nothing
Medlem sedan maj 20002 597 inlägg
#5

Hej igen...
Just nu fungerar allt som det ska, på min server. Men på webhotellet verkar man inte kunna skapa om txt-filen utan måste uppdatera den istället. Hur gör jag det när jag använder mig av mappath?

   Set fsoMinFil = Server.CreateObject("Scripting.FileSystemObject")
   Set strFilObjekt = fsoMinFil.GetFile(Server.Mappath("words.txt"))
   Set tsObjekt = strFilObjekt.OpenAsTextStream

   strTidigareInlagg = CStr(tsObjekt.ReadAll)

	strName = Request.Form("name")
	strUrl = Request.Form("www")

	strMsg = Request.Form("msg")
	strMsg = replace(strMsg, vbcrlf, "<br>") 

   strNy_text = Server.HTMLEncode(strNy_text)
   strNy_text = replace(strNy_text,chr(13),"")

   strNytt_inlagg = "<p><span class='title'><a href='" & strUrl & "'>" & strName & "</span></a><span class='grey'> - " & Date & " " & Time & "</span><br>" & strMsg & "</p>" & strTidigareInlagg

   Set tsObjekt = fsoMinFil.CreateTextFile(Server.MapPath("words.txt"))
   tsObjekt.Write CStr(strNytt_inlagg)

   Set fsoMinFil = Nothing
   Set tsObjekt = Nothing
   Set strFilObjekt = Nothing
262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
134 ms — ändringar (db)