Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Vb ljuger..

Postades av 2001-10-27 12:58:00 - Frans Englich, i forum visual basic - allmänt, Tråden har 14 Kommentarer och lästs av 631 personer

Jag har en väldigt flummig kod:

I = 8
If I = 1 Or 2 Or 3 Or 4 Or 6 Then
beep '//Denna kod körs!!
End If

Varför körs koden?! Påståendet är ju inte uppfyllt!

mvh Frans


Svara

VB ljuger inte

Postades av 2001-10-27 13:26:00 - Eventine Elessendil

Tror inte om du kan få det att fungera på det viset. En siffra kan inte ge True eller False. Skriv så här så ska du se att det fungerar:
I = 8
If I = 1 Or I = 2 Or I = 3 Or I = 4 Or I = 6 Then
Beep '//Denna kod körs!!
End If

Alternativt kan du göra en Select Case enligt:
Select Case I
Case 1 To 4, 6
Beep
Case Else:
' Gör nåt annat?
End Select

Lycka till. :-)
/EE


Svara

Sv: VB ljuger inte

Postades av 2001-10-27 13:48:00 - Frans Englich

Detta funkade inte;
If I = 1 Or I = 2 Or I = 3 Or I = 4 Or I = 6 Then

men case satsen funkade. Undrar varför, ifsatsen är ju rätt "syntax mässigt". Någon kanske har en förklaring på varför den inte funkar?

Tack för hjälpen,
mvh frans


Svara

Sv: VB ljuger inte

Postades av 2001-10-27 13:50:00 - Eventine Elessendil

Jo, den ska fungera. Testade just själv i VB6, och det fungerar här i alla fall. Vad är det som inte fungerar då?


Svara

Sv: VB ljuger inte

Postades av 2001-10-27 13:56:00 - Frans Englich

Detta:

I = 8
If I = 1 Or I = 2 Or I = 3 Or I = 4 Or I = 6 Then
Beep '//Denna kod körs!!
End If


mvh Frans


Svara

Sv: VB ljuger inte

Postades av 2001-10-27 14:03:00 - Eventine Elessendil

Jo, vilken kod du menade förstod jag ju, men vad är det som inte fungerar? Jag testade igen och det fungerar perfekt.
Får du nåt felmeddelande?


Svara

Sv: VB ljuger inte

Postades av 2001-10-27 14:10:00 - Frans Englich

Inget felmeddelande men beep körs. I ifsatsen står det ju inte "if
I =8".

mvh Frans


Svara

Sv: VB ljuger inte

Postades av 2001-10-27 14:11:00 - Eventine Elessendil

Det var märkligt ... Här körs den inte. Hur kör du koden då? Stega igenom så kanske det dyker upp nåt annat som ger ditt beep eller ändrar värdet på I.


Svara

Sv: VB ljuger inte

Postades av 2001-10-27 14:17:00 - Frans Englich

Jag har givetvis stegat det, och allting stämmer.

Jag är inte i Windows just nu, jag återkommer senare.

mvh Frans


Svara

Sv: VB ljuger inte

Postades av 2001-10-27 14:28:00 - Eventine Elessendil

Ok. Ja, som sagt var så ska det fungera, och det gör det här.
Själv föredrar jag Select Case om man har så många olika alternativ att välja mellan, men vad som är bäst vet jag inte.
Hoppas det löser sig för dig. :-)
/EE


Svara

Sv: VB ljuger inte

Postades av 2001-10-27 14:36:00 - Patrik Löwendahl

angående först syntaxen så autokonverterar vb alla värde som inte är 0 till true om ett booleanskt värde krävs ... därför det gick igenom ..


Svara

Sv: VB ljuger inte

Postades av 2001-10-27 15:57:00 - Leif Parmlind

Ska försöka förtydliga!

>>Jag har en väldigt flummig kod:

>>I = 8
>>If I = 1 Or 2 Or 3 Or 4 Or 6 Then
>> beep '//Denna kod körs!!
>>End If

>>Varför körs koden?! Påståendet är ju inte uppfyllt!

Jo påståendet är uppfyllt för or 2 även or 3 och or 4 och or 6

Hur kan det vara det?
Det som händer är att värdet 2 testas om det är true inte om I = 2 osv
Altså det som står i ett or statement är helt frikopplat från dina tidigare statement och utgör ett fullständigt och sjävständigt påstående.

Har för mig att allt som är skilt från 0 converteras till true även typ 0,1

Leif P


Svara

Sv: Vb ljuger..

Postades av 2001-10-29 06:16:00 - Peter Holm

Det hela handlar om operatorernas prioritet i kombination
med det som Patrik Löwendal skriver att VB autokonverterar.

> If I=1 Or 2 Or 3 Or 4 Or 5 Then

tolkas av interpretatorn som

> If I=1 Or (2 Or 3 Or 4 Or 6) Then

Detta på grund av att Or operatorn har högre prioritet än operatorn "är lika med".

Uttrycket i sig är alltid SANT då det är skiljt från NOLL.

Ser vi på de bitvisa operationerna som utförs i exemplet blir det egentliga resultatet enligt följande.

DEC 2 = BIN 0000 0010
DEC 3 = BIN 0000 0011
DEC 4 = BIN 0000 0100
DEC 6 = BIN 0000 0110
=================
DEC 7 = BIN 0000 0111

VB-interpretatorn tolkar din kod så här:

> If I=1 Or 7

sju (7) är inte lika med 0 och följdaktligen alltid SANN.

Det gäller att kunna sin datoraritmetik när man sysslar med OR/AND operatorer.

[peter.h]


Svara

Sv: Vb ljuger..

Postades av 2001-10-29 09:17:00 - Eventine Elessendil

Många fina svar på varför den första koden inte fungerade, men jag är ännu lite nyfiken på varför den andra som ju är logiskt riktig inte fungerade hos Frans.
Eller har det löst sig för dig, Frans?
/EE *nyfiken*


Svara

Sv: Vb ljuger..

Postades av 2001-10-29 11:48:00 - Frans Englich

Visst har det det, jag har en select case sats. Jag har bara suttit och iaktagit dessa intressanta och lärorika inlägg :)

Tack för alla inläggen.

mvh Frans


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 627
27 953
271 710
315
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies