05. november 2003 - 17:25Der er
26 kommentarer og 1 løsning
Cleare et array !
Jeg har følgende procedure der skal sikre sig at alle værdierne i array'et har 0:
procedure TForm1.FormCreate(Sender: TObject); Type k = array[0..60,0..60] of integer; var kk: k; m,n: Integer; begin a:= 300; b:= 300; timer1.Enabled:= False; timer2.enabled:= False; timer3.enabled:= False; timer4.enabled:= False;
for n:= 0 to 60 do begin for m:= 0 to 60 do begin kk[n,m] := 0; end; end;
end;
Mit problem er bare at der er langt fra alle værdierne der bliver 0. Mange af dem bliver sat til nogle underlige tal jeg ikke ved hvor kommer fra! Har jeg gjort noget galt, eller er der en anden bedre måde til at 'nulstille' et array ?
den brokker dig jo ikke når de er under en procedure... men i stedet for at have det stående så mange steder, så ville jeg lave en funktion, da der er mere overskueligt og nemmere at rette i... Men hvorfor brokker den sig ?
kk[3,28] til kk[31,44] og kk[33,31]til kk[33,60] og kk[35,31] til kk[42,31] og kk[49,59] til kk[50,60] bliver sat til 0, men resten blive sat til alt lige fra -1 til 2.000.000.000
det fatter jeg ikke !
Synes godt om
Slettet bruger
05. november 2003 - 18:01#17
Hmm... lyder lidt underligt. Har du prøvet med ZeroMemory(@kk, SizeOf(kk));
Så siger den: Declaration expected but identifier 'kk' found Det er 5 linie nedefra den brokker sig... hvorfor det ? den brokker sig ikke i de andre 3 timere !
Den sætter nogle underlige tal ind i arrayet stadig ! Du kan se det i Filer i programmet... Tryk på piltasterne og se igen på array værdierne... Så har de ændret sig...
Synes godt om
Slettet bruger
05. november 2003 - 18:35#21
Ser lidt underlidt ud...
Det her virker ved mig:
procedure TForm1.Button1Click(Sender: TObject); type k = array[0..60,0..60] of integer; var kk: k; I, J: Integer; begin ZeroMemory(@kk, SizeOf(kk)); for I := 0 to High(kk) do for J := 0 to High(kk[I]) do begin ListBox1.Items.Add(IntToStr(I)+':'+IntToStr(J)+ ' ' + IntToStr(kk[I,J])) end; end;
gør det også hos mig... tror det ligger i at array'et bliver defineret under hver procedure og derved går noget galt ! Det virker sådan... Kan man ikke definere et array globalt for hele programmet ?
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.