|
| Tjek om fil er nedskreven fejl Fra : _saudoo | Vist : 392 gange 100 point Dato : 21-10-06 14:08 |
|
Hej,
Nu har jeg siddet og bøvlet med denne kode i nogle dage. Jeg valgte for en lille time siden, at skrive den forfra. Så simpel som mulig. Men ligelidt hjalp det.
Mit projekt ligger i at jeg ved hjælp af FSO, går ind og tjekker en mappe for mapper. Hver af de mappe, der indeholder en fil der hedder "installer.asp", bliver taget med.
Jeg indlæser "installer.asp" med Server.Execute, og bruger tre Sessions der står i installer.asp til at tjekke om filen er skrevet ind i databasen. Derefter slettes de.
F.eks:
Jeg indlæser "installer.asp" fra mappen "yoga". Deri er en session der hedder varNavn. Den indeholder stringen "Yoga". Med det tjekker jeg om der er nogle rækker, hvor feltet "navn" indeholder "Yoga".
Hvis der er det, burde den skrive at den findes i database. Og hvis ikke, burde den skrive at den ikke gør.
Dette forgår i løkken "For each mapp in findfiler.SubFolders".
I min database, findes en tabel der hedder skabelon. Den har felterne navn, beskrivelse, oprettet og så et der hedder aktiveret, men det er ligegyldigt på nuværende tidspunkt.
Kan nogle forklare mig hvad i alverden jeg gør galt her? Den laver et komplet rod, når den skal skrive ud, om indholdet i installer.asp står i databsen.
Håber i kan hjælpe, for jeg er tæt på at rive håret af.
Jakob
Kode til template.asp inkluderet herunder:
<!--#include virtual="forbindelse.asp"-->
<%
If Request.QueryString("side") = "skabeloner" Then
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set findfiler = fso.GetFolder(Server.Mappath("../templates/"))
Set skabelon = Server.CreateObject("ADODB.Recordset")
skabelon.Open "SELECT * FROM skabeloner", database
If NOT skabelon.EOF Then
For each mappe in findfiler.SubFolders
Set findtemplate = fso.GetFolder(Server.Mappath("../templates/" & mappe.Name))
If fso.FileExists(Server.Mappath("..\templates\") & "\" & mappe.Name & "\installer.asp") = True Then
Server.Execute("../templates/" & mappe.Name & "/installer.asp")
Set check = Server.CreateObject("ADODB.Recordset")
check.Open "SELECT * FROM skabeloner", database
If check.Fields("navn") = Session("varNavn") Then
Response.Write(Session("varNavn") & " i databasen<br />")
Else
Response.Write(Session("varNavn") & " ikke i databasen<br />")
End If
check.Close
Set check = Nothing
Session("varNavn") = Delete
Session("varBeskrivelse") = Delete
Session("varOprettet") = Delete
End If
Next
Else
For each mappe in findfiler.SubFolders
Set findtemplate = fso.GetFolder(Server.Mappath("../templates/" & mappe.Name))
Server.Execute("../templates/" & mappe.Name & "/installer.asp")
Response.Write(Session("varNavn") & " ikke i databasen<br />")
Session("varNavn") = Delete
Session("varBeskrivelse") = Delete
Session("varOprettet") = Delete
Next
End If
skabelon.Close
Set skabelon = Nothing
End If
%>
| |
| Kommentar Fra : _saudoo |
Dato : 21-10-06 15:32 |
|
Mange tak.. Prøver jeg at gøre. :)
| |
| Kommentar Fra : natmaden |
Dato : 21-10-06 17:53 |
|
rette person
Jeg kender intet til ASP
men kikker da gerne .. med.!
Nå men , ASP kan vel også læses.
Prøver
| |
| Kommentar Fra : _saudoo |
Dato : 21-10-06 18:14 |
|
Hehe..
Jeg har oprettet samme spørgsmål i 4 andre fora. Deriblandt en nyhedsgruppe. Så håber da på, at en eller anden vil hjæpe mig.
Om ikke andet, skal jeg nok skrive herinde, hvis jeg finder er svar på mit spørgsmål.
Iøvrigt kan jeg lidt specificere hvor fejlen opstår. Så vidt jeg kan se, burde det være i dette stykke.
Kode If fso.FileExists(Server.Mappath("..\templates\") & "\" & mappe.Name & "\installer.asp") = True Then
Server.Execute("../templates/" & mappe.Name & "/installer.asp")
Set check = Server.CreateObject("ADODB.Recordset")
check.Open "SELECT * FROM skabeloner", database
If check.Fields("navn") = Session("varNavn") Then
Response.Write(Session("varNavn") & " i databasen<br />")
Else
Response.Write(Session("varNavn") & " ikke i databasen<br />")
End If
check.Close
Set check = Nothing
Session("varNavn") = Delete
Session("varBeskrivelse") = Delete
Session("varOprettet") = Delete
End If
Next |
| |
| Kommentar Fra : _saudoo |
Dato : 21-10-06 19:12 |
|
Jeg fandt ikke fejlen. Men blev enig med mig selv om, at jeg ville lave det på en lettere måde. Lettere for brugeren altså. :)
Process:
Indlæs alle undermapper i mappen template. Skrive dem op.
Hvis man aktiverer en af de templates der er, redigere den blot en række i tabellen indstilinger.
Det er lettere.. :)
| |
| Du har følgende muligheder | |
|
Dette spørgsmål er blevet annulleret, det er derfor ikke muligt for at tilføje flere kommentarer.
| |
|
|