[VB] Meerdere mogelijkheden bij invoer

Pagina: 1
Acties:

  • bavara
  • Registratie: Juni 2001
  • Laatst online: 04-07 07:44
Ik ben bezig met een vertaalprogrammaatje in VB en ik blijf nu ergens steken. Zie de onderstaande code.
code:
1
2
3
4
5
6
7
8
9
10
Private Sub nakijken_Click()
If wrdengels = "Bread" Then
woord = "Brood" ??? "brood"
End If
If betekenis.Text = woord Then
MsgBox ("Goed! U kunt het volgende woord proberen!")
Else
MsgBox ("Helaas, Fout! Probeer het nog eens!")
End If
End Sub

Het probleem is dus dat er Brood en brood (en eigenlijk ook nog BROOD) ingevuld moet kunnen worden. In eerst instantie dacht ik dat hier 'or' tussen moest, maar dat blijkt niet te werken. Daarna heb ik ook nog 'and', een komma, en nog wat dingen geprobeerd maar het wilde niet werken. Moet ik de variabele woord misschien declareren? In mijn boek heb ik ook niets kunnen vinden, en waarschijnlijk is het een heel klein dingetje...

Kan iemand me helpen?

  • brokenp
  • Registratie: December 2001
  • Laatst online: 16:42
Kan je je ninput niet gewoon converteren naar allen kleine letters, en daarmee gaan verglijken?

  • bavara
  • Registratie: Juni 2001
  • Laatst online: 04-07 07:44
Op vrijdag 22 februari 2002 12:57 schreef brokenp het volgende:
Kan je je ninput niet gewoon converteren naar allen kleine letters, en daarmee gaan verglijken?
Is mogelijk. Je bedoelt dat de input automatisch wordt geconverteerd naar kleine letters? Ik kan ook zeggen: Alleen kleine letters invoeren maar je begrijpt dat dat niet zo professioneel overkomt...

Het moet toch gewoon kunnen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:53
code:
1
2
3
if UpperCase(ingegevenwoord) = "BROOD" then begin
  MessageDlg('Ok', mtInformation, [mbOk], 0);
end;

https://fgheysels.github.io/


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Op vrijdag 22 februari 2002 13:00 schreef bavara het volgende:

[..]

Is mogelijk. Je bedoelt dat de input automatisch wordt geconverteerd naar kleine letters? Ik kan ook zeggen: Alleen kleine letters invoeren maar je begrijpt dat dat niet zo professioneel overkomt...

Het moet toch gewoon kunnen?
RTFM en zoek naar
-een functie die een string omzet naar allemaal kleine letters en dit met brood vergelijkt.
-een functie die twee strings case insensitife vergelijkt

En als je daar toch al aan het zoeken bent, kijk dan gelijk ff naar een trim functie om de spaties voor en achter weg te halen.. Komt nog wat proffesioneler over :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

inderdaad, de invoer omgooien naar upper- of lowercase lijkt me wel handig... de beetje basic dit ;)

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • bavara
  • Registratie: Juni 2001
  • Laatst online: 04-07 07:44
Op vrijdag 22 februari 2002 13:04 schreef limoentje het volgende:
inderdaad, de invoer omgooien naar upper- of lowercase lijkt me wel handig... de beetje basic dit ;)
Ja, dat lukt ook wel, maar het moet toch mogelijk zijn om gewoon elke invoer te checken? Daar was ik gewoon benieuwd naar!

Ik dacht dat het toch wel zou moeten kunnen met een woordje als 'or' of iets dergelijks...

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:53
Op vrijdag 22 februari 2002 13:09 schreef bavara het volgende:

[..]

Ja, dat lukt ook wel, maar het moet toch mogelijk zijn om gewoon elke invoer te checken? Daar was ik gewoon benieuwd naar!

Ik dacht dat het toch wel zou moeten kunnen met een woordje als 'or' of iets dergelijks...
Wat is het gemakkelijkst, het meest leesbare en het duidelijkste denk je? |:( |:(

https://fgheysels.github.io/


  • Koen_R
  • Registratie: Juni 1999
  • Laatst online: 15:58
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub nakijken_Click()

 If wrdengels = "Bread" Then
   dim woord(1000) 

   woord(1) = "Brood" 
   woord(2) = "brood"
   woord(3) = "blablabla"   'etc

 End If

 For x = 1 to 1000
   If betekenis.Text = woord(x) Then
     MsgBox ("Goed! U kunt het volgende woord proberen!")
   Else
     MsgBox ("Helaas, Fout! Probeer het nog eens!")
   End If
 Next x

End Sub

nog steeds werkt dat met Upper of Lowercase natuurlijk het best, maar zo ongeveer zou je het schrijven op de manier die jij wil. Let op, ik heb al jaaaaaren niet meer met VB gewerkt, dus het kan zijn dat ik ergens een klein foutje heb gemaakt.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Je zou ook de StrComp functie kunnen gebruiken (jaja VB heeft 'm ook :P)
StrComp(String1, String2, vbTextCompare)
vbTextCompare zodat ie case insensitive checkt (en als je juist wel case sensitive wilt vergelijken neem je vbBinaryCompare)
Als StrComp 0 teruggeeft zijn de 2 strings identiek.

Blijf het eens zijn met een voorganger: dit is wel rtfm hoor... :P

Exact expert nodig?


  • bavara
  • Registratie: Juni 2001
  • Laatst online: 04-07 07:44
Op vrijdag 22 februari 2002 13:46 schreef Crazy_D het volgende:
Blijf het eens zijn met een voorganger: dit is wel rtfm hoor... :P
Jaha, dat ben ik ook met je eens, maar TFM (Library) is hier niet met het pakket meegeïnstalleerd en in het boek kan ik er niks over vinden.. :(

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Op vrijdag 22 februari 2002 13:50 schreef bavara het volgende:
Jaha, dat ben ik ook met je eens, maar TFM (Library) is hier niet met het pakket meegeïnstalleerd en in het boek kan ik er niks over vinden.. :(
MSDN Online *D
Alleen even in de Toc zoeken naar Visual Tools and Languages / Visual Studio 6 / Visual Basic 6

Zowaar iets van MS wat gratis is :P :D (alleen jammer dat de site niet altijd even snel is...)

Exact expert nodig?


  • bavara
  • Registratie: Juni 2001
  • Laatst online: 04-07 07:44
Op vrijdag 22 februari 2002 14:01 schreef Crazy_D het volgende:

[..]

MSDN Online *D
Alleen even in de Toc zoeken naar Visual Tools and Languages / Visual Studio 6 / Visual Basic 6

Zowaar iets van MS wat gratis is :P :D (alleen jammer dat de site niet altijd even snel is...)
:D Zowaar iets van MS... Wat bij mij NIET samen gaat met de Internet Explorer zonder foutmelding! |:(

Dan probeer ik Netscape maar ff hè? Zal Bill vast leuk vinden... :D

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Op vrijdag 22 februari 2002 14:06 schreef bavara het volgende:
:D Zowaar iets van MS... Wat bij mij NIET samen gaat met de Internet Explorer zonder foutmelding! |:(
:D
Dan probeer ik Netscape maar ff hè? Zal Bill vast leuk vinden... :D
MSDN werkt gelukkig behoorlijk goed met Mozilla dus da's wel aardig van Bill en z'n vriendjes ;)

Exact expert nodig?


  • bavara
  • Registratie: Juni 2001
  • Laatst online: 04-07 07:44
Dit is de melding die ik krijg als ik 'Uppercase en Lowercase' opzoek:


Directory Listing Denied
This Virtual Directory does not allow contents to be listed.

Lekker dan... Nu weet ik het echt niet meer hoor. Er staat niks in m'n twee boeken en de Library is dus ook lekker hulpzaam...

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Het is al duidelijk gezegd, maar gebruik deze code en al je invoer word herkent ( Bread, bread, Bread of breazah style: BrEaD)
code:
1
2
3
4
5
6
7
8
9
10
Private Sub nakijken_Click()
If LowerCase(wrdengels) = "bread" Then
woord = "brood"
End If
If LowerCase(betekenis.Text) = woord Then
MsgBox ("Goed! U kunt het volgende woord proberen!")
Else
MsgBox ("Helaas, Fout! Probeer het nog eens!")
End If
End Sub

Je mag het zelf gaan indenten :P

Verwijderd

code:
1
If StrComp(sWordEn, "Bread", vbTextCompare) = 0 then sWordNL = "Brood"

  • bavara
  • Registratie: Juni 2001
  • Laatst online: 04-07 07:44
Op vrijdag 22 februari 2002 15:47 schreef brammetje het volgende:
Het is al duidelijk gezegd, maar gebruik deze code en al je invoer word herkent ( Bread, bread, Bread of breazah style: BrEaD)
code:
1
2
3
4
5
6
7
8
9
10
Private Sub nakijken_Click()
If LowerCase(wrdengels) = "bread" Then
woord = "brood"
End If
If LowerCase(betekenis.Text) = woord Then
MsgBox ("Goed! U kunt het volgende woord proberen!")
Else
MsgBox ("Helaas, Fout! Probeer het nog eens!")
End If
End Sub

Je mag het zelf gaan indenten :P
Hartstikke bedankt tot zover, maar ik krijg een foutmelding..

Compile error:
Sub or function not defined

Ik moet de lowercase dus nog definiëren!! Das echt het enige wat ik nog van jullie vraag.. Ik ben dan echt BIJNA klaar, als die functie het maar doet.. De rest gaat ZEKER lukken!

Verwijderd

Op vrijdag 22 februari 2002 16:01 schreef bavara het volgende:

[..]

Hartstikke bedankt tot zover, maar ik krijg een foutmelding..

Compile error:
Sub or function not defined

Ik moet de lowercase dus nog definiëren!! Das echt het enige wat ik nog van jullie vraag.. Ik ben dan echt BIJNA klaar, als die functie het maar doet.. De rest gaat ZEKER lukken!
LCase$, maar je kunt ook de code van mij hierboven gebruiken.

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:53
Op vrijdag 22 februari 2002 16:01 schreef bavara het volgende:

[..]

Hartstikke bedankt tot zover, maar ik krijg een foutmelding..

Compile error:
Sub or function not defined

Ik moet de lowercase dus nog definiëren!! Das echt het enige wat ik nog van jullie vraag.. Ik ben dan echt BIJNA klaar, als die functie het maar doet.. De rest gaat ZEKER lukken!
Snap jij eigenlijk wel wat je copy/paste?

https://fgheysels.github.io/


  • bavara
  • Registratie: Juni 2001
  • Laatst online: 04-07 07:44
Op vrijdag 22 februari 2002 16:44 schreef whoami het volgende:

[..]

Snap jij eigenlijk wel wat je copy/paste?
Wat bedoel je daar mee? Ik heb wel gewoon copy/paste gedaan ja maar als het dan niet werkt denk ik aan mogelijke oorzaken ja!

Verwijderd

Op zondag 24 februari 2002 17:06 schreef bavara het volgende:

[..]

Wat bedoel je daar mee? Ik heb wel gewoon copy/paste gedaan ja maar als het dan niet werkt denk ik aan mogelijke oorzaken ja!
Zeg dan eens wat er fout gaat. Werkt mijn suggestie met StrComp niet? Voor LowerCase moet je LCase$ gebruiken.

  • bavara
  • Registratie: Juni 2001
  • Laatst online: 04-07 07:44
Op zondag 24 februari 2002 17:33 schreef dev het volgende:

[..]

Zeg dan eens wat er fout gaat. Werkt mijn suggestie met StrComp niet? Voor LowerCase moet je LCase$ gebruiken.
Ja sorry, maar ik begrijp daar niet zo veel van!

If StrComp(sWordEn, "Bread", vbTextCompare) = 0 then sWordNL = "Brood"

is sWordEn de naam van de listbox (input) en wat is vbTextCompare? En sWordNL is de output?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 17:24

Crazy D

I think we should take a look.

Op zondag 24 februari 2002 17:44 schreef bavara het volgende:
Ja sorry, maar ik begrijp daar niet zo veel van!

If StrComp(sWordEn, "Bread", vbTextCompare) = 0 then sWordNL = "Brood"

is sWordEn de naam van de listbox (input) en wat is vbTextCompare? En sWordNL is de output?
Op vrijdag 22 februari 2002 13:46 schreef Crazy_D het volgende:
StrComp(String1, String2, vbTextCompare)
vbTextCompare zodat ie case insensitive checkt (en als je juist wel case sensitive wilt vergelijken neem je vbBinaryCompare)
Als StrComp 0 teruggeeft zijn de 2 strings identiek.
Probeer het eerst eens eventjes uit in de immediate window (vanuit de editor Ctrl+G). Gewoon met 2 woorden die je anders zou willen intypen. Maakt een hoop duidelijk...

? StrComp("blaat", "brood", vbTextCompare)
-1
? StrComp("Brood", "brood", vbTextCompare)
0

Exact expert nodig?


Verwijderd

Op zondag 24 februari 2002 17:44 schreef bavara het volgende:

[..]

Ja sorry, maar ik begrijp daar niet zo veel van!

If StrComp(sWordEn, "Bread", vbTextCompare) = 0 then sWordNL = "Brood"

is sWordEn de naam van de listbox (input) en wat is vbTextCompare? En sWordNL is de output?
Precies, vbTextCompare is een VB constante voor niet hoofdlettergevoelig vergelijken.

  • brokenp
  • Registratie: December 2001
  • Laatst online: 16:42
PS als je een vertaal programma gaat schrijven dat woorden verglijkt, dan zou ik toch wel ff een DBtje gebruiken, hoef je niet honderden case te maken,
En je kan veel makkelijker verglijken, zonder problemen met hoofdletters.

  • bavara
  • Registratie: Juni 2001
  • Laatst online: 04-07 07:44
Op zondag 24 februari 2002 21:13 schreef brokenp het volgende:
PS als je een vertaal programma gaat schrijven dat woorden verglijkt, dan zou ik toch wel ff een DBtje gebruiken, hoef je niet honderden case te maken,
En je kan veel makkelijker verglijken, zonder problemen met hoofdletters.
Ja klopt, daar ga ik ook mee beginnen, want anders wordt het wel een grote broncode hè? Toch bedankt!
Pagina: 1