|
| 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
| |
|
|