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


LBound och UBound

Postades av 2003-03-25 14:01:50 - Peter Larsson, i forum visual basic - allmänt, Tråden har 12 Kommentarer och lästs av 554 personer

Vad använder man LBound och UBound till?

/ Peter


Svara

Sv: LBound och UBound

Postades av 2003-03-25 14:13:51 - Andreas Hillqvist

Man frågar en array vilket dess lägsta och högsta tillåtna index är för en dimension i en array.

T.ex.
<code>
Dim Data() As Byte
Data = "Hejsan"
Debug.print LBound(Data)
Debug.print UBound(Data)
</code>


Svara

Sv: LBound och UBound

Postades av 2003-03-25 14:23:27 - Sven Åke Persson

Hej
Avd NybörjarForum
LBound returnerar det absolut lägsta element som finns i en Array.(oftast noll(0))
Ubound " högsta "
Exempel:
Dim subscript As Long,i As Long
subscript = Ubound(MinArray)
For i = 0 To subscript
List1.AddItem MinArray(i)
Next 'i
/Sven


Svara

Sv: LBound och UBound

Postades av 2003-03-25 17:28:26 - Niklas Jansson

Det är väl iofs lämpligare och vanligare med

Dim i As Long
For i = LBound(MinArray) To UBound(MinArray)
List1.AddItem MinArray(i)
Next i

Sedan behöver man inte ha ett ' innan i:et i next-raden...


Svara

Sv: LBound och UBound

Postades av 2003-03-25 17:41:18 - Sven Åke Persson

>Sedan behöver man inte ha ett ' innan i:et i next-raden...

Nähä och varför behöver jag inte det ? ' betyder remarks och dom gör jag precis så många jag vill.

Fö är din lösning ganska dålig. Varför skall jag kalla på en funktion
flera 1000 ggr om jag inte behöver,jag tänker på anropen till Lbound och Ubound.
Dålig optimering. Arrayen består av 60000 element , många onödiga anrop blir det.
/Sven


Svara

Sv: LBound och UBound

Postades av 2003-03-25 19:36:59 - Andreas Hillqvist

En For-Loop anropar bara värden en gång. Testa själv så får du se:
<code>
Function MinValue() As Long
Debug.Print "MinValue"
MinValue = 1
End Function

Function MaxValue() As Long
Debug.Print "MaxValue"
MaxValue = 100
End Function

Private Sub Command1_Click()
Dim Index As Long
For Index = MinValue To MaxValue
Debug.Print "Loop: " & Index
Next
End Sub
</code>


Svara

Sv: LBound och UBound

Postades av 2003-03-25 20:50:57 - Sven Åke Persson

Hej igen
mmmmmmmmmmmm.!! Tänker på alla optimerinstips man läst genom åren
tex så avrådes man för att skriva For i = 0 To List1.ListCount - 1
men det är kanske inte samma sak,faen vet, jag är inte övertygad.
Är Ni säkra att detta inte gäller nya vb.net ?
/Sven


Svara

Sv: LBound och UBound

Postades av 2003-03-25 21:10:16 - Andreas Hillqvist

Kör mitt test. Det testade jag i VB6.


Svara

Sv: LBound och UBound

Postades av 2003-03-26 15:07:00 - Niklas Jansson

Det är onödigt med såna här evighetsdiskussioner, javisst, men detta är ju ett allmänt vedertaget faktum.
Sedan tycker jag personligen att det känns vettigare att faktiskt markera vad det är man vill ta next på genom en inbyggd språkkonstuktion än genom att använda en kommentar.
Men det är mina åsikter...


Svara

Sv: LBound och UBound

Postades av 2003-03-26 16:06:51 - Sven Åke Persson

>next på genom en inbyggd språkkonstuktion än genom att använda en kommentar.

Anledning är att det finns optimeringstips som säger att (Next i) suger mer än
bara Next, för att då tillfredställa denna eventuella sanning använder jag
och kommer att framledes använda (Next 'i) , får jag det ?
Skulle vara intressant om du ville kommentera For i = 0 To List1.ListCount -1
eller For i = 0 To rs.RecordCount - 1
Kommentera alltid din kod.
/Sven


Svara

Sv: LBound och UBound

Postades av 2003-03-26 17:30:08 - Niklas Jansson

>Anledning är att det finns optimeringstips som säger att (Next i) suger mer än
>bara Next, för att då tillfredställa denna eventuella sanning använder jag
>och kommer att framledes använda (Next 'i) , får jag det ?
Ja, naturligtvis får du det, och jag kände inte till den optimeringsdetaljen (även om det förefaller ganska orimligt). Skulle vara intressant att jämföra metoderna.

>Skulle vara intressant om du ville kommentera For i = 0 To List1.ListCount -1
>eller For i = 0 To rs.RecordCount - 1
Eftersom den övre gränsen alltid cachas så skulle det gälla samma sak där. Däremot så kollas det varje gång i en

Do While (villkor)
...
Loop
(eller motsvarande)
Det kan vara detta du menar...

>Kommentera alltid din kod.
Ja, men inte in absurdum...uppenbar kod behöver aldrig kommenteras.


Svara

Sv: LBound och UBound

Postades av 2003-03-26 17:43:31 - Sven Åke Persson

>Skulle vara intressant att jämföra metoderna.

Vi gjorde det för något år sedan jag och Andreas mfl.
Vi kom fram till att Vi inte kunde se någon skillnad.

Sen är det ju så att man i VB:s början trodde på allt som stod i
VBJ (Visual Basic Journal),kollade gamla tidningar från 1995 framåt
hittade påståendet på flera ställe(Tech Tips).Beträffande det andra ListCount - 1
så påstår man detta med kraft, dvs man anropar en klass propertie.
Men Ert cache resonemang verkar bestickande.

Sven som gör som Indianerna, kör i gamla beprövade spår.


Svara

Sv: LBound och UBound

Postades av 2003-03-26 19:11:02 - Andreas Hillqvist

JAg får samma resultat med classer. De hämtar bara värdena en gång.

Class: Class1
<code>
Public Property Get MinValue() As Long
MinValue = 1
Debug.Print "MinValue"
End Property

Public Property Get MaxValue() As Long
MaxValue = 10
Debug.Print "MaxValue"
End Property
</code>

Form: Form1
<code>
Private Sub Command1_Click()
Dim C As Class1
Dim Index As Long
Set C = New Class1
For Index = C.MinValue To C.MaxValue
Debug.Print "Loop: " & Index
Next

End Sub
</code>


Svara

Nyligen

  • 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
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 167
27 952
271 704
809
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