Avatar billede martin_dalgaard Nybegynder
20. oktober 2005 - 12:54 Der er 12 kommentarer og
1 løsning

Txt filer problem med Server.Mappath

Der er et eller andet galt har siddet og afprøvet alle mine teorier på hvad problemet kunne være i flere timer så nu kommer det til eksperterne..
Mit script :

<%
Dim fso, f, filespec, strdate
strdate = now
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("event.txt")
Set f = fso.OpenTextFile(filespec,2)

' Skriv tekst i en linie
f.Write Request.Form("hvad") & "  " & Request.Form("kl") & "  " & Request.Form("mødes") & ":<a href=""tilmelding.asp?fi=""strdate"

f.Close


dim filesys, filetxt, getname, path
Set filesys = CreateObject("Scripting.FileSystemObject")
Set filetxt = Server.Mappath.CreateTextFile("tilmelding/"&strdate&".txt" , True)
path = Server.Mappath.GetAbsolutePathName("tilmelding/"&strdate&".txt")
getname = Server.Mappath.GetFileName(path)
filetxt.WriteLine("")
filetxt.Close
If Server.Mappath.FileExists(path) Then
  Response.Write ("<b>Your file, '" & getname & "', Post has been created.</b>")
End If

%>

Fejl meddelse.
Microsoft VBScript runtime  error '800a01c2'

Wrong number of arguments or invalid property assignment: 'Server.Mappath'

/un/newevent.asp, line 17
Mange tak på forhånd...
Martin dalgaard
Avatar billede softspot Forsker
20. oktober 2005 - 13:23 #1
Server.MapPath er en funktion som returnerer en streng, den har altså ikke de egenskaber/funktioner du prøver at kalde...
Avatar billede softspot Forsker
20. oktober 2005 - 13:25 #2
Du funktioner du prøver at kalde på MapPath skal du nok i stedet finde på det FileSystemObject objekt du opretter (filesys). Se evt. dokumentationen på http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/jsobjFileSystem.asp
Avatar billede softspot Forsker
20. oktober 2005 - 13:31 #3
Jeg vil tro nogle (hvis ikke alle) af problemer bliver løst således:

<%
Dim fso, f, filespec, strdate
strdate = now
Set fso = Server.CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("event.txt")
Set f = fso.OpenTextFile(filespec,2)

' Skriv tekst i en linie
f.Write Request.Form("hvad") & "  " & Request.Form("kl") & "  " & Request.Form("mødes") & ":<a href=""tilmelding.asp?fi=" & strdate & """>"

f.Close


dim filesys, filetxt, getname, path
Set filesys = Server.CreateObject("Scripting.FileSystemObject")
Set filetxt = filesys.CreateTextFile("tilmelding/"&strdate&".txt" , True)
path = filesys.GetAbsolutePathName("tilmelding/"&strdate&".txt")
getname = filesys.GetFileName(path)
filetxt.WriteLine ""
filetxt.Close
If filesys.FileExists(path) Then
  Response.Write "<b>Your file, '" & getname & "', Post has been created.</b>"
End If

%>
Avatar billede martin_dalgaard Nybegynder
20. oktober 2005 - 14:17 #4
Hej softspot.
Mange tak for din kommentar, og din ide fjernede ganske vist også den fejl meddelse men en ny kom frem..
Microsoft VBScript runtime  error '800a0034'

Bad file name or number

/un/newevent.asp, line 16
nogle forslag??
Avatar billede softspot Forsker
20. oktober 2005 - 15:12 #5
Hvad er det nu lige der står i linie 16?
Avatar billede martin_dalgaard Nybegynder
20. oktober 2005 - 15:29 #6
Set filetxt = filesys.CreateTextFile("tilmelding/"&strdate&".txt" , True)
Avatar billede softspot Forsker
20. oktober 2005 - 15:36 #7
Ok, så er det nok fordi der er ulovlige tegn i strDate, altså tegn som ikke må forekomme i et filnavn (f.eks. skråstreg eller kolon). Prøv at teste dette, eller bare lav en replace på disse tegn inden du bruger strdate i filnavnet.

Du skal i øvrigt også lave Server.MapPath på det filnavn, hvis det skal ligge under websitet. Hvis du ikke gør det vil jeg gætte på at filen kommer til at ligge et eller andet sted under Windows-folderen (hvorfra iis bliver aktiveret).

Eksempelvis:

Set filetxt = filesys.CreateTextFile(Server.MapPath("tilmelding/"&replace(replace(strdate,"/","-"),":",".")&".txt" , True)
Avatar billede martin_dalgaard Nybegynder
20. oktober 2005 - 16:02 #8
Ny error:
Microsoft VBScript compilation  error '800a03ee'

Expected ')'

/un/newevent.asp, line 16

Set filetxt = filesys.CreateTextFile(Server.MapPath("tilmelding/"&replace(replace(strdate,"/","-"),":",".")&".txt" , True)
--------------------------------------------------------------------------------------------------------------------------^

Prøvede så at Putte )på til sidst men så kom:
Microsoft VBScript runtime  error '800a01c2'

Wrong number of arguments or invalid property assignment: 'Server.Mappath'

/un/newevent.asp, line 16
Avatar billede softspot Forsker
20. oktober 2005 - 16:15 #9
Undskylder. Der var jeg lidt for hurtig til at skippe kommentaren. jeg skulle mene at dette ar mere korrekt rent syntaktisk:

Set filetxt = filesys.CreateTextFile(Server.MapPath("tilmelding/"&replace(replace(strdate,"/","-"),":",".")&".txt") , True)
Avatar billede martin_dalgaard Nybegynder
21. oktober 2005 - 20:28 #10
1000 TARK DU ER GUD!!!
skriv et svar og du for point
Avatar billede softspot Forsker
21. oktober 2005 - 20:42 #11
Gud og Gud, det er nok mere end jeg kan tillade mig at tage æren for... men velbekomme alligevel ;-)
Avatar billede softspot Forsker
08. november 2005 - 11:46 #12
martin_dalgaard, accepterer du svaret, så spørgsmålet kan blive lukket?
Avatar billede softspot Forsker
02. december 2006 - 16:52 #13
Tak for point :)
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