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

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
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?
>
>



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

Månedens bedste
Årets bedste
Sidste års bedste