/ 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
smart if-then-else sætning ønskes
Fra : Ukendt


Dato : 08-03-03 23:20

Jeg har lavet noget sprogversionering til en asp side, dog har jeg et par
enkelt mangler som jeg gerne vil prøve at gøre smartere end jeg selv kan
komme på

sproget henter siden sådan:

strSprog = request.querystring("sprog")

strSprog kan så enten være da, uk, de, se, fr

på selve siden er der et [ Tilbage ] link der gerne skal passe til sproget.

Jeg kan umiddelbart selv komme på noget ala dette

if strSprog="da" then
strBack="Tilbage"
if strSprog="de" then
strBack="Zurück"
if strSprog="uk" then
strBack="Back"
if strSprog="se" then
strBack="Tilbaka"
else
strBack="Dos"
end if

Kan man lave det smartere eller mere enkelt end dette? Gode ideer
efterlyses, gerne med en kort forklaring på hvorfor den nye ide er bedre.
Fortsat god weekend.


--

Mvh / Regards
-=< Christian >=-
What capital has 164 letters in its name? See my web page to find out.
http://www.cmnielsen.dk ICQ: 25308942
Destiny is not a matter of chance it is a matter of choice




 
 
Jørn Andersen (09-03-2003)
Kommentar
Fra : Jørn Andersen


Dato : 09-03-03 00:07

On Sat, 8 Mar 2003 23:20:15 +0100, "Christian M. Nielsen"
<christian(AT)cmnielsen(DOT)dk> wrote:

>Jeg kan umiddelbart selv komme på noget ala dette
>
>if strSprog="da" then
>strBack="Tilbage"
>if strSprog="de" then
>strBack="Zurück"
>if strSprog="uk" then
>strBack="Back"
>if strSprog="se" then
>strBack="Tilbaka"
>else
>strBack="Dos"
>end if
>
>Kan man lave det smartere eller mere enkelt end dette? Gode ideer
>efterlyses, gerne med en kort forklaring på hvorfor den nye ide er bedre.

Problemet med din opstilling er, at alle muligheder bliver testet.
Selv hvis sprog allerede er fundet som "da", bliver de resterende også
testet, hvilket er spild.
Den vil i øvrigt heller ikke virke, hvis de står på to linier:

>if strSprog="da" then
>strBack="Tilbage"

- men kun hvis den står:
if strSprog="da" then strBack="Tilbage"

Det du har behov for er ElseIf:

If strSprog="da" then
strBack="Tilbage"
ElseIf strSprog="de" Then
strBack="Zurück"
ElseIf strSprog="uk" Then
strBack="Back"
ElseIf strSprog="se" Then
strBack="Tilbaka"
Else
strBack="Dos"
End If

Hvis "da" er fundet, vil de øvrige ikke blive testet.

Nogle foretrækker Select Case:
Select Case strSprog
Case "da"
strBack = "Tilbage"
Case "de"
strBack = "Zurück"
Case "uk"
strBack = "Back"
Case "se"
strBack = "Tilbaka"
Case Else
strBack = "Dos"
End Select

Mig bekendt er der ikke nogen ydelsesmæssig forskel på at bruge Select
Case i forhold til If - Then - ElseIf - Else
Se i øvrigt:
<url: http://www.html.dk/tutorials/asp/lektion6.asp>


Et mere generelt spørgsmål er måske, om det er særligt optimalt at
"hardcode" hvert enkelt ord på denne måde.

Umiddelbart kunne jeg forestille mig, at selv hvis det kun er et par
dusin ord, så ville det være enklere (og i hvert fald lettere at
vedligeholde) at lægge ordene i en database, trække dem ud i et array
afhængigt af sprogvalg og så indsætte ordene med arrMyArray(x), hvor x
er det pågældende ords nummer.
Koden vil så ikke være sprogafhængig andet end i selve det sprogvalg,
der trækker ordene ud af databasen.

>Fortsat god weekend.

I lige måde.

Good luck!

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

Ukendt (09-03-2003)
Kommentar
Fra : Ukendt


Dato : 09-03-03 00:36

"Jørn Andersen" <jorn@jorna.dk> wrote in message
news:9msk6v04m88di36ohk9qtlevskm9h542pr@4ax.com...

> Problemet med din opstilling er, at alle muligheder bliver testet.
> Selv hvis sprog allerede er fundet som "da", bliver de resterende også
> testet, hvilket er spild.

Det var også min umiddelbare tanke, men var ikke helt sikker

> Den vil i øvrigt heller ikke virke, hvis de står på to linier:
>
> >if strSprog="da" then
> >strBack="Tilbage"
>
> - men kun hvis den står:
> if strSprog="da" then strBack="Tilbage"

Du angiver nedenfor at det skal være på 2 linier, er det korrekt opfattet?
Hvorfor er der forskel og hvilken?

> Det du har behov for er ElseIf:
>
> If strSprog="da" then
> strBack="Tilbage"
> ElseIf strSprog="de" Then
> strBack="Zurück"
> ElseIf strSprog="uk" Then
> strBack="Back"
> ElseIf strSprog="se" Then
> strBack="Tilbaka"
> Else
> strBack="Dos"
> End If
>
> Hvis "da" er fundet, vil de øvrige ikke blive testet.

Smart!

> Mig bekendt er der ikke nogen ydelsesmæssig forskel på at bruge Select
> Case i forhold til If - Then - ElseIf - Else

ok, tror case er mit valg, for der kan man vel sætte flere str's ind? ala

Case "da"
strBack = "Tilbage"
strNext = "Næste"
strHome = "Hjem"
etc.

Men det kan man måske også i if then else delen?? Har ikke lige testet det
(endnu!)

Mvh / Regards
-=< Christian >=-
What capital has 164 letters in its name? See my web page to find out.
http://www.cmnielsen.dk ICQ: 25308942
Destiny is not a matter of chance it is a matter of choice



Jørn Andersen (09-03-2003)
Kommentar
Fra : Jørn Andersen


Dato : 09-03-03 00:49

On Sun, 9 Mar 2003 00:36:05 +0100, "Christian M. Nielsen"
<christian(AT)cmnielsen(DOT)dk> wrote:

>"Jørn Andersen" <jorn@jorna.dk> wrote in message
>news:9msk6v04m88di36ohk9qtlevskm9h542pr@4ax.com...
>> Den vil i øvrigt heller ikke virke, hvis de står på to linier:
<snip>
>> - men kun hvis den står:
>> if strSprog="da" then strBack="Tilbage"
>
>Du angiver nedenfor at det skal være på 2 linier, er det korrekt opfattet?
>Hvorfor er der forskel og hvilken?

I eksemplet ovenfor står den alene (et afsluttet statement) - og den
kan stå enten på én linie:

If strSprog = "da" Then strBack = "Tilbage"

Eller på flere linier:

If strSprog = "da" Then
strBack = "Tilbage"
End If


>ok, tror case er mit valg, for der kan man vel sætte flere str's ind? ala
>
> Case "da"
>strBack = "Tilbage"
>strNext = "Næste"
>strHome = "Hjem"
>etc.

Det kan du sagtens.

>Men det kan man måske også i if then else delen??

Ja, det kan du også:
If blabla Then
statement1
statement2
statement3
ElseIf blablabla Then
statement4
statement5
statement6
Else
statement7
statement8
statement9
End If

Det er vist kun smag og behag om man foretrækker det ene frem for det
andet.

Good luck!

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

Kasper Kamp Simonsen (09-03-2003)
Kommentar
Fra : Kasper Kamp Simonsen


Dato : 09-03-03 09:08

Hejsa..

> Det er vist kun smag og behag om man foretrækker det ene frem for det
> andet.

Så vidt jeg kan læse mig til, i wrox's beginning vb.net, så er det bedst at
bruge en select case, da man i en if elseif else sætning altid tester alle
udtrykkene, men om det er rigtigt skal jeg ikke gøre mig klog på.

/Kasper



Jørn Andersen (09-03-2003)
Kommentar
Fra : Jørn Andersen


Dato : 09-03-03 16:41

On Sun, 9 Mar 2003 09:07:53 +0100, "Kasper Kamp Simonsen"
<anyone@anywhere.dk> wrote:

>> Det er vist kun smag og behag om man foretrækker det ene frem for det
>> andet.
>
>Så vidt jeg kan læse mig til, i wrox's beginning vb.net, så er det bedst at
>bruge en select case, da man i en if elseif else sætning altid tester alle
>udtrykkene, men om det er rigtigt skal jeg ikke gøre mig klog på.

Hej Kasper,
Det lyder lidt skørt i mine ører at gøre det, men jeg skal ikke kunne
sige, hvad man gør i .NET.
Så vidt jeg kan læse af WROX's "Beginning ASP 3.0", bliver resterende
betingelser skippet, så snart man har fundet én der er sand.

I bogen er argumentationen for 'Select Case' da også primært at få en
lettere overskuelig kode (så snart der er mere end to valg).

Desuden kan man sige, at 'Select Case' er god til at teste mange
udfald af et enkelt udtryk. Derimod kan den ikke teste udtryk med
flere betingelser.

Ex hvor Select Case er oplagt:

Select Case strUgedag
Case "mandag"
....
Case "tirsdag"
....
' Følgende linie viser enkelhed hvor flere udfald
' giver samme resultat:
Case "onsdag", "torsdag"
....
' osv.
Case Else
....
End Select


Derimod kan denne ikke laves med Select Case:

If strUgedag = "mandag" And datDato > 10 Then
....
ElseIf strUgedag = " And datDato < 15 Then
....
Else
....
End If


Konklusionen (min altså) er, at If ... Then altid kan bruges, men at
Select Case nogle gange giver enklere kode.

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

Kasper Kamp Simonsen (10-03-2003)
Kommentar
Fra : Kasper Kamp Simonsen


Dato : 10-03-03 11:48


"Jørn Andersen" <jorn@jorna.dk> wrote in message

> Det lyder lidt skørt i mine ører at gøre det, men jeg skal ikke kunne
> sige, hvad man gør i .NET.

Ganske enig.

> Konklusionen (min altså) er, at If ... Then altid kan bruges, men at
> Select Case nogle gange giver enklere kode.

Også her er jeg enig.

/Kasper



Jesper Petersen (09-03-2003)
Kommentar
Fra : Jesper Petersen


Dato : 09-03-03 16:11

Hej Christian.
Du kan lave en case sætning.
Select case strSprog
Case "da"
strBack="Tilbage"
Case "de"
strBack="Züruck"   
Case "uk"
strBack="Back"
Case "se"
strBack="Tilbaka"
Case else
strBack="Dos"
End Select

Mvh.
Jesper.


Christian M. Nielsen wrote in dk.edb.internet.webdesign.serverside.asp:
> Jeg har lavet noget sprogversionering til en asp side, dog har jeg et par
> enkelt mangler som jeg gerne vil prøve at gøre smartere end jeg selv kan
> komme på
>
> sproget henter siden sådan:
>
> strSprog = request.querystring("sprog")
>
> strSprog kan så enten være da, uk, de, se, fr
>
> på selve siden er der et [ Tilbage ] link der gerne skal passe til
sproget.
>
> Jeg kan umiddelbart selv komme på noget ala dette
>
> if strSprog="da" then
> strBack="Tilbage"
> if strSprog="de" then
> strBack="Züruck"
> if strSprog="uk" then
> strBack="Back"
> if strSprog="se" then
> strBack="Tilbaka"
> else
> strBack="Dos"
> end if
>
> Kan man lave det smartere eller mere enkelt end dette? Gode ideer
> efterlyses, gerne med en kort forklaring på hvorfor den nye ide er bedre.
> Fortsat god weekend.
>
>
> --
>
> Mvh / Regards
> -=< Christian >=-
> What capital has 164 letters in its name? See my web page to find out.
> http://www.cmnielsen.dk ICQ: 25308942
> Destiny is not a matter of chance it is a matter of choice
>
>
>


--
Danmarks største specialiserede IT jobdatabase
- Udelukkende med IT- og internetrelaterede jobs
- Opret en profil og lad drømmejobbet finde dig
KLIK HER! => http://www.html.dk/job

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

Månedens bedste
Årets bedste
Sidste års bedste