[ 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 |
[ djpero.84 @ 25.03.2008. 10:49 ] @
[ 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... Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|