[ djpero.84 @ 25.03.2008. 10:49 ] @
Imam string array, kako da returnujem broj stavki iz niza u neki integer. Neki dan sam imao kod, sad vec stao mozak :)

Hvala
[ Aleksandar Ružičić @ 25.03.2008. 10:55 ] @
Code:

count = Ubound(array) - LBound(array) + 1
[ djpero.84 @ 25.03.2008. 10:57 ] @
Taman sam skontao Ubound, a mozes mi objasniti zasto oduzimas LBound i sabiras 1.
Hvala
[ Aleksandar Ružičić @ 25.03.2008. 11:02 ] @
UBound ti je gornja granica, LBound donja.

primer: Dim x(0 to 5) As String

UBound(x) = 5
LBound(x) = 0

niz ima 6 clanova (0, 1, 2, 3, 4, i 5)

ako oduzmemo LBound od UBound i dodamo jedan dobicemo tacan broj: UBound(x) - LBound(x) + 1 = 5 - 0 + 1 = 6


drugi primer: Dim x(2 to 4) As String

UBound(x) = 4
LBound(x) = 2

niz ima 3 clana (2, 3 i 4)

ako oduzmemo LBound od UBound i dodamo jedan dobicemo tacan broj: UBound(x) - LBound(x) + 1 = 4 - 2 + 1 = 3


kada je donja granica 1, onda nema potrebe za oduzmianjem LBound i dodavanjem jedinice (+1 - 1 = 0) ali to je specijalan slucaj ove "formule"
[ djpero.84 @ 25.03.2008. 11:08 ] @
Hvala na ovako brzoj pomoci!
[ Aleksandar Ružičić @ 25.03.2008. 11:11 ] @
nema na cemu :)
[ djpero.84 @ 25.03.2008. 11:24 ] @
Jos samo malo pitanjce. Zasto mi varijabla "file_s" nije string, nego moram da radim ovo:

Code:
Option Explicit
Dim file_name() As String
Dim file_s, file_path As String
Dim db As ADODB.Connection
Dim rs As ADODB.Recordset
Dim br As Integer

Function openbase(ByVal Pathic, bases As String)

Set db = CreateObject("adodb.connection")
db.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & Pathic & "; extended properties = dbase iv;"
db.CursorLocation = adUseClient
db.Open
Set rs = CreateObject("adodb.recordset")
rs.Open "select * from " & bases, db, adOpenDynamic, adLockOptimistic

End Function

Private Sub exit_mnu_Click()
Unload Me
End Sub

Sub open_mnu_Click()
Dim file_ As String
diag.ShowOpen
file_name() = Split(diag.FileName, "\")
file_s = file_name(UBound(file_name()))
file_ = file_s

file_path = Left(diag.FileName, Len(diag.FileName) - Len(file_s))
openbase file_path, file_
[ Eurora3D Team @ 25.03.2008. 11:27 ] @
Kvalitetan tekst ... (mislim na objasnjenje)
Samo da dodam za bazni index.
Baza novog niza u VB6 je 0 (i u drugim jezicima je to pravilo). Tako da kad stavimo Dim niz(3) As Integer imamo clanove niza niz(0), niz(1), niz(2), niz(3)
Postoji komanda za VB koja odredjuje bazu niza u nekom fajlu ako necemo da bude default vrednost. Pise se Option Base 1 (gde je ovo 1 bazni index)
Probaj kod ispod sa i bez prve linije i vidi razliku u debug prozoru.
Code:

'Option Base 1

Private Sub Form_Load()
Dim niz(3) As Integer
niz(1) = 2
niz(2) = 4
For i = LBound(niz) To UBound(niz)
Debug.Print "Index: " & CStr(i) & " Vrednost: " & CStr(niz(i))
Next i
End Sub
[ Eurora3D Team @ 25.03.2008. 11:31 ] @
file_s slobodno moze da se deklarise kao String (As String pre zareza), sad nije
Code:

file_name() = Split(diag.FileName, "\")
file_s = file_name(UBound(file_name()))
file_ = file_s

Ovaj kod uzima FilePath i razdvaja ga na elemente niza u obliku file_name(0)= "C:", file_name(1) = "NekiFolder", file_name(2) = "NasFajl.fl"
Onda uzima zadnji element i prepisuje ga u file_s. Posto je niz String niz file_s moze (i treba) da bude String
[ djpero.84 @ 25.03.2008. 11:52 ] @
Ali vec ga jesam deklarisao gore ispod Option Explicit kao string.....


Code:
Option Explicit
Dim file_name() As String
Dim file_s, file_path As String
Dim db As ADODB.Connection
Dim rs As ADODB.Recordset
Dim br As Integer
[ Eurora3D Team @ 25.03.2008. 12:16 ] @
Deklarisao si ga kao Variant (bilo sta)
Code:

Dim file_s, file_path As String

Za String treba
Code:

Dim file_s As String, file_path As String


[Ovu poruku je menjao Eurora3D Team dana 25.03.2008. u 13:41 GMT+1]
[ djpero.84 @ 25.03.2008. 12:23 ] @
Auu, odoh ja u apsolutne pocetnike :)

Pogresno sam shvatio deklarisanje varijabli. Zar ne postoji nacin da deklarisem grupu kao jedan tip varijabli
da se nemora pisati uvijek "As String" ili sta vec deklarisem?
[ Eurora3D Team @ 25.03.2008. 12:32 ] @
No :)
(Jedino da svi budu Variant ali to i nije neko resenje)
[ Aleksandar Ružičić @ 25.03.2008. 13:43 ] @
Citat:
djpero.84:Zar ne postoji nacin da deklarisem grupu kao jedan tip varijabli
da se nemora pisati uvijek "As String" ili sta vec deklarisem?

postoji u VB.NET i u FreeBASIC-u, ali u VB6 nazalost ne...