Avatar billede atheist Nybegynder
18. august 2003 - 16:29 Der er 12 kommentarer og
1 løsning

problemer med skrivning til fil

Jeg har to steder på min hjemmeside, hvor der først bliver  læst fra, dernæst skrevet til, en tekst fil, via et ASP-script. Problemet er at efter 5-6 gange bliver de første 8 tegn erstattet af noget der ligner eksperimenter med ASCII-koder, scriptet ser ud som følger:


Dim fso, f, filespec, tao

Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("log.txt")
Set f = fso.OpenTextFile(filespec,1)

' Læs linie for linie indtil slutningen af filen

tao =  f.ReadAll

f.close
dim bruger, str

Set f = fso.OpenTextFile(filespec,2)

f.Writeline "<strong>"&Session("users")&"</strong><br>"&now&"<p>"&tao
f.Close

Er det fordi jeg bruger readAll, istedet for at læse linjerne en for en? Jeg er virkelig ved at være desperat!!!
Avatar billede mm12010 Nybegynder
18. august 2003 - 16:34 #1
Avatar billede atheist Nybegynder
18. august 2003 - 16:38 #2
Det er ikke det, jeg skal have den nye tekst i toppen af filen, med fso.OpenTextFile(filespec,8) kommer det i bunden....
Avatar billede nmh Nybegynder
18. august 2003 - 16:57 #3
jeg antager, at du hver gang du vil tilføje noget, så skal det ske som noget tekst plus et linieskift (et tekstfil-linieskift)
Der kan tilføjes linieskift i VBscript på denne måde:

tekst= nylinie & VbCrLf & tekst




VbCrLf er blot tegn 13 efterfulgt af tegn 10.
Du sætter html-koder ind istedet.

Jeg har ikke tid til at teste det lige nu, men gør det senere.
Avatar billede atheist Nybegynder
18. august 2003 - 17:05 #4
"blot tegn  efterfulgt af tegn 10" Den er jeg ikke helt sikker på jeg forstår? Linjeskiftet skal ske med et HTML-linjeskift, da jeg senere putter teksten ind i hjemmesiden med SSI, derfor skal den også være færdig-fomatteret når den bliver lagt i tekstfilen.
Avatar billede nmh Nybegynder
18. august 2003 - 17:14 #5
Nå jeg testede det lige.
Nu har jeg tilføjet VbCrLf tile sidst i det, som du tilføjer.
Altså således:
f.Writeline "<strong>"&Session("users")&"</strong><br>"&now&"<p>"& VbCrLf & tao

Det betyder, at der laves en tekstfil med rigtige linieskift, og når den sendes til en html-side, så ignoreres vbcrlf, og så er det <br> og <p> der sørger for linieskift.

Nu har jeg 20gange tilføjet noget og det ser ud, som det skal.
Avatar billede nmh Nybegynder
18. august 2003 - 17:22 #6
Jeg har også testet i en Browser, og alt er OK. Fede typer, linieskift  i Browseren etc. Alt er OK
Og nu kan man se filen med rigtige linieskift også i f.eks. notepad-editoren.
Avatar billede nmh Nybegynder
18. august 2003 - 17:43 #7
Hvis der alligevel kommer mærkelige tegn med, må de komme fra Session("user"). Alt andet er jo med sikkerhed klar tekst.
Avatar billede atheist Nybegynder
20. august 2003 - 17:38 #8
ok, jeg har sporet det ned til at den erstatter tegnene hvis det er at det første eller sidste i linjen er html-tags.... Nogen der ved hvorfor den gør det, og hvordan man kommer det til livs?
Avatar billede nmh Nybegynder
20. august 2003 - 17:45 #9
men jeg skrev jo linier, der netop havde formen <strong>....
og der kom ingen problemer.
(Jeg kørte det godt nok som et VBscript på minegen maskine, men det skulle ikke betyde nogen forskel).
Avatar billede atheist Nybegynder
20. august 2003 - 17:47 #10
aner ikke hvad der sker... Den eneste grund jeg kan komme på, er at det er en server der kører Apache...
Avatar billede atheist Nybegynder
20. august 2003 - 17:49 #11
jeg har ændret lidt i scriptet, paster det lige for at holde folk opdateret:

Dim fso, f, filespec, tao

Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("guestbook.txt")
Set f = fso.OpenTextFile(filespec,1)

tao =  f.ReadAll


dim bruger, str, msg, user, mail
mail = Session("gre")
msg = Request("message")
bruger = Session("users")

Set f = fso.OpenTextFile(filespec,2)

f.Writeline "<strong> <a href='mailto:"&mail&"'>"&Request("tagname")&"</a></strong>"
f.writeline "<br>"& msg & "<br>"&date&"<br>"& tao

f.Close

Nu lukker den ikke filen 2 gange, og jeg har delt den lange linje lidt op. Vil det monstro hjælpe hvis jeg læser filen en linje ad gangen, istedet for på en gang?
Avatar billede nmh Nybegynder
20. august 2003 - 17:54 #12
Du kan da prøve. Men hvis du vil læse en linie ad gangen, skal du tilføje linieskift (altså VBCrLf). <br> og <p> er kun noget browseren vil reagere på.
Avatar billede mm12010 Nybegynder
16. september 2003 - 12:41 #13
lukketid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester