Avatar billede unomas Nybegynder
07. september 2005 - 22:34 Der er 13 kommentarer

Tekstfil med dato som navn.

Jeg sidder og leger lidt med et lille script som skulle kunne oprette en text-fil med dagens dato som navn, men jeg kan ikke rigtig få det til at virke...

<%

Set FSO = Server.CreateObject("Scripting.FileSystemObject")

Set fil = '" & Date & "'

FSO.CreateTextFile("d:\fil.txt")

%>

Det jeg er kommet frem til er at det evt. kunne se sådan ud, men det virker som sagt ikke...
Avatar billede softspot Forsker
07. september 2005 - 22:41 #1
Nu er det vel ikke sådan at dit datoformat indeholder ulovlige tegn (så som skråstreger, koloner el.lign)?
Avatar billede unomas Nybegynder
07. september 2005 - 22:44 #2
Det skrive som 07-09-2005 som " & Date & " altid gør, og der er da ikke noget ulovligt i det..
Avatar billede softspot Forsker
07. september 2005 - 22:44 #3
Hvilken fejl får du i øvrigt?

Det ser ud til at du bruger nogle forkert virkemidler til at opnå det du siger du vil.

Set bruges i forbindelse med objekter og variablen fil ser ud til at være en streng. Det skal nok gøres nogenlunde således:

fil = Date()

Hvis så det skal danne grundlag for et filnavn, vil det f.eks. se således ud:

set nytFilObjekt = fso.CreateTextFile(Server.MapPath(fil))
Avatar billede softspot Forsker
07. september 2005 - 22:45 #4
Altid er nok så meget sagt. Hvis nu datoformatet var sat til amerikansk havde det nok været 09/07/2005 eller noget i den stil - og det er ikke lovligt i et filnavn.
Avatar billede unomas Nybegynder
07. september 2005 - 22:50 #5
Det funger ikke...
Avatar billede unomas Nybegynder
07. september 2005 - 22:51 #6
Noget med en 500 HTTP serverfejl
Avatar billede softspot Forsker
07. september 2005 - 22:57 #7
Vi kan få rigtige fejlmeddelelser hvis du gør dette:

funktioner >> Internetinstillinger >> advanceret >> fjern kryds i "vis meddelelser om uskadelige HTTP-fejl"


Hvordan ser din kode ud lige nu?
Avatar billede unomas Nybegynder
07. september 2005 - 23:03 #8
Med dit eks. laver den bare en fil der hedder fil.txt

Ved mit eks. skrev den noget der minder om dette:
Microsoft VBScript runtime error '800a01a8'

Object required: 'Date()'

/fil.asp, line 5
Avatar billede softspot Forsker
07. september 2005 - 23:08 #9
Du mener vel omvendt? Mit eksempel burde ikke lave en fil med navnet fil, men det lyder mere sandsynligt at den brokker sig over Date(). Prøv evt. med Date uden parantes.

Men vis din kode, så er det lettere at hjælpe...
Avatar billede unomas Nybegynder
07. september 2005 - 23:13 #10
<u>Lige nu ser deb sådan ud:</u>

<%

Set FSO = Server.CreateObject("Scripting.FileSystemObject")

Set fil = Date

FSO.CreateTextFile("d:\fil.txt")

%>

<u>Og fejlmeddelelsen ser sådan ud:</u>

Microsoft VBScript runtime error '800a01a8'

Object required: 'Date'

/fil.asp, line 5
Avatar billede softspot Forsker
07. september 2005 - 23:19 #11
Som nævnt må du ikke benytte set til fil, hvis du vil have en streng ud:

Set fil = Date

skal skrives

fil = Date

Og så forstår jeg ikke helt hvad du vil, for det ser ud som om du vil lave en fil i roden af d-drevet ved navn fil.txt, men som jeg læser dit oplæg, vil du have en fil ved navn 07-09-2005.txt, eller har jeg misforstået det?

Hvis du vil have den med filnavn som aktuelle dato, så skal du altså væk fra at benytte en konstant streng til filnavn. Dette burde oprette en tekstfil i roden af d-drevet der hedder 07-09-2005.txt (hvis altså du ikke venter til efter midnat ;)).

set fileStream = FSO.CreateTextFile("d:\" & fil & ".txt")
fileStream.close
Avatar billede unomas Nybegynder
07. september 2005 - 23:31 #12
Jeg forstår ikke hvorfor du vil have mig til at skrive Date og ikke " & Date & " fordi det andet fatter den ikke...

Men nu har jeg fået det til at virke, jeg blandede lidt af begge vores ting og så virkede det...

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")

set fileStream = FSO.CreateTextFile("d:\web\localuser\rasmusvendelbo.com\public_html\data\nyheder\" & Date & ".txt")
fileStream.close
%>
Avatar billede softspot Forsker
07. september 2005 - 23:43 #13
Hvis du gerne vil undgå at skrive den lange sti til din webservers root, så kan du bruge Server.MapPath i stedet:

<%
Set FSO = Server.CreateObject("Scripting.FileSystemObject")

set fileStream = FSO.CreateTextFile(Server.MapPath("/data/nyheder/" & Date & ".txt"))
fileStream.close
%>

Dette er naturligvis under antagelse af at data ligger i roden af dit website.

Jeg mener nu at det du er nået frem til er helt i tråd med det jeg har forsøgt at sige helt fra starten (men åbenbart ikke formået at formulere mig ordentlig :))...
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