/ 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
Replace og loops
Fra : David Trasbo


Dato : 18-10-05 08:58

På denne side: http://indexpage.dk/artikler, bruger jeg et script som kan
ses i denne tekstfil: http://indexpage.dk/trial.txt. Det samme bliver
gentaget mange gange, hvor det kun skulle gentages en gang, og resten af
tekstfilen: http://indexpage.dk/artikler/liste.txt bliver ikke taget med.

Jeg er sikker på at der er problemer med løkken.

Jeg poster dette indlæg, da jeg har stillet spørgsmålet før, men indlægget
er forsvundet i glemmebogen, altså laaaaangt nede i arkivet...

--
David Trasbo.
Vær en god Usenet-bruger. Læs <http://usenet.dk/netikette>.



 
 
Torben Brandt (18-10-2005)
Kommentar
Fra : Torben Brandt


Dato : 18-10-05 16:21

David Trasbo wrote in dk.edb.internet.webdesign.serverside.asp:
> På denne side: http://indexpage.dk/artikler, bruger jeg et script som kan
> ses i denne tekstfil: http://indexpage.dk/trial.txt. Det samme bliver
> gentaget mange gange, hvor det kun skulle gentages en gang, og resten af
> tekstfilen: http://indexpage.dk/artikler/liste.txt bliver ikke taget med.
>
> Jeg er sikker på at der er problemer med løkken.

Prøv at flytte linien med 'Do While' op før linien med 'ReadLine'.
Det burde virke - prøv at overvej forskellen, især hvad der står indenfor
løkken i det ene og andet tilfælde.

mvh Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jørn Andersen (18-10-2005)
Kommentar
Fra : Jørn Andersen


Dato : 18-10-05 17:46

On Tue, 18 Oct 2005 09:57:34 +0200, "David Trasbo" <datra@mail.dk>
wrote:

>På denne side: http://indexpage.dk/artikler, bruger jeg et script som kan
>ses i denne tekstfil: http://indexpage.dk/trial.txt. Det samme bliver
>gentaget mange gange, hvor det kun skulle gentages en gang, og resten af
>tekstfilen: http://indexpage.dk/artikler/liste.txt bliver ikke taget med.
>
>Jeg er sikker på at der er problemer med løkken.

Nu er jeg ikke alt for stiv i FSO, men som den ser ud nu:
Do While not f.AtEndOfStream
Response.write txt
Loop
vil den bare skrive txt-variablen ud i al uendelighed (eller rettere
til serveren siger stop). Der er ikke noget der får den til at "gå
videre".
For at gøre det, skal du have .ReadLine-metoden med ind i din loop.
..ReadLine gør nemlig det, at den hopper til starten på næste linie, så
snart den har læst den aktuelle linie.

Så prøv i stedet:
Do While not f.AtEndOfStream
txt = f.Readline
txt = Replace(txt , "[kategori]", "<div class='kategori'>")
' osv.
Response.write txt
Loop

Måske vil det hjælpe at sætte et linieskift ind, hvis du har behov for
at læse din kode:
Response.write txt & vbcrlf

>Jeg poster dette indlæg, da jeg har stillet spørgsmålet før, men indlægget
>er forsvundet i glemmebogen, altså laaaaangt nede i arkivet...

I de fleste nyhedslæsere kan man sagtens finde et nyt indlæg i en
tråd, der ikke er mere end en uge gammel. Nu skulle jeg i stedet
*lede* efter det. Så medmindre vi snakker om tråde, hvor der ikke har
været indlæg i en måned eller mere, så vil jeg stærkt anbefale at
fortsætte indlæggene i samme tråd.

I øvrigt synes jeg, du skulle tage imod Jens GK's råd - medmindre du
forventer at få ret lange filer, nemlig at læse hele filen på en gang:
   txt = f.ReadAll
txt = Replace(txt , "[kategori]", "<div class='kategori'>")
' osv.
Response.write txt
- og altså ingen Do While og Loop.
At køre så mange Replace's indeni en loop er virkelig noget der
trækker ressourcer.

Og så behøver du ikke selv indsætte linieskift: I modsætningen til
..ReadLine, så tager .ReadAll også linieskiftene med.


Good luck,
Jørn

--
Jørn Andersen,
Brønshøj

David Trasbo (19-10-2005)
Kommentar
Fra : David Trasbo


Dato : 19-10-05 09:53

nes jeg, du skulle tage imod Jens GK's råd - medmindre du
> forventer at få ret lange filer, nemlig at læse hele filen på en gang:
> txt = f.ReadAll
> txt = Replace(txt , "[kategori]", "<div class='kategori'>")
> ' osv.
> Response.write txt
> - og altså ingen Do While og Loop.

Det virker! Fint, tak for hjælpen.

> Good luck,

Tak.

--
David Trasbo.
Vær en god Usenet-bruger. Læs <http://usenet.dk/netikette>.



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste