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


Array-problem

Postades av 2002-09-21 11:38:30 - Benni Svensson, i forum visual basic - allmänt, Tråden har 15 Kommentarer och lästs av 482 personer

Försöker att köra en array så här:
<code>
Dim MinArray() As String
MinArray(0, 0) = Rst(0)
MinArray(1, 0) = Rst(1)
MinArray(2, 0) = Rst(2)
MinArray(3, 0) = Rst(3)
MinArray(4, 0) = Rst(4)
MinArray(5, 0) = Rst(5)
MinArray(6, 0) = Rst(6)
Dim i As Integer
For i = 0 To 9
Timer1 = (10 - 5) * 25 * 40
LCD1.Caption = MinArray(0, i)
Timer1 = (10 - 5) * 10 * 40
Next
</code>
Mitt problem, just nu:
Error:
Run-time error '91'
Object variable or With block variable not set.
Och så pekar han på denna rad:
MinArray(0, 0) = Rst(0)
PS
Jag skrev om lite:
<code>
Dim i As Integer
For i = 0 To 6
MinArray(i, 0) = Rst(i)
Next
</code>
Men inte hjälpte det
Vad missar jag?


Svara

Sv: Array-problem

Postades av 2002-09-21 11:57:09 - Johan Djupmarker

Såhär får du nog dimentionera arrayen:
Dim minArray(6, 0) As String

Men varför har du en 2-dimentionell array?

Felmeddelandet beror nog på att att Rst inte är instanserad (stavning?).

/Johan


Svara

Sv: Array-problem

Postades av 2002-09-21 12:14:09 - Sven Åke Persson

Hej
Min lilla käpphäst SLUTA deklarera som Integer.
Det skall vara Long.

Har iofs inte med ditt problem att göra.

mvh
Sven


Svara

Sv: Array-problem

Postades av 2002-09-21 12:27:22 - Benni Svensson

Tack Sven, du har så rätt. Det är en gammal ful ovan att köra med Integer. Skall försöka att tänka på Long.
Att jag försökte med 2 dim arr, berode på ett ex jag hittade.
Nu är dom problemen lösta, så raskt till nästa.
Jag laddar alltså in 6 st posteri arrayen, som jag vill visa i en LCD-display(jag jag har hittat det).
Men jag gör något tokigt med timern, för jag får det inte att fungera. Den visar bara den sossta posten.
<code>
Set Rst = Con.Execute(SQL)
If Not Rst.EOF Then

Dim i As Long
Dim arr(6, 0) As String

For i = 0 To 6
If Not IsNull(Rst(i)) Then
arr(i, 0) = Rst(i)
End If
Next

For i = 0 To 6
Timer1 = (10 - 5) * 25 * 40
LCD1.Caption = arr(i, 0)
Timer1 = (10 - 5) * 10 * 40
Next
</code>
Är det inte bra att ha en timer?
Något annat?


Svara

Sv: Array-problem

Postades av 2002-09-21 12:30:16 - Jesper Brännström

Detta var juh lite intressant, varför ska man inte använda sig av integer?


Svara

Sv: Array-problem

Postades av 2002-09-21 12:42:44 - Andreas Hillqvist

Det hjälper inte att du sätter intervallet i din loop. Kommer inte påverka. Skriv I så fall:
<code>

Private Index As Long
Private arr(6) As String

Private Sub Command1_Click
Dim i As Long
Dim Con As ADODB.Connection
Dim Rst As ADODB.Recordset

Set Con = New ADODB.Connection
Con.Open "<<<connection string>>>"

Set Rst = Con.Execute(SQL)
If Not Rst.EOF Then
For i = 0 To 6
If Not IsNull(Rst(i)) Then
arr(i) = Rst(i)
End If
Next
Index = 0
Timer1.Interval = (10 - 5) * 25 * 40
Timer1.Enable = True
End If
End Sub

Private Sub Timer1_Timer()
If Index > 6 Then
Timer1.Enable = False
Else
LCD1.Caption = arr(Index)
Index = Index + 1
End If
End Sub



</code>
Eller så använder duSleep() istället:
<code>
Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click
Dim i As Long
Dim Con As ADODB.Connection
Dim Rst As ADODB.Recordset

Set Con = New ADODB.Connection
Con.Open "<<<connection string>>>"

Set Rst = Con.Execute(SQL)
If Not Rst.EOF Then
For i = 0 To 6
If Not IsNull(Rst(i)) Then
arr(i) = Rst(i)
End If
Next
For i = 0 To 6
LCD1.Caption = arr(i)
Sleep 500
Next
End If
End Sub
</code>


Svara

Sv: Array-problem

Postades av 2002-09-21 13:03:41 - Benni Svensson

Problem...
Du hade skrivit
Private Index As Long
Private arr(6) As String

men skall det inte vara
Dim Index As Long
Dim arr(6) As String
Där fick jag nämeligen fel.
Sen kopierade jag din kod, ing problem föränn:
<code>
Private Sub Timer1_Timer()
Dim Index As Long
If Index > 6 Then
Timer1.Enabled = False
Else
LCD1.Caption = arr(Index)
Index = Index + 1
End If
End Sub
</code>
Ha ville att jag skulle dimma index igen.

Sen får jag fel här
LCD1.Caption = arr(Index)

Jag försökte åxå att köra med sleep, men det kommandot kände han inte till.

<code>
If Not Rst.EOF Then
For i = 0 To 6
If Not IsNull(Rst(i)) Then
arr(i) = Rst(i)
End If
Next
For i = 0 To 6
LCD1.Caption = arr(i)
Sleep 500
Next
</code>
Vad tror du?


Svara

Sv: Array-problem

Postades av 2002-09-21 13:39:12 - Andreas Hillqvist

Privat, Public är det ordentliga sätten att deklarera variabler på modulnivå. Klistra in deklarationen överst i din modul.<br>
<br>
Sleep är ett api anrop. du måste dklarerar det oxå överst i modulen:
<code>
Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
</code>


Svara

Sv: Array-problem

Postades av 2002-09-21 13:43:33 - Sven Åke Persson

Hej igen Saw
Du skall egentligen tänka Integer. I framtiden .net
och alla andra språk så kommer Integer att betyda 32 bit.

Nu snackar dom om 64 bit slöseri med minne tiil max

Vi behöver ett annat OS som kan hantera precis det som behövs.

det är ju ganska löjligt att Ett(1) skall behöva ta upp 64 bitar (8 bytes)

Tycker
Sven


Svara

Sv: Array-problem

Postades av 2002-09-21 13:54:18 - Sven Åke Persson

DoreSal
>Detta var ju lite intressant, varför ska man inte använda sig av integer?


Därför att du belastar processorn med en onödig arbetsuppgift.

När du skriver Integer och menar <= ca 32000 så kommer
processorn i allafall behandla det som Long. (massor av högre siffror).

Det här budskapet är tveeggat Det kommer att heta Integer
och man menar det Vi kallar Long.

Du skall inte tänka i Long och Integer. Du skall tänka i termer
Word = Integer DWord = Long osv.

mvh
Sven





Svara

Sv: Array-problem

Postades av 2002-09-21 14:14:54 - Benni Svensson

Hej Sven.
Jag håller med dig i allt.
Vi har ju ett OS, som fortfarande behandlar minnen som man gjorde i början av 80-talet(ordenarie minnet 0 till 649 kb,övre minnet 640 - 1024 och det expanderande minnet över 1024).
Ingen tvekan om det, men jag skall försöka att tänka LONG.
Tillbaka till mitt problem:
Vad jag vill är att i Lcd1, kunna växla information (tänk på MediaPlayer).
Jag har fått igång SLEEP, men den springer iväg så att jag får bara den sista informationen.
Så här ser koden ut nu:
<code>
Dim arr(6) As String
Dim i As Long
For i = 0 To 6
If Not IsNull(Rst(i)) Then
arr(i) = Rst(i)
End If
Next

If Err.Number <> 0 Then
MsgBox Err.Description
End If
For i = 0 To 6
Sleep 500
LCD1.Caption = arr(i)
Sleep 100
Next i
</code>
Vad tror ni?


Svara

Sv: Array-problem

Postades av 2002-09-21 14:31:05 - Andreas Hillqvist

I så fall är en timer att rekomendera:
<code>
Private Index As Long
Private arr() As String

Private Sub Command1_Click
Dim i As Long
Dim id As Long
Dim Con As ADODB.Connection
Dim Rst As ADODB.Recordset

Set Con = New ADODB.Connection
Con.Open "<<<connection string>>>"

id = 5
SQL = "SELECT * FROM TabellNamn WHERE ID=" & id
Set Rst = Con.Execute(SQL)
If Not Rst.EOF Then
Redim arr(6)
For i = 0 To 6
arr(i) = "" & Rst(i)
Next
Index = 0
Timer1.Interval = 1000
Timer1.Enable = True
End If
End Sub

Private Sub Timer1_Timer()
LCD1.Caption = arr(Index)
Index = (Index + 1) Mod 7
End Sub
</code>


Svara

Sv: Array-problem

Postades av 2002-09-21 15:00:39 - Benni Svensson

Nu börjar det att bli bra.
Men....
Precis som i SQL:en som jag fick hjälp med, så är det inte alltid som det finns flera författare.
Jag löste det så här:
<code>
LCD1.Caption = "Ny sång laddas"
ReDim arr(6)
arr(0) = "ArrNo: " & (Rst(0))
arr(1) = "Titel: " & (Rst(1))
arr(2) = "Författare: " & (Rst(2))
If Not IsNull(Rst(3)) Then
arr(3) = "Författare 2: " & (Rst(3))
End If
If Not IsNull(Rst(4)) Then
arr(4) = "Författare 3: " & (Rst(4))
End If
arr(5) = "Album: " & (Rst(5))
arr(6) = "Kategori: " & (Rst(6))
id = 5
</code>
Men detta innebär att det blir tomt å LCD1, när den arrayen körs.
Kan man hoppa över tomma arrayer?


Svara

Sv: Array-problem

Postades av 2002-09-21 15:24:30 - Andreas Hillqvist

<code>
Private Sub Timer1_Timer()
LCD1.Caption = arr(Index)
Do
Index = (Index + 1) Mod 7
Loop Until Len(arr(Index))
End Sub
</code>


Svara

Sv: Array-problem

Postades av 2002-09-21 15:51:50 - Sven Åke Persson

hej
Du skall alltid skriva ut Caption.
Ex, Label1.Caption Text1.Text
Ds


Svara

Sv: Array-problem

Postades av 2002-09-21 16:05:28 - Benni Svensson

Tack Andreas, det fungerade helt kanon.
Nu är det bara den sista ögongodisen.
Om jag mellan varje ny caption vill visa det tomt i t ex 2 sec, hur ändrar jag det då?


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

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 570 882
27 965
271 776
517
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