ApoX wrote:
>
> Nu har jeg efterhånden læst og spurgt så meget om disse dynamiske arrays,
> men lige lidt hjælper det. Jeg kan simpelthen bare ikke forstå hvordan det
> fungererer i praksis - om det er fordi jeg er dum eller fordi jeg simpelthen
> har ledt de forkerte steder lader vi stå som et ubesvaret spørgsmål. Derfor
> anmoder jeg om en venlig sjæls hjælp til at tyde min menneskelige anmodning
> og omsætte det til noget nyttigt kode:
>
> Lad os nu sige at denne kode skal kunne beherske grupper og emner. Emnerne
> er naturligvis nogle der hører ind under grupperne således:
>
> Gruppe 1
> Emne 1
> Emne2
> Gruppe 2
> Emne 1
>
Det vil være noget i retning af (fra Delphi-hjælpen under
Multidimentional Dynamic Arrays):
var
A : array of array of string;
I, J : Integer;
begin
SetLength(A, 10);
for I := Low(A) to High(A) do
begin
SetLength(A[I], I);
for J := Low(A[I]) to High(A[I]) do
A[I,J] := IntToStr(I) + ',' + IntToStr(J) + ' ';
end;
end;
> Dette er nemt at lave hvis man ved at der er 3 grupper og henholdsvis to og
> et emne, men hvis antallet af grupper og antallet af emner er ubestemt
> kommer problemet. Algoritmen/funktionen/rutinen skal derfor kunne håndtere
> at der kommer ekstra emner på eller at der ryger en gruppe, og at det hele
> kan hentes og gemmes.
Ekstra elementer klares ved at bruge SetLength, fjernelse klares med
f.eks. en løkke der rykker elementer tilbage.
gemmes:
lav en TFileStream, gem sizeOf(A) deri, derefter A:
fs:=TfileStream.create(..)
fs.writeBuffer(sizeof(A),sizeof(integer));
fs.writeBuffer(A,sizeof(A));
fs.free;
Hentes:
hent længden og læs ind..
fs:=TfileStream.create(..)
fs.readBuffer(mysize,sizeof(integer));
fs.readBuffer(A,mysize);
fs.free;
(om det virker er en anden sag...)
>
> Dette er en større sag, men husk at jeg anmoder de venlige sjæle
>
> - Thomas
--
>o ********* PINKY! aka. Rasmus Klitgaard-Nielsen *********
<()> **** Mad Programmer - Commodore Freak - ABP regular ****
^^ "Can't sing. Can't dance. Can handle a sword a little."
-- Victor's resume (Terry Pratchett, Moving Pictures)