/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
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

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409080
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste