/ 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
finde antal af et bogstav i tekststreng
Fra : Morten Kristensen


Dato : 18-03-08 08:18

Hej

Jeg ønsker at lave et program, der som input i to tekstfelter
modtager henholdsvis en tekst og et tegn, og som herefter viser
hvor mange gange det indtastede tegn forekommer i teksten.

F.eks:
Input: Dette er en tekst
Søgetegn: t
Output: 4

Jeg har startet som vist nedenunder, men kan ikke overskue
hvordan jeg ved hjælp af de indbyggede ASP funktioner får udført
beregningen:

<form method="post" action="opgave6.asp?action=vis">
Indtast en tekst: <input type="text" name="tekst" value="indtast
en tekst"><br/>
Indtast et bogstav: <input type="text" maxlength="1" size="1"
name="bogstav" value=""><br/>
<input type="submit" value="udfør">
</form>
<% if request.querystring("action") = "vis" then
vartekst = request.form("tekst")
varbogstav = request.form("bogstav")
....

VH Morten

--
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

 
 
Ukendt (18-03-2008)
Kommentar
Fra : Ukendt


Dato : 18-03-08 15:19

"Morten Kristensen" <noreply@noreply.dk> wrote in message
news:47df6cb5$0$90269$14726298@news.sunsite.dk...
> Hej
>
> Jeg ønsker at lave et program, der som input i to tekstfelter
> modtager henholdsvis en tekst og et tegn, og som herefter viser
> hvor mange gange det indtastede tegn forekommer i teksten.
>
> F.eks:
> Input: Dette er en tekst
> Søgetegn: t
> Output: 4

Hmm. .." action="opgave6.asp " opgave 6 ?, er det lektier?

Never mind, prøv at se om du kan få noget ud af dette her:

<%@ LANGUAGE = VBScript %><% Option Explicit %><%
Dim vartekst
Dim varbogstav
Dim wtekst
Dim antal

if Request.Servervariables("REQUEST_METHOD") = "POST" then
varbogstav = Request.Form("varbogstav")
vartekst = Request.Form("vartekst")
wtekst = Replace(vartekst,varbogstav,"")
antal = ( len(vartekst) - len(wtekst) ) / len(varbogstav)
Response.Redirect "bogstavtest.asp?vartekst="+ vartekst+"&varbogstav="
+ varbogstav + "&antal=" + cStr(antal)
Response.End
end if
%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<title>ASP bogstav test</title>
</head>

<body>
<h3>ASP bogstav test</h3>
<h4>Sidste antal = <% = Request.QueryString("antal")%></h4>
<form action="bogstavtest.asp" method = "post">
<fieldset>
<label for="vartekst">Tekst her:</label>
<textarea name="vartekst" id = "vartekst"><% =
Request.QueryString("vartekst")%></textarea> <br/>
<label for="varbogstav">Bogstav(er):</label>
<input type="text" name="varbogstav" id="varbogstav" value="<% =
Request.QueryString("varbogstav")%>"/>
<input type="submit" name="submit" id="submit" value="Vis antal" />
</fieldset>
</form>
</body>
</html>


Prøv også at skrive 'te' i bogstavfeltet.

--
Med venlig hilsen/Best regards
Stig Johansen




Morten Kristensen (18-03-2008)
Kommentar
Fra : Morten Kristensen


Dato : 18-03-08 19:22

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> "Morten Kristensen" <noreply@noreply.dk> wrote in message
> news:47df6cb5$0$90269$14726298@news.sunsite.dk...
> > Hej
> >
> > Jeg ønsker at lave et program, der som input i to tekstfelter
> > modtager henholdsvis en tekst og et tegn, og som herefter viser
> > hvor mange gange det indtastede tegn forekommer i teksten.
> >
> > F.eks:
> > Input: Dette er en tekst
> > Søgetegn: t
> > Output: 4
>
> Hmm. .." action="opgave6.asp " opgave 6 ?, er det lektier?

Næh nej. Jeg holder skam påskeferie - men opgaven er en del af flere opgaver,
jeg har fundet i en bog - og for at bevare overblikket over hvilke opgaver jeg
har løst, kalder jeg dem nøjagtigt det samme som i bogen. (eller også er det
bare mangel på kreativitet:))
>
> Never mind, prøv at se om du kan få noget ud af dette her:
>
1 <%@ LANGUAGE = VBScript %><% Option Explicit %><%
2 Dim vartekst
3 Dim varbogstav
4 Dim wtekst
5 Dim antal
6
7 if Request.Servervariables("REQUEST_METHOD") = "POST" then
8 varbogstav = Request.Form("varbogstav")
9 vartekst = Request.Form("vartekst")
10 wtekst = Replace(vartekst,varbogstav,"")
11 antal = ( len(vartekst) - len(wtekst) ) / len(varbogstav)
12 Response.Redirect "bogstavtest.asp?vartekst="+ vartekst+"&varbogstav="
&gt; + varbogstav + "&antal=" + cStr(antal)
13 Response.End
14 end if
15 %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
16 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
17 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
18 <head>
19 <title>ASP bogstav test</title>
20 </head>
21
22 <body>
23 <h3>ASP bogstav test</h3>
24 <h4>Sidste antal = <% = Request.QueryString("antal")%></h4>
25 <form action="bogstavtest.asp" method = "post">
26 <fieldset>
27 <label for="vartekst">Tekst her:</label>
28 <textarea name="vartekst" id = "vartekst"><% =
&gt; Request.QueryString("vartekst")%></ textarea> <br/>
29 <label for="varbogstav">Bogstav(er):</label>
30 <input type="text" name="varbogstav" id="varbogstav" value="<% =
&gt; Request.QueryString("varbogstav")%>"/>
31 <input type="submit" name="submit" id="submit" value="Vis antal" />
32 </fieldset>
33 </form>
34 </body>
35 </html>
>
>
> Prøv også at skrive 'te' i bogstavfeltet.
>
> --
> Med venlig hilsen/Best regards
> Stig Johansen
>
Hej Stig og god påske.

Tak for et hurtigt og velfungerende svar. Ja faktisk kan dit eksempel jo mere
end krævet. Virkelig flot. - og igen mange tak for din gode besvarelse.
Jeg var selv inde på at bruge len(vartekst) - men absolut ikke med nogen heldig
udgang :)

Jeg forstår desværre ikke helt hele eksemplet. Jeg har givet koden for oven
linjenumre og nedenfor prøvet at kommentere linje for linje, for at sikre at
jeg lærer af eksemplet og forstår.
Måske vil du (eller en anden) rette mine misforståelser og forklare linje
10-14?

Linje 1: <% @ language = vbscript %> - bør man altid starte vbScript således?
Jeg plejer blot at starte min ASP kode med et start tag - og så derudaf. :)
Linje 2-5: variablerne erklæres (som krævet med "<% option explicit %>")
Linje 7-9: variablerne varbogstav og vartekst får tildelt værdier fra
formularens inputfelter når metoden "post" anvendes.
Linje 10-14: forstår dem simpelthen ikke 100 % - hvor meget jeg end forsøger
Linje 15-17: doctype og stanard for html
Linje 18-20: head med title
Linje 22-23: start på body og h3 overskrift
Linje 24: sidste antal - værdien "antal" findes fra querystringen
Linje 25-35: formular med inputfelter og afslutning på formular, body og html

I linje 27 og 29 bruger du <label> til teksten foran input-felterne. Det kunne
vel også undlades - og bare stå som tekst uden label?

På forhånd tak.

Med venlig hilsen

Morten.

--
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

Stig Johansen (18-03-2008)
Kommentar
Fra : Stig Johansen


Dato : 18-03-08 20:25

Morten Kristensen wrote:

> 8 varbogstav = Request.Form("varbogstav")

Ger henter vi bogstav(erne) ind i variablen varbogstav
Den vil eksempelvis indeholde "te".

> 9 vartekst = Request.Form("vartekst")

Her henter vi tilsvarende teksten ind, eks. "Dette er en test".

> 10 wtekst = Replace(vartekst,varbogstav,"")

Her replacer (udskifter) vi teksten "te" til ingenting, og lægger den i
wtekst.
I det her tilfælde bliver det til "Det er en st"

> 11 antal = ( len(vartekst) - len(wtekst) ) / len(varbogstav)

Originalen "Dette er en test" har 16 tegn = len(vartekst)
Den udskiftede "Det er en st" har 12 tegn = len(wtekst)
Antallet af tegn "te" vi sæger efter er 2 = / len(varbogstav)
Så regnestykker bliver (16 - 12) / 2, dvs. 2 forekomster af "te"

> 12 Response.Redirect "bogstavtest.asp?vartekst="+
> vartekst+"&varbogstav=" &gt; + varbogstav + "&antal=" + cStr(antal)

Denne her kalder sig selv, hvor fekterne i Request.Form lægges over i
URI'en, så det er en slags 'gemmefunktion'. Du kan se oppe i adresselinien
hvad der sker.

> 13 Response.End

Ovenstående giver en omdirigering, så det er en slags 'slut' fordi fen
bliver hentet igen.

> 14 end if
> Jeg forstår desværre ikke helt hele eksemplet. Jeg har givet koden for
> oven linjenumre og nedenfor prøvet at kommentere linje for linje, for at
> sikre at jeg lærer af eksemplet og forstår.
> Måske vil du (eller en anden) rette mine misforståelser og forklare linje
> 10-14?
>
> Linje 1: <% @ language = vbscript %> - bør man altid starte vbScript
> således? Jeg plejer blot at starte min ASP kode med et start tag - og så
> derudaf. :)

Det er vel smag og behag. ASP kan også køre jscript, så jeg synes det er en
god ide at vise at det er vbscript.

> Linje 2-5: variablerne erklæres (som krævet med "<% option
> explicit %>")

Option explicit gør at det er nogenlunde selvkorrigerende mht fejl.
Hvis den ikke er sat, og man laver en slåfejl laver ASP'et bare en ny
variabel uden at give fejl.
Det er vel en afvejning om man 'gider' at Dim'e eller man vil fejlsøge
bagefter.

> I linje 27 og 29 bruger du <label> til teksten foran input-felterne. Det
> kunne vel også undlades - og bare stå som tekst uden label?

Det var noget jeg klippede sammen mens jeg ventede på en download, så det
var hvad jeg lige havde at klippe kllistre efter.

Hvis man bruger <label> kan man style med CSS, men det er nok ovre i .html
gruppen.

--
Med venlig hilsen
Stig Johansen

Morten Kristensen (18-03-2008)
Kommentar
Fra : Morten Kristensen


Dato : 18-03-08 20:42

Hej Stig.

Tusind tak for hjælpen. Jeg forstår det hele nu - og er temmelig imponeret
over hvor enkelt det kan laves. En rigtig god forklaring - så selv jeg
forstår :)

Det er super lækkert for en nybegynder, at få så god hjælp. Jeg arbejder
videre med de nye ting jeg har lært, og vil forsøge at få bedre styr på mine
betingelser, funktioner og brug af querystringen.

MVH Morten


Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> Morten Kristensen wrote:
>
> > 8 varbogstav = Request.Form("varbogstav")
>
> Ger henter vi bogstav(erne) ind i variablen varbogstav
> Den vil eksempelvis indeholde "te".
>
> > 9 vartekst = Request.Form("vartekst")
>
> Her henter vi tilsvarende teksten ind, eks. "Dette er en test".
>
> > 10 wtekst = Replace(vartekst,varbogstav,"")
>
> Her replacer (udskifter) vi teksten "te" til ingenting, og lægger den i
> wtekst.
> I det her tilfælde bliver det til "Det er en st"
>
> > 11 antal = ( len(vartekst) - len(wtekst) ) / len(varbogstav)
>
> Originalen "Dette er en test" har 16 tegn = len(vartekst)
> Den udskiftede "Det er en st" har 12 tegn = len(wtekst)
> Antallet af tegn "te" vi sæger efter er 2 = / len(varbogstav)
> Så regnestykker bliver (16 - 12) / 2, dvs. 2 forekomster af "te"
>
> > 12 Response.Redirect "bogstavtest.asp?vartekst="+
> > vartekst+"&varbogstav=" > + varbogstav + "&antal=" + cStr(antal)
>
> Denne her kalder sig selv, hvor fekterne i Request.Form lægges over i
> URI'en, så det er en slags 'gemmefunktion'. Du kan se oppe i adresselinien
> hvad der sker.
>
> > 13 Response.End
>
> Ovenstående giver en omdirigering, så det er en slags 'slut' fordi fen
> bliver hentet igen.
>
>
> Option explicit gør at det er nogenlunde selvkorrigerende mht fejl.
> Hvis den ikke er sat, og man laver en slåfejl laver ASP'et bare en ny
> variabel uden at give fejl.
> Det er vel en afvejning om man 'gider' at Dim'e eller man vil fejlsøge
> bagefter.
>
>
> --
> Med venlig hilsen
> Stig Johansen


--
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

Morten Kristensen (18-03-2008)
Kommentar
Fra : Morten Kristensen


Dato : 18-03-08 20:43

Hej Stig.

Tusind tak for hjælpen. Jeg forstår det hele nu - og er temmelig imponeret
over hvor enkelt det kan laves. En rigtig god forklaring - så selv jeg
forstår :)

Det er super lækkert for en nybegynder, at få så god hjælp. Jeg arbejder
videre med de nye ting jeg har lært, og vil forsøge at få bedre styr på mine
betingelser, funktioner og brug af querystringen.

MVH Morten


Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> Morten Kristensen wrote:
>
> > 8 varbogstav = Request.Form("varbogstav")
>
> Ger henter vi bogstav(erne) ind i variablen varbogstav
> Den vil eksempelvis indeholde "te".
>
> > 9 vartekst = Request.Form("vartekst")
>
> Her henter vi tilsvarende teksten ind, eks. "Dette er en test".
>
> > 10 wtekst = Replace(vartekst,varbogstav,"")
>
> Her replacer (udskifter) vi teksten "te" til ingenting, og lægger den i
> wtekst.
> I det her tilfælde bliver det til "Det er en st"
>
> > 11 antal = ( len(vartekst) - len(wtekst) ) / len(varbogstav)
>
> Originalen "Dette er en test" har 16 tegn = len(vartekst)
> Den udskiftede "Det er en st" har 12 tegn = len(wtekst)
> Antallet af tegn "te" vi sæger efter er 2 = / len(varbogstav)
> Så regnestykker bliver (16 - 12) / 2, dvs. 2 forekomster af "te"
>
> > 12 Response.Redirect "bogstavtest.asp?vartekst="+
> > vartekst+"&varbogstav=" > + varbogstav + "&antal=" + cStr(antal)
>
> Denne her kalder sig selv, hvor fekterne i Request.Form lægges over i
> URI'en, så det er en slags 'gemmefunktion'. Du kan se oppe i adresselinien
> hvad der sker.
>
> > 13 Response.End
>
> Ovenstående giver en omdirigering, så det er en slags 'slut' fordi fen
> bliver hentet igen.
>
>
> Option explicit gør at det er nogenlunde selvkorrigerende mht fejl.
> Hvis den ikke er sat, og man laver en slåfejl laver ASP'et bare en ny
> variabel uden at give fejl.
> Det er vel en afvejning om man 'gider' at Dim'e eller man vil fejlsøge
> bagefter.
>
>
> --
> Med venlig hilsen
> Stig Johansen


--
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

Rune Jensen (20-03-2008)
Kommentar
Fra : Rune Jensen


Dato : 20-03-08 10:07

On Mar 18, 7:21 pm, Morten Kristensen <mor...@noreply.dk> wrote:

> I linje 27 og 29 bruger du <label> til teksten foran input-felterne. Det kunne
> vel også undlades - og bare stå som tekst uden label?

Label er, udover muligheden for styling, en forøgelse af
brugervenligheden, i og med den tilknytter teksten i labelen med input-
felt eller checkbox mv. med en ID. Jeg er ikke helt inde i det
konkrete, men jeg har også lært, det er sådan man gør, har egentlig
bare aldrig tænkt videre over det. Men så vidt jeg husker, vil teksten
på labelen blive læst op af en skærmlæser, som bruges af blinde, og så
ved man, at dét inputfelt skal have et indhold, som labelen siger - et
klik på labelen vil iøvrigt også føre til input-feltet - eller toggle
en checkbox, hvis det er, og så er det jo nemmere at ramme en tekst,
end en lille box.

Erik Ginnerskov, har på...

http://www.hjemmesideskolen.dk/html/formular.asp?id=formyd
og
http://www.hjemmesideskolen.dk/html/formular.asp?id=formin

...et par ord om forme, og hvordan de bygges korrekt - generelt er det
en god idé at opbygge forme, så de følger W3.orgs standarder, sådan at
koden validerer, fordi korrekt kode også hjælper til brugervenligheden
(og det kan også hjælpe en selv, når der skal rettes senere hen).


MVH
Rune Jensen

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

Månedens bedste
Årets bedste
Sidste års bedste