/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Arrays
Fra : Erik Vest Zielke


Dato : 05-08-01 11:24

Hvis man har et dynamisk array og så vil tilføje et nyt item, eler hvad man
nu kalder det ved arrays, hvordan søger man får at det ikke overskriver det
andet, altså ligge det i det første array der er nil?

og hvordan tællerman hvor mange der er fyldte så man ved hvor når man skal
forøge sit array?

--
Erik Vest Zielke
Favstrupvej 146, Haderslev
Tlf: 74566603 - Mobil: 25369412
http://www.evz.dk



 
 
Uffe Kousgaard (06-08-2001)
Kommentar
Fra : Uffe Kousgaard


Dato : 06-08-01 07:10

"Erik Vest Zielke" <admin@evz.dk> wrote in message
news:9kl99r$e6i$1@news.cybercity.dk...
> Hvis man har et dynamisk array og så vil tilføje et nyt item, eler hvad
man
> nu kalder det ved arrays, hvordan søger man får at det ikke overskriver
det
> andet, altså ligge det i det første array der er nil?

Hvis du har defineret f.eks. setlength(a,5), har fyldt data i alle de første
6 elementer og så kalder setlength(a,6), har du en ny ledig plads sidst i
array'et og alle dine hidtidige data er bevaret. Dette mener jeg gælder
uanset hvad du gemmer i array'et, antallet af dimensioner etc. Alt dette gør
delphi for dig.

> og hvordan tællerman hvor mange der er fyldte så man ved hvor når man skal
> forøge sit array?
Brug high funktionen. Det kan i øvrigt betale sig ikke at udvide med kun én
plads af gangen.

Hilsen
Uffe




Thomas Due (07-08-2001)
Kommentar
Fra : Thomas Due


Dato : 07-08-01 07:24

> Hvis du har defineret f.eks. setlength(a,5), har fyldt data i alle de første
> 6 elementer og så kalder setlength(a,6), har du en ny ledig plads sidst i
> array'et og alle dine hidtidige data er bevaret. Dette mener jeg gælder
> uanset hvad du gemmer i array'et, antallet af dimensioner etc. Alt dette gør
> delphi for dig.

Du mener forhåbenligt "de første 5 elementer"? ;)
SetLength(a, 5) giver jo et dynamisk array med positionerne 0,1,2,3,4.

> > og hvordan tællerman hvor mange der er fyldte så man ved hvor når man skal
> > forøge sit array?
> Brug high funktionen. Det kan i øvrigt betale sig ikke at udvide med kun én
> plads af gangen.

Det er ikke helt det svar som Erik beder om, men tæt på. High funktionen
giver dig positionen på det sidste element i listen. Du kan så enten vente
til du når den position, eller lige før, eller når du skal til at sætte ind
i den efterfølgende, og så udvide arrayet med et ekstra antal elementer.
F.eks. 5. Som Uffer siger så kan det ikke betale sig at udvide med kun et
element af gangen. Selv om det nogle gange kan være praktisk nok.
Du skal så bare huske hvor i arrayet din pegepind er.

Mvh
Thomas

Uffe Kousgaard (07-08-2001)
Kommentar
Fra : Uffe Kousgaard


Dato : 07-08-01 08:11


"Thomas Due" <tdue@eon.dk> wrote in message
news:8fa5d0f1.0108062223.5dcb0ec1@posting.google.com...
> Du mener forhåbenligt "de første 5 elementer"? ;)
Ja, det var en smutter.

> > > og hvordan tællerman hvor mange der er fyldte så man ved hvor når man
skal
> > > forøge sit array?
> > Brug high funktionen. Det kan i øvrigt betale sig ikke at udvide med kun
én
> > plads af gangen.
>
> Det er ikke helt det svar som Erik beder om, men tæt på. High funktionen
> giver dig positionen på det sidste element i listen. Du kan så enten vente
> til du når den position, eller lige før, eller når du skal til at sætte
ind
> i den efterfølgende, og så udvide arrayet med et ekstra antal elementer.
> F.eks. 5. Som Uffer siger så kan det ikke betale sig at udvide med kun et
> element af gangen. Selv om det nogle gange kan være praktisk nok.
> Du skal så bare huske hvor i arrayet din pegepind er.

Jeg mener faktisk det var det Erik spurgte til. Han er jo under alle
omstændigheder nødt til at holde styr på hvilken plads, han gerne vil
benytte i arrayet. Ellers er der heller ikke megen mening i at kalde high
funktionen. Det havde selvfølgelig været en anden sag, hvis han havde
benyttet en klasse á la TList, hvor man med Add metoden kan være ligeglad
med den interne position i arrayet (jeg mener at kunne huske, at Tlist også
er et array internt, men gider ikke kigge efter i VCL kildekoden lige nu).

Hilsen
Uffe




Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste