Avatar billede runem74 Nybegynder
22. maj 2002 - 17:06 Der er 20 kommentarer og
1 løsning

dynamisk array af relle tal

Hej,

Jeg skal bruge en dynamisk array af relle tal som jeg skal kunne bruge i flere funktioner i en unit. Jeg har brugt listboxe men dette er alt for langsomt da man hele tiden skal bruge strtofloat.

Er der nogen der har et godt link hvor der står beskrevet hvordan man bruger pointer og dynamisk opretter/fjerner variabler? Eller er der en der kan komme med nogle gode eksempler?

Mange hilsner,

Rune
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:12 #1
tal: array of Real;

Når du så skal sætte længden på dit array:

SetLength(tal, 9);

Den beholder de gamle tal der var fra 0 til 8...
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:13 #2
Ellers så brug en TStringList... Det er også hurtigere end en ListBox, men du får det hurtigste med færdigt array... Når det er dynamisk, så bliver det samtidig også meget langsomt!!!
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:14 #3
Eller har jeg ikke forstået hvad du vil?
Avatar billede zerohero Nybegynder
22. maj 2002 - 17:18 #4
Se eventuelt delphi's hjælpe-fil!

var
  a : array of single;
eller
  a : array of double;
eller
  a : array of real;
begin
  setlength(a,3);
  a[0] := 1.1;
  a[1] := 1.2;
  a[2] := 1.3;
end;

ZeroHero
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:19 #5
Problemet med array's i det hele taget, er at hvis du vil fjerne en værdi, så rykker dem der ligger efter den værdi sig ikke... Der kan du drage fordel af en StringList.
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:21 #6
Hey ZeroHero...

Hvornår ser vi nogle nye tutorials på din OpenGL-side? :)
Avatar billede zerohero Nybegynder
22. maj 2002 - 17:21 #7
I stedet for en dynamisk array kan du også gøre følgende, i tilfælde af at du ved hvor lang din array skal være...

var
  a : array[0..2] of single;
begin;
  a[0] := 1.1;
  a[1] := 1.2;
  a[2] := 1.3;
end;
Avatar billede zerohero Nybegynder
22. maj 2002 - 17:23 #8
Jeg sidder faktisk lige og leger med noget PHP til min side... Mem forhåbentligt snart - er du da ved at have læst dem alle? :-))
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:24 #9
Yepper! Glæder mig! Jeg skal jo ha' noget at lave i sommerferien! ;)
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:28 #10
>>runem74
Yep! Lyt til ZeroHero! Et færdigt array er laaaaangt hurtigere end et dynamisk! Jeg lavede en gang et program som kunne hente filer fra et netværk (og resume), og der prøvede jeg både at læse data ind i normalt array og et dynamisk. Et dynamisk kunne nå op på ca. 200-300 kb/sek mens et færdigt array kunne klare 1,4 mb/sek!!! Og der definerede jeg kun størrelsen en gang!!!

Syntes bare lige du skulle vide det! ;)
Avatar billede runem74 Nybegynder
22. maj 2002 - 17:28 #11
Ok, det som du angiver virker men jeg ville jo også godt kunne bruge arrayen 'tal' i en anden funktion i en unit.
Avatar billede zerohero Nybegynder
22. maj 2002 - 17:31 #12
det er bare at eks: form1.caption := floattostr(a[0]);
Avatar billede zerohero Nybegynder
22. maj 2002 - 17:32 #13
Du skal selvfølig ikke lave lokale defination af din array hvis du vil bruge det i andre procedure... erklær den eventuelt sammen med din form1 (Øverst i din pas fil)...
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:33 #14
Det er da ikke noget problem...

I din anden unit:

var
  Tal: array of Real;

implementation

....

end.

Så inkluderer du bare din unit under uses ved dit program... Ellers så bruger du også zerohero's eksempel...
Avatar billede runem74 Nybegynder
22. maj 2002 - 17:39 #15
form1.caption:=floattostr(a[0]); ?????

Vil du have at jeg skal sende min data fra funktion til funktion via formens navn (lyder lidt skørt)?

Det er et meget stor array programmet skal lave derfor ønsker jeg at den skal værre dynamisk. Derfor forsøger jeg at gøre det så hurtigt som muligt med dette som et krav.
Avatar billede runem74 Nybegynder
22. maj 2002 - 17:40 #16
Ok i har svaret hvordan vil i dele?
Avatar billede runem74 Nybegynder
22. maj 2002 - 17:41 #17
Mange tak.
Avatar billede zerohero Nybegynder
22. maj 2002 - 17:52 #18
Jeg mente ikke at du sende dine data fra funktion til funktion via form.caption det var blot for at vise hvordan du brugte en array i en funktion...
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:55 #19
>>ZeroHero
Vil du ha' halvdelen af pointene? Du gav jo halvdelen af svaret!
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:57 #20
Jeg opretter lige et spørgsmål...
Avatar billede hermandsen Juniormester
22. maj 2002 - 17:58 #21
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester