|
| Slette midt inde i en array [ekspertspørgs~ Fra : Thomas P |
Dato : 22-12-00 12:22 |
|
Hej,
Jeg kører med følgende record :
type
TLogFil = record
Animationer : integer;
TidTilAni : array [1..50] of integer;
NumLock : array [1..50] of boolean;
CapsLock : array [1..50] of boolean;
ScrollLock : array [1..50] of boolean;
end;
Imidlertid står jeg i den situation at jeg har fyldt mine arrays (dem fra
recorden) ud (fra 1 til 10) med oplysninger. Derefter skal jeg så på en
eller anden måde fjerne array[5] så array[6] bliver array[5] og array[7]
bliver array[6] og så videre. Alt dette skal kunne gøres uafhængigt af
hvilken frame der skal slettes. Håber kodeeksperterne lige vil afse et par
minutter til at se på mit problem :)
- Thomas
| |
David A. D. Konrad (22-12-2000)
| Kommentar Fra : David A. D. Konrad |
Dato : 22-12-00 12:46 |
|
Thomas P wrote in message <91vdgh$2dl$1@news.inet.tele.dk>...
>Hej,
>
>Jeg kører med følgende record :
>
>type
> TLogFil = record
> Animationer : integer;
> TidTilAni : array [1..50] of integer;
> NumLock : array [1..50] of boolean;
> CapsLock : array [1..50] of boolean;
> ScrollLock : array [1..50] of boolean;
> end;
>
>Imidlertid står jeg i den situation at jeg har fyldt mine arrays (dem fra
>recorden) ud (fra 1 til 10) med oplysninger. Derefter skal jeg så på en
>eller anden måde fjerne array[5] så array[6] bliver array[5] og array[7]
>bliver array[6] og så videre. Alt dette skal kunne gøres uafhængigt af
>hvilken frame der skal slettes. Håber kodeeksperterne lige vil afse et par
>minutter til at se på mit problem :)
Jeg ved ikke om det her er noget ekspertsvar, men hvad med
procedure SletIArray(var A:Array of integer;sletpos:integer);
var count:integer;
begin
for count:=sletpos to high(A) do
begin
A[count]:=A[count+1];
end;
end;
????
Hvis det testes soim følgende
procedure TForm1.Button3Click(Sender: TObject);
var test:Array[1..20] of integer;
count:integer;
begin
for count:=1 to 20 do test[count]:=count;
//vis i memo
for count:=1 to 20 do memo1.lines.add(inttostr(test[count]));
//vent i 3 sekunder;
sleep(3000);
SletIArray(test,10);
memo1.lines.clear;
//vis nye værdier i memo
for count:=1 to 20 do memo1.lines.add(inttostr(test[count]));
end;
bliver 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
til 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 13506116
hilsen,
| |
Thomas P (22-12-2000)
| Kommentar Fra : Thomas P |
Dato : 22-12-00 14:14 |
|
| Jeg ved ikke om det her er noget ekspertsvar, men...
Ok, jeg indrømmer det : Spørgsmålet var måske heller ikke et
ekspertspørgsmål - bare noget jeg ikke vidste en dyt om :)
| procedure SletIArray(var A:Array of integer;sletpos:integer);
| var count:integer;
| begin
| for count:=sletpos to high(A) do
| begin
| A[count]:=A[count+1];
| end;
| end;
| procedure TForm1.Button3Click(Sender: TObject);
| var test:Array[1..20] of integer;
| count:integer;
| begin
| for count:=1 to 20 do test[count]:=count;
| file://vis i memo
| for count:=1 to 20 do memo1.lines.add(inttostr(test[count]));
| file://vent i 3 sekunder;
| sleep(3000);
| SletIArray(test,10);
| memo1.lines.clear;
| file://vis nye værdier i memo
| for count:=1 to 20 do memo1.lines.add(inttostr(test[count]));
| end;
|
| bliver 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| til 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 13506116
|
| hilsen,
Heh, jeg tror lige jeg prøver koden; taqqer, Konrad ;)
- Thomas
| |
Finn Bindeballe (22-12-2000)
| Kommentar Fra : Finn Bindeballe |
Dato : 22-12-00 14:07 |
|
hvis jeg var dig, ville jeg bruge en linked list ( TList ) i stedet
for......
den er det nemt at 'adde', og 'remove' items...........
"Thomas P" <blomme@post.com> wrote in message
news:91vdgh$2dl$1@news.inet.tele.dk...
> Hej,
>
> Jeg kører med følgende record :
>
> type
> TLogFil = record
> Animationer : integer;
> TidTilAni : array [1..50] of integer;
> NumLock : array [1..50] of boolean;
> CapsLock : array [1..50] of boolean;
> ScrollLock : array [1..50] of boolean;
> end;
>
> Imidlertid står jeg i den situation at jeg har fyldt mine arrays (dem fra
> recorden) ud (fra 1 til 10) med oplysninger. Derefter skal jeg så på en
> eller anden måde fjerne array[5] så array[6] bliver array[5] og array[7]
> bliver array[6] og så videre. Alt dette skal kunne gøres uafhængigt af
> hvilken frame der skal slettes. Håber kodeeksperterne lige vil afse et par
> minutter til at se på mit problem :)
>
> - Thomas
>
>
| |
Uffe Kousgaard (22-12-2000)
| Kommentar Fra : Uffe Kousgaard |
Dato : 22-12-00 14:26 |
|
"Finn Bindeballe" <fb@pjholding.dk> wrote in message
news:91vjjg$ku5$1@news.inet.tele.dk...
> hvis jeg var dig, ville jeg bruge en linked list ( TList ) i stedet
> for......
> den er det nemt at 'adde', og 'remove' items...........
>
Ja, men er det ikke på den måde, at programmer bliver langsommere?
TList er et mere generelt format og remove kan næppe være lige så hurtigt
som Davids simple løsning. Om hastighed er væsentligt i denne situation kan
jeg selvfølgelig ikke afgøre.
Det overrasker mig i øvrigt, at Thomas ikke selv kunne finde på denne
løsning. Der er trods alt tale om et endog meget simpelt
programmeringsproblem.
Hilsen
Uffe
| |
Thomas P (22-12-2000)
| Kommentar Fra : Thomas P |
Dato : 22-12-00 14:40 |
|
| Det overrasker mig i øvrigt, at Thomas ikke selv kunne finde på denne
| løsning. Der er trods alt tale om et endog meget simpelt
| programmeringsproblem.
Lad mig sige det sådan: Arrays er HELT nyt for mig - det kan godt være det
lyder lidt mærkeligt, men det er altså første gang jeg arbejder med dem...
eh :)
- Thomas
| |
Uffe Kousgaard (23-12-2000)
| Kommentar Fra : Uffe Kousgaard |
Dato : 23-12-00 10:11 |
|
"Thomas P" <blomme@post.com> wrote in message
news:91vliu$dm4$1@news.inet.tele.dk...
> | Det overrasker mig i øvrigt, at Thomas ikke selv kunne finde på denne
> | løsning. Der er trods alt tale om et endog meget simpelt
> | programmeringsproblem.
>
> Lad mig sige det sådan: Arrays er HELT nyt for mig - det kan godt være det
> lyder lidt mærkeligt, men det er altså første gang jeg arbejder med dem...
> eh :)
Array's er én af de faciliteter, som selv ZX-81's Basic havde for 20 år
siden, så jeg havde lidt svært ved at forestille mig, hvordan man kunne
undgå at kende til dem. Og jeg tror, at stort set alle programmerings-sprog
har noget lignende.
Og god jul til alle.
Hilsen
Uffe
| |
Thomas P (23-12-2000)
| Kommentar Fra : Thomas P |
Dato : 23-12-00 10:51 |
|
| Array's er én af de faciliteter, som selv ZX-81's Basic havde for 20 år
| siden, så jeg havde lidt svært ved at forestille mig, hvordan man kunne
| undgå at kende til dem.
Ok... jeg indrømmer det: Jeg var helt vildt træt på det tidspunkt jeg
stillede spørgsmålet - umiddelbart virkede det totalt uoverskueligt for mig,
da der var 27 andre ting jeg også skulle lave med programmet lige præcis på
DET tidspunkt... (ævæv - I gennemskuede mig !)
| Og god jul til alle.
God Jul :)
| |
|
|