|
| select casesætning med to tekstbokse Fra : Tina Hoffmann |
Dato : 03-01-02 19:25 |
|
Jeg forsøger at lave en select case-sætning således at når man skriver et
bestemt tal i tekstboks1 og et bestemt tal i tekstboks2, så kommer
fremkommer et tal i tekstboks3. Dette skal så kunne gøres med forskellige
kombinationer af tal som så udløser forskellige tal i tekstboks3. Ved kun en
tekstboks skriver man jo:
select case text1.text
case 1
text3.text = 2
end select
Hvad skriver man så ved en kombination af to?
| |
Mikkel Bundgaard (03-01-2002)
| Kommentar Fra : Mikkel Bundgaard |
Dato : 03-01-02 20:11 |
|
"Tina Hoffmann" <tina@archmail.com> wrote in message
news:ik1Z7.487$JK2.918274222@news.orangenet.dk...
> Jeg forsøger at lave en select case-sætning således at når man
> skriver et bestemt tal i tekstboks1 og et bestemt tal i
tekstboks2,
> så kommer fremkommer et tal i tekstboks3. Dette skal så kunne
> gøres med forskellige kombinationer af tal som så udløser
> forskellige tal i tekstboks3. Ved kun en tekstboks skriver man jo:
> select case text1.text
> case 1
> text3.text = 2
> end select
> Hvad skriver man så ved en kombination af to?
Hej Tina
Du kan skrive noget ala:
Select Case text1.text
Case 1
Select Case text2.text
Case 1
text3.text = "1+1 = 2"
Case 2
text3.text = "1+2 = 3"
End Select
End Select
Dette bliver dog noget rodet, så jeg ville nok foretrække en if
elseif
konstruktion.
If betingelse Then
[sætninger]
[ElseIf betingelse-n Then
[elseifsætninger] ...
[Else
[elsesætninger]]
End If
Men hvad er du prøver at lave, det kan være, at der findes en
smukkere løsning .
--
Mikkel Bundgaard
IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum
| |
Tomas Christiansen (03-01-2002)
| Kommentar Fra : Tomas Christiansen |
Dato : 03-01-02 22:40 |
|
Tina Hoffmann skrev:
> select case text1.text
> case 1
> text3.text = 2
> end select
> Hvad skriver man så ved en kombination af to?
Du berører en helt generelt mangel ved alle de programmeringssprog,
som jeg kender: Manglen på muligheden for en generel metode til at
kombinere to variabler eller udtryk i en betingelsessætning.
Det kan f.eks. være smart, hvis man har tre heltalsvariabler b1, b2 og
b3, at man kunne kombinere dem som:
Select Case b1, b2, b3
Case 1, 27, 5
'Gør noget
Case 0, 500, 33
'Gør noget andet
Case Else
'Gør noget tredie
End Select
Men det kan man ikke... man er i stedet nødt til i hver enkelt
tilfælde at se på hvad der er bedst/smartest/nemmest - det afhænger
helt af den enkelte situation!
Hvis man absolut VIL bruge en case-sætning, kan man benytte et lille
trick - se nu denne omskrivning af ovenstående select-sætning:
Select Case True
Case b1 = 1 And b2 = 27 And b3 = 5
'Gør noget
Case b1 = 0 And b2 = 500 And b3 = 33
'Gør noget andet
Case Else
'Gør noget tredie
End Select
Det svarer naturligvis præcis til følgende if-sætninger:
If b1 = 1 And b2 = 27 And b3 = 5 Then
'Gør noget
ElseIf b1 = 0 And b2 = 500 And b3 = 33 Then
'Gør noget andet
Else
'Gør noget tredie
EndIf
Hvorved man kan se at der, i dette tilfælde, ikke rigtig er noget
sparet ved at bruge en case-sætning fremfor if-sætninger.
Helt afhængig af HVAD det egentlig er, at du ønsker at gøre, kan det
dog være at der findes en bedre løsning for dig. Du må derfor uddybe
nærmere hvad det er, at du vil, hvis vi skal komme med et bedre bud.
-------
Tomas
| |
Carsten Suurland (04-01-2002)
| Kommentar Fra : Carsten Suurland |
Dato : 04-01-02 09:40 |
|
Hej Tomas
Den Select Case du skitserer er faktisk helt almindelig syntax...
Gyldig Select Case syntax inkluderer:
* Case 1
* Case 1, 2
* Case 2 to 5
* Case Is ...
osv, osv.
Så det du efterlyser er absolut muligt...
/Carsten Suurland
| |
Carsten Suurland (04-01-2002)
| Kommentar Fra : Carsten Suurland |
Dato : 04-01-02 09:45 |
|
Hej Tomas... igen
Jeg har vist misforstået dit indlæg...
Ved endnu en læsning kan jeg godt se, at det jeg skitserede ikke var det du
efterlyste...
Så du har ret... det kan ikke lade sig gøre direkte, men det kan dog lade
sig gøre ved at kombinere en funktion i dine case-sætninger, med f.eks en
Select Case True.
Select Case True
Case... Funktionskald der returnerer Sand eller Falsk, Funktionskald...
Case...
End Select
/Carsten Suurland
| |
Tomas Christiansen (04-01-2002)
| Kommentar Fra : Tomas Christiansen |
Dato : 04-01-02 12:49 |
|
Carsten Suurland skrev:
> Jeg har vist misforstået dit indlæg...
Det vil jeg ubetinget give dig ret i.
> Ved endnu en læsning kan jeg godt se, at det jeg skitserede ikke var
> det du efterlyste...
> Så du har ret... det kan ikke lade sig gøre direkte, men det kan dog
> lade sig gøre ved at kombinere en funktion i dine case-sætninger, med
> f.eks en Select Case True.
....som jo netop er det, som jeg viste et eksempel på... ???
-------
Tomas
| |
Harald Staff (04-01-2002)
| Kommentar Fra : Harald Staff |
Dato : 04-01-02 11:54 |
|
Hei Thomas
Jeg pleier å løse dette -om forholdene er kontrollerte med definerede
maxverdier- ved å multiplisere dem sammen efter viktighet. F.eks. la os si
at A,B og C er i prioritert rekkefølge:
Kriterium = A*10000+B*100+C
Select case kriterium
case 1 to 99 (a og b er 0)
case 100 to 9999(a er 0, kontroller b og c)
case else (kontroller alle)
End select
Meget enklere er det med boolske variabler -de kombineres til et desimaltal
fra binært:
1101 (=13) betyr at A,B og D er sande, C er usand.
Beste hilsen Harald
Tomas Christiansen <toc@blikroer.removethis.dk> skrev i
news:a12j1q$1k9$1@news.cybercity.dk...
> Du berører en helt generelt mangel ved alle de programmeringssprog,
> som jeg kender: Manglen på muligheden for en generel metode til at
> kombinere to variabler eller udtryk i en betingelsessætning.
>
> Det kan f.eks. være smart, hvis man har tre heltalsvariabler b1, b2 og
> b3, at man kunne kombinere dem som:
>
> Select Case b1, b2, b3
> Case 1, 27, 5
> 'Gør noget
> Case 0, 500, 33
> 'Gør noget andet
> Case Else
> 'Gør noget tredie
> End Select
>
> Men det kan man ikke... man er i stedet nødt til i hver enkelt
> tilfælde at se på hvad der er bedst/smartest/nemmest - det afhænger
> helt af den enkelte situation!
>
> Hvis man absolut VIL bruge en case-sætning, kan man benytte et lille
> trick - se nu denne omskrivning af ovenstående select-sætning:
>
> Select Case True
> Case b1 = 1 And b2 = 27 And b3 = 5
> 'Gør noget
> Case b1 = 0 And b2 = 500 And b3 = 33
> 'Gør noget andet
> Case Else
> 'Gør noget tredie
> End Select
>
> Det svarer naturligvis præcis til følgende if-sætninger:
>
> If b1 = 1 And b2 = 27 And b3 = 5 Then
> 'Gør noget
> ElseIf b1 = 0 And b2 = 500 And b3 = 33 Then
> 'Gør noget andet
> Else
> 'Gør noget tredie
> EndIf
>
> Hvorved man kan se at der, i dette tilfælde, ikke rigtig er noget
> sparet ved at bruge en case-sætning fremfor if-sætninger.
>
> Helt afhængig af HVAD det egentlig er, at du ønsker at gøre, kan det
> dog være at der findes en bedre løsning for dig. Du må derfor uddybe
> nærmere hvad det er, at du vil, hvis vi skal komme med et bedre bud.
>
> -------
> Tomas
>
| |
Tina Hoffmann (05-01-2002)
| Kommentar Fra : Tina Hoffmann |
Dato : 05-01-02 15:36 |
|
Tak for hjælpen, jeg har fået det til at virke med variabler
"Tina Hoffmann" <tina@archmail.com> skrev i en meddelelse
news:ik1Z7.487$JK2.918274222@news.orangenet.dk...
> Jeg forsøger at lave en select case-sætning således at når man skriver et
> bestemt tal i tekstboks1 og et bestemt tal i tekstboks2, så kommer
> fremkommer et tal i tekstboks3. Dette skal så kunne gøres med forskellige
> kombinationer af tal som så udløser forskellige tal i tekstboks3. Ved kun
en
> tekstboks skriver man jo:
> select case text1.text
> case 1
> text3.text = 2
> end select
> Hvad skriver man så ved en kombination af to?
>
>
| |
|
|