/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
0-based eller 1-based [VB6]
Fra : Jens Vestergaard


Dato : 11-08-03 19:29

Hejsa,

Er det mig, der overser logikken, eller er der overhovedet nogen logik
m.h.t. hvilke collections/arrays m.v., der er 0-based og hvilke der er
1-based?

Jeg ved godt, at man kan sætte Option Base, så egne arrays i det mindste er,
som man vil have dem, men jeg synes, at der er (ulogiske) forskelle i
diverse object-modeller - både i VBs egne kontroller, i diverse custom
controls, Outlooks object-modeller osv, osv.

Hvor findes 'systemet'?

--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp




 
 
Peter Lykkegaard (11-08-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 11-08-03 20:39


"Jens Vestergaard" <j@railsoft.dk> wrote in message
news:3f37e063$0$83066$edfadb0f@dtext01.news.tele.dk...

> Er det mig, der overser logikken, eller er der overhovedet nogen logik
> m.h.t. hvilke collections/arrays m.v., der er 0-based og hvilke der er
> 1-based?
>
Lad vær med at mikse/sammenligne array og collection
Det er ikke helt det samme
NB - Typisk når du traversere en collection kan du bruge "for each"

Men ellers er der kun trail'n'error (TM) tilbage

mvh/Peter Lykkegaard



Jens Vestergaard (11-08-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 11-08-03 21:51

"Peter Lykkegaard" <polonline@hotmail.dk> skrev i en meddelelse
news:3f37f0ee$0$32545$edfadb0f@dread16.news.tele.dk...
>
> "Jens Vestergaard" <j@railsoft.dk> wrote
> > Er det mig, der overser logikken, eller er der overhovedet nogen logik
> > m.h.t. hvilke collections/arrays m.v., der er 0-based og hvilke der er
> > 1-based?
> >
> Lad vær med at mikse/sammenligne array og collection
> Det er ikke helt det samme

Nej - det ved jeg godt. Men i dette tilfælde har de dog det til fælles, at
de kan være 0- eller 1-based..

> NB - Typisk når du traversere en collection kan du bruge "for each"

Jep - det er jeg også med på (jeg har leget med VB siden v. 2), men jeg er
træt af, at hvis jeg f.eks. skal have fat i et Outlook MailItems 'første' .
Recipients(), så skal jeg på trail-n'-error-togt for at finde ud af om det
er mi.Recipients(0) eller mi.Recipients(1), jeg skal kigge efter.

Control-arrays er som bekendt 0-based, men når jeg add'er den første
ListItem til et ListView, bliver det ListItems(1), og Panels i Statusbar er
1-based, mens ListIndex i en ListBox er 0-based.

Derfor: Hvis der nu var et 'system', som nogen (men ikke jeg!) havde
opdaget, så ville jeg gerne høre om det...

--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp



Peter Lykkegaard (11-08-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 11-08-03 21:58


"Jens Vestergaard" <j@railsoft.dk> wrote in message
news:3f38018d$0$83065$edfadb0f@dtext01.news.tele.dk...

> ... hvis jeg f.eks. skal have fat i et Outlook MailItems 'første' .
> Recipients(), så skal jeg på trail-n'-error-togt for at finde ud af om det
> er mi.Recipients(0) eller mi.Recipients(1), jeg skal kigge efter.
>
Lav nogle konstanter - så skal du bare rette eet sted, hvis du får en
runtime error
Forresten er den 0 baseret svjh

> Control-arrays er som bekendt 0-based, men når jeg add'er den første
> ListItem til et ListView, bliver det ListItems(1), og Panels i Statusbar
er
> 1-based, mens ListIndex i en ListBox er 0-based.
>
Lær at leve med det

> Derfor: Hvis der nu var et 'system', som nogen (men ikke jeg!) havde
> opdaget, så ville jeg gerne høre om det...
>
Der er ikke noget system - det må du da have dundet ud efterhånden

Men ellers når din tid kommer til .NET så kan du da glæde dig over at der er
betydeligt mere system over alle native klasser etc
Fx alle properties i controls har en property der hedder text...
Ikke caption eller andet popsmart - næh bare text

mvh/Peter Lykkegaard



Tomas Christiansen (12-08-2003)
Kommentar
Fra : Tomas Christiansen


Dato : 12-08-03 07:59

Jens Vestergaard skrev:
> Er det mig, der overser logikken, eller er der overhovedet nogen logik
> m.h.t. hvilke collections/arrays m.v., der er 0-based og hvilke der er
> 1-based?

Det er lidt ligesom med højre- eller venstre-kørsel: Det kan umiddelbart
virke ulogisk at det ikke er ens alle steder, men der er altid en historisk
årsag til det.

Yderligere: Hvis man ikke på forhånd har undersøgt hvilken side af vejen man
skal køre i, når man kommer til et nyt land (eller en ø - f.eks. Cypern), så
er det temmelig sikkert at man på ét eller andet tidspunkt opdager, hvis man
gær det forkert.

Jeg ved godt at det ikke var megen hjælp, men se det sådan her: VB 6.0 er
blot lige så ulogisk og forvirrende som resten af verden er

-------
Tomas


Jens Vestergaard (12-08-2003)
Kommentar
Fra : Jens Vestergaard


Dato : 12-08-03 08:45

"Tomas Christiansen" <toc-01-nospam@blikroer.dk> skrev i en meddelelse
news:bha356$vt5$1@news.cybercity.dk...
> Jeg ved godt at det ikke var megen hjælp, men se det sådan her: VB 6.0 er
> blot lige så ulogisk og forvirrende som resten af verden er

Denne NG udmærker sig ved, at man kan blive klog på både VB og resten af
verden! Det er jo i virkeligheden ikke så lidt!

Nå - jeg slog op og fandt følgende:

<QUOTE>
A collection is either zero-based or one-based, depending on what its
starting index is. As you might guess, the former means that the index of
the first item in the collection is zero, and the latter means it's one.
Examples of zero-based collections are the Forms and Controls collections.
The Collection object is an example of a one-based collection.
Older collections in Visual Basic are more likely to be zero-based, while
more recent additions are more likely to be one-based. One-based collections
are somewhat more intuitive to use, because the index ranges from one to
Count, where Count is the property that returns the number of items in a
collection.
The index of a zero-based collection, by contrast, ranges from zero to one
less than the Count property.
</QUOTE>

Well... et 'system' kan man vel ikke kalde det, men så da et hint...

Hvis bare alle opslag i MSDN eller lignende steder var så venlige som f.eks.
'Split function.'..:

<QUOTE>
Split function
Returns a zero-based, one-dimensionalarray containing a specified number of
substrings
</QUOTE>

....at oplyse zero- eller one-based, så var meget jo vundet, men heller ikke
i dokumentationen er der altså konsistens på det område.

Der er jo TO problemer i det. Først at finde ud af, hvordan tingene hænger
sammen.... og derefter af HUSKE det. Det sidste er - med tiltagende
alder - nok det sværeste...


--
mvh
Jens Vestergaard (mailadr i dette indlæg er ikke gyldig!)
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste