/ 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
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 :)



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste