|
| Hvordan læse del af asp-fil Fra : Rune Jensen |
Dato : 21-10-07 12:10 |
|
skal bruge visning af indholdet af <h1> elementer fra alle .asp-filer i et
dir. Kan man læse hver fil i directoriet, og så lave en split - eller er der
en bedre metode til at trimme væk alt udenfor <h1> og </h1> - selve
h1-tagget skal selvfølgelig heller ikke bruges, kun teksten?
Idéen er, at scriptet læser alle filer i DIRet ekslusive index.asp, finde
<h1> og udskriver hvad der står i den som et link til selve filen med
oplysninger om oprettelsesdato, går videre til næste fil, så der dannes en
liste.
Der er kun én h1 i hvert dokument.
MVH
Rune Jensen
| |
Jørn Andersen (21-10-2007)
| Kommentar Fra : Jørn Andersen |
Dato : 21-10-07 21:42 |
|
On Sun, 21 Oct 2007 13:10:05 +0200, "Rune Jensen"
<runeofdenmark@hotmail.com> wrote:
>skal bruge visning af indholdet af <h1> elementer fra alle .asp-filer i et
>dir. Kan man læse hver fil i directoriet, og så lave en split - eller er der
>en bedre metode til at trimme væk alt udenfor <h1> og </h1> - selve
>h1-tagget skal selvfølgelig heller ikke bruges, kun teksten?
>
>Idéen er, at scriptet læser alle filer i DIRet ekslusive index.asp, finde
><h1> og udskriver hvad der står i den som et link til selve filen med
>oplysninger om oprettelsesdato, går videre til næste fil, så der dannes en
>liste.
Hmmm ... Det er lidt noget "snask" du er inde på. Men ja, det burde
kunne lade sig gøre med FSO og text-funktionerne Left/Right/Mid.
Jeg har det ikke helt godt med at behandle .asp-filer som data. Men det
er muligvis mig, der er lidt snerpet
Jeg ville hellere gå den omvendte vej: Have overskifterne stående i en
database el. lign. sammen med filnavn eller id og så derfra hente dem
til de enkelte filer.
Men det er jo ikke sikkert, at det er muligt i dit tilfælde.
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Rune Jensen (21-10-2007)
| Kommentar Fra : Rune Jensen |
Dato : 21-10-07 22:26 |
|
"Jørn Andersen" skrev...
> Hmmm ... Det er lidt noget "snask" du er inde på. Men ja, det burde
> kunne lade sig gøre med FSO og text-funktionerne Left/Right/Mid.
>
> Jeg har det ikke helt godt med at behandle .asp-filer som data. Men det
> er muligvis mig, der er lidt snerpet
Lyder som mig, når jeg får forelagt en side lavet i tabeller & rammer
> Jeg ville hellere gå den omvendte vej: Have overskifterne stående i en
> database el. lign. sammen med filnavn eller id og så derfra hente dem
> til de enkelte filer.
Du har selvfølgelig ret, men vi skal jo alle starte et sted. Databaser er
_så_ besværlige
> Men det er jo ikke sikkert, at det er muligt i dit tilfælde.
Ikke lige i dette tilfælde, nej. Spørgsmålet gik også på, om det kan lade
sig gøre, som jeg beskrev, og om der er noget, man skal være opmærksom på.
Alle guider om FSO jeg har set, omhandler alene .txt-filer.
MVH
Rune Jensen
| |
Jørn Andersen (22-10-2007)
| Kommentar Fra : Jørn Andersen |
Dato : 22-10-07 00:29 |
|
On Sun, 21 Oct 2007 23:26:18 +0200, "Rune Jensen"
<runeofdenmark@hotmail.com> wrote:
> Databaser er _så_ besværlige
Databaser er geniale
Det er rigtigt, at de ikke er så intuitive og simple at forstå som en
tekst-fil, eller et regneark. Man skal lære at forstå nogle ganske få
ting omkring databaser. Lær dem og du vil *aldrig* fortryde det!
>Alle guider om FSO jeg har set, omhandler alene .txt-filer.
En .asp-fil er i princippet også en tekst-fil, selv om den har en anden
extension, så det burde ikke være noget problem (har dog ikke prøvet).
Prøv blot at angive det rigtige filnavn.
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
Rune Jensen (22-10-2007)
| Kommentar Fra : Rune Jensen |
Dato : 22-10-07 01:05 |
|
"Jørn Andersen" skrev...
> Databaser er geniale
Ja, selvfølgelig. Indlæringskurven er bare stejlere, end jeg lige havde
ventet. Jeg har set, hvad de kan bruges til - og i længden vil .txt.filer jo
også være for langsomme og uflexible at bearbejde og komme til at fylde for
meget, så jeg bliver nok træt af dem.
> En .asp-fil er i princippet også en tekst-fil, selv om den har en anden
> extension, så det burde ikke være noget problem (har dog ikke prøvet).
> Prøv blot at angive det rigtige filnavn.
Det vil jeg. Og så vil jeg igen-igen kigge på databaser. Hvis nogen kan
anbefale noget lettilgængeligt for dummies litteratur/links, ville det da
være ganske rart. Der må gerne være lidt grundigere gennemgang af selve
teorien end html.dk.
MVH
Rune Jensen
| |
Thrane (27-10-2007)
| Kommentar Fra : Thrane |
Dato : 27-10-07 00:20 |
|
"Rune Jensen" <runeofdenmark@hotmail.com> wrote in message
news:471b31b3$0$1950$456a7185@news.cirque.dk...
> skal bruge visning af indholdet af <h1> elementer fra alle .asp-filer i et
> dir. Kan man læse hver fil i directoriet, og så lave en split - eller er
> der en bedre metode til at trimme væk alt udenfor <h1> og </h1> - selve
> h1-tagget skal selvfølgelig heller ikke bruges, kun teksten?
>
> Idéen er, at scriptet læser alle filer i DIRet ekslusive index.asp, finde
> <h1> og udskriver hvad der står i den som et link til selve filen med
> oplysninger om oprettelsesdato, går videre til næste fil, så der dannes en
> liste.
>
> Der er kun én h1 i hvert dokument.
>
> MVH
> Rune Jensen
>
>
Hej Rune...
Jeg er slet ikke en haj som mange af de andre her, men jeg bliv lidt
"tiltrukket" af "opgaven" du stilelr, så jeg ahr siddet og rodet med hvad
jeg nu vidste i forvejen og så ellers ledt efter andre elementer.
Jeg er kommet frem til nedenstående og jeg er udemærket klar over at det
sikkert kunne gøres mere elegant, men så langt er jeg ikke kommet i
ASP-udviklings-stadiet...
Prøv dette:
<%
FolderToList = "/test/listfiles/files/"
Folder = Server.Mappath("\") & FolderToList
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(Folder)
Set fc = f.files
For Each f1 in fc
If Not f1.name = "index.asp" Then
Set f=fs.OpenTextFile(Server.MapPath(FolderToList & f1.name &""), 1)
Text = f.ReadAll
PosStart=InStr(Text,"<h1>")
PosEnd=InStr(Text,"</h1>")
Response.Write("<a href=""" & FolderToList & f1.name & """>")
Response.Write(Mid(Text,(PosStart+4),(PosEnd+4)-(PosStart+4)))
Response.Write("</a><br>")
f.Close
End If
Next
%>
Mange hilsener
Thomas Thrane
| |
Rune Jensen (27-10-2007)
| Kommentar Fra : Rune Jensen |
Dato : 27-10-07 09:59 |
|
"Thrane" skrev...
> Prøv dette:
>
> <%
> FolderToList = "/test/listfiles/files/"
>
> Folder = Server.Mappath("\") & FolderToList
> Set fs = CreateObject("Scripting.FileSystemObject")
> Set f = fs.GetFolder(Folder)
> Set fc = f.files
>
> For Each f1 in fc
>
> If Not f1.name = "index.asp" Then
>
> Set f=fs.OpenTextFile(Server.MapPath(FolderToList & f1.name &""), 1)
> Text = f.ReadAll
> PosStart=InStr(Text,"<h1>")
> PosEnd=InStr(Text,"</h1>")
> Response.Write("<a href=""" & FolderToList & f1.name & """>")
> Response.Write(Mid(Text,(PosStart+4),(PosEnd+4)-(PosStart+4)))
> Response.Write("</a><br>")
> f.Close
>
> End If
>
> Next
> %>
Hej, Thomas. Rigtigt lækkert, det virker bare
Jeg tilføjede lige et check for, om det er en .asp-fil og ændrede på Mid´en.
Det må være fordi, at PosStart og PosEnd starter søgning fra venstre. Så
kommer </h1> ikke med, så vidt jeg kan se, derfor behøver ikke pludses.
If Not f1.name = "index.asp" and right(f1.name,4)=".asp" Then
samt
Response.Write(Mid(Text,(PosStart+4),(PosEnd)-(PosStart+4)))
....men det fungerer i hvert fald fuldt ud efter hensigten.
MVH
Rune Jensen
| |
Thrane (27-10-2007)
| Kommentar Fra : Thrane |
Dato : 27-10-07 11:01 |
|
"Rune Jensen" <runeofdenmark@hotmail.com> wrote in message
news:4722fc73$0$1973$456a7185@news.cirque.dk...
> "Thrane" skrev...
>
>
> Hej, Thomas. Rigtigt lækkert, det virker bare
>
> Jeg tilføjede lige et check for, om det er en .asp-fil og ændrede på
> Mid´en. Det må være fordi, at PosStart og PosEnd starter søgning fra
> venstre. Så kommer </h1> ikke med, så vidt jeg kan se, derfor behøver ikke
> pludses.
>
> If Not f1.name = "index.asp" and right(f1.name,4)=".asp" Then
>
> samt
>
> Response.Write(Mid(Text,(PosStart+4),(PosEnd)-(PosStart+4)))
>
> ...men det fungerer i hvert fald fuldt ud efter hensigten.
>
>
> MVH
> Rune Jensen
Det var godt! Det var faktisk helt sjovt og lærerigt at bikse sammen.
Her virker den fint og finde </h1>.
Kan du uddybe den del for mig?
Hilsener
Thomas
| |
Rune Jensen (27-10-2007)
| Kommentar Fra : Rune Jensen |
Dato : 27-10-07 12:00 |
|
"Thrane" skrev i en meddelelse
> Det var godt! Det var faktisk helt sjovt og lærerigt at bikse sammen.
> Her virker den fint og finde </h1>.
> Kan du uddybe den del for mig?
Mja, jeg er jo også sådan lidt begynder i noget af det Hvis du kigger på
koden, så laver du en startpos med instr, som søger efter et bestemt
ord/tegn fra venstre i et andet ord, derfor
<h1>o</h1>
0123456789
"<h1>" = pos 0, da der regnes fra starten af ordet "<h1>", dvs
0+4=4 for at få starten af selve overskriften
Det første "<" vil stå i pos 0, hvorfor, man skal plusse med 4 for at få det
væk
Det næste < derimod, hvor man skal finde PosEnd, der søges jo også fra
venstre, så der er det allerede væk, kan man sige, når man kun vil have
overskriften. Hvis der plusses med 4, så får du i stedet hele </h1> med
<h1>0</h1>
0123456789
"</h1>" = pos 5, da der regnes fra starten af ordet "</h1>"
Hvis 5+4=9 dvs. så får man overskriften + </h1>
Derfor jeg ikke plusser med 4 her. Men hvis man så ville vise både
overskirft + </h1> - skulle det vel også være 5, for der er jo 1 karakter
mere...
....men det er sådan, jeg har forstået det efter
http://www.w3schools.com/vbscript/func_instr.asp og
http://www.w3schools.com/vbscript/func_instrrev.asp. InStr søger fra venstre
og frem, mens InStrRev søger fra højre, dvs. fra slutningen af et ord og
tilbage.
....og så kan man måske(?) optimere din kode lidt, ved at finde en startpos
at søge fra, det vil jeg lege lidt med
MVH
Rune Jensen
| |
Thrane (27-10-2007)
| Kommentar Fra : Thrane |
Dato : 27-10-07 15:59 |
|
"Rune Jensen" <runeofdenmark@hotmail.com> wrote in message
news:472318e1$0$1953$456a7185@news.cirque.dk...
SNIP> en masse...
>
> MVH
> Rune Jensen
Selvfølgelig er det sidst 4 overflødigt!
Nå, men god fornøjelse!
Vil gerne se hvad du finder frem til, hvis du vil poste det til den tid!
--
Thrane
| |
Rune Jensen (29-10-2007)
| Kommentar Fra : Rune Jensen |
Dato : 29-10-07 15:10 |
|
"Thrane" skrev...
> Selvfølgelig er det sidst 4 overflødigt!
> Nå, men god fornøjelse!
>
> Vil gerne se hvad du finder frem til, hvis du vil poste det til den tid!
Hej, Thrane og andre
Jeg har nu lavet følgende - der kommer lidt kommentarer til det også:
<%
dim FolderToList, Folder, fs, f1, f, Text, fc, PosStart, PosEnd
'Angiver aktuel Folder
'Folderen, som indeholder den side, man nu er på
'Da det er en index-side, hvor filerne skal listes hver gang
'har jeg fjernet index.asp med Replace for at få
'folderen
'URL angiver URL uden querystring
'Med ovenstående bør det kunne includes på enhver side
FolderToList = replace(request.servervariables("URL"),"index.asp","")
Folder = Server.Mappath("\") & FolderToList
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(Folder)
Set fc = f.files
For Each f1 in fc
'Tjekker, at læste fil IKKE er index.asp OG at det er en .asp-fil
If Not f1.name = "index.asp" and right(f1.name,4)=".asp" Then
Set f=fs.OpenTextFile(Server.MapPath(FolderToList & f1.name), 1)
Text = f.ReadAll
PosStart=InStr(Text,"<h1>")+4
PosEnd=InStr(PosStart,Text,"</h1>")
Response.Write("<li><a href=""" & FolderToList & f1.name)
'Sørger for at få evt. Querystrings med i Linket til hver fil
if Request.Querystring.count > 0 then
response.write "?" & Request.Querystring
end if
response.write (""">")
Response.Write(Mid(Text,(PosStart),((PosEnd)-(PosStart))))
'Viser Dato for oprettelse af hver fil
Response.Write("</a> - Oprettet: ")
response.write FormatDateTime(f1.DateCreated,2)
response.write("</li>")
End If
Next
f.Close
set f = nothing
'Jeg har her brugt en close - det er da rigtigt?
set fc = nothing
%>
Kommentarer: Jeg har nu læst om RegExp, som betyder Regular Expressions. Så
vidt jeg kan forstå, så kan man bruge dette til at "strippe" en tekst
baseret på et pattern. Jeg har bare ikke kunnet finde særlig meget oplysning
om det nogen steder? Er det muligt at bruge det til ovensående i stedet for
Mid? Man ville da kunne spare rigtigt meget kode?
Jeg har også tilføjet en set fc=nothing. Jeg ved ikke, om det er rigtigt? Og
hvad er forskellen på CreateObject og Server.CreateObject?
MVH
Rune Jensen
| |
Rune Jensen (29-10-2007)
| Kommentar Fra : Rune Jensen |
Dato : 29-10-07 15:57 |
|
"Rune Jensen" skrev...
> Jeg har nu lavet følgende
Hej, Thrane, igen, og hvis andre interesserede. Du kan se listen baseret på
dit script her sidst på siden
http://www.runejensen.dk/om/index.asp
....det svære bliver at lave sortering af datoer. I øjeblikket, bliver
indlæggene vist i navneorden. Det vil jeg rode med. Og så det med RegExp.
Men helt sikkert, nu er det sk... nemt at oprette nye indlæg i min
MiniBlog - lavede lige et par tesider på under 5 minutter
MVH
Rune Jensen
| |
Thrane (29-10-2007)
| Kommentar Fra : Thrane |
Dato : 29-10-07 22:32 |
|
"Rune Jensen" <runeofdenmark@hotmail.com> wrote in message
news:4725f35d$0$1956$456a7185@news.cirque.dk...
> "Rune Jensen" skrev...
>
>> Jeg har nu lavet følgende
>
> Hej, Thrane, igen, og hvis andre interesserede. Du kan se listen baseret
> på dit script her sidst på siden
>
> http://www.runejensen.dk/om/index.asp
>
> ...det svære bliver at lave sortering af datoer. I øjeblikket, bliver
> indlæggene vist i navneorden. Det vil jeg rode med. Og så det med RegExp.
>
> Men helt sikkert, nu er det sk... nemt at oprette nye indlæg i min
> MiniBlog - lavede lige et par tesider på under 5 minutter
>
>
> MVH
> Rune Jensen
>
Super!
Jeg tror nu ikke du kan sortere efter dato.
Den læser jo rækkefølgen i folderen og lister den mens den læser dem...
--
Thrane
| |
Jens Gyldenkærne Cla~ (29-10-2007)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 29-10-07 23:36 |
|
Thrane skrev:
> Jeg tror nu ikke du kan sortere efter dato.
Jo da. Prøv at google efter "Array sort asp".
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
|
|