Autor Beitrag
liquid air
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 76



BeitragVerfasst: Mi 24.10.07 17:17 
Hi alle,

tja, Frage steht oben ^^ wenn ich ein dynamisches Array hab, wie kann ich dann dessen Länge feststellen? ...Also, falls ich mich dumm ausdrück: ich hab ein dyn. Array of integer. Da will ich n paar integerzahlen reinschreiben. dafür müsst ich ja aber ungefähr so machen:
ausblenden Delphi-Quelltext
1:
myarray[arraylaenge+1]:=myint;					


und dazu müsste ich halt die momentane arraylaenge irgendwie bekommen...hab schon versucht über ne hilfsvariable und dann hilfsvariable:=length(myarray) ...hat aber auch nich geklappt, das is also wohl was anderes ^^'


Wenn mir Jmd helfen kann, ich würd mich bedanken ^^


Gruss Matthias

Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 24.10.07 17:21 
Length() ist schon richtig, aber so wie du es einfügen willst geht es natürlich nicht! da der Index von 0 bis Länge - 1 geht!

_________________
Markus Kinzler.
liquid air Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 76



BeitragVerfasst: Mi 24.10.07 17:25 
hmm, ich glaub ich versteh was du meinst...aber wie kann ichs dann machen?
...also, ich glaub ich schick dir einfahc ma den betreffenden teilcode, damit du weisst was ich mein...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
while s[i+1]<>'' do begin 
    inc(i);
    opn:=length(operanden);
    case s[i] of
      '1'..'9': operanden[opn+1]:=strtoint(s[i]);
    end;
  end;


operanden is das array of integer...s is mein string

die Funktion soll jetzt den String durchgehn und alle Zahlen, die darin vorkommen, in dieses Array operanden schreiben..
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 24.10.07 17:29 
Nochmal der array geht von index 0 bis Länge - 1 als o bei länge 4 0 bis 3. Du versuchst aber auf Index 5 zuzugreifen und der existiert nicht!!!

_________________
Markus Kinzler.
liquid air Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 76



BeitragVerfasst: Mi 24.10.07 17:35 
ja okay, das versteh ich ^^
aber es is ja ein dynamisches array, also nicht in seiner länge festgelegt. dann müsst ich doch das array um einen index "verlängern" können, und dann auf das neu entstandene element zugreifen können, oder?

wenn ich also hätte länge=4 mit array[0..3]=(3, 5, 1, 6), dass ich dann die länge:=5 setze und dann als array[4] meine aktuelle integer-zahl einsetzen kann

muss doch gehn oder? ^^
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mi 24.10.07 17:38 
Nicht von alleine. Du musst ihn mit setLength() vergrößern.

_________________
Markus Kinzler.
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Mi 24.10.07 17:39 
Die Länge eines Array änderst du mit SetLength ;)

Gruß
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
liquid air Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 76



BeitragVerfasst: Mi 24.10.07 17:45 
jep weiss ich, ich dacht nur es geht simpler, weil so n paar zeilen code dazukommen, die auf den ersten blick unnötig kompliziert aussehn...habs aber jetzt auch auf die art hinbekommen ^^ sorry, bin manchmal bissl verwirrt mit den ganzen indizees...dass veim array das erste element index 0 hat, un bei z.b. memo-feld das erste den index 1 hat...is verwirrend fürn anfänger ^^ ich danke euch, und wens interessiert (ma kann ja nie wissen >.<) hier is der quellcode dann...


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
while s[i+1]<>'' do begin 
    inc(i);
    opn:=length(operanden);
    case s[i] of
      '1'..'9'begin
         setlength(operanden, opn+1);
         operanden[opn]:=strtoint(s[i]);
       end;
    end;
  end;



Danke, Gruß Matthias
mexx2k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 60



BeitragVerfasst: Fr 26.10.07 09:17 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
type Spielflaeche = array of TEinzelfeld;

begin 

...
setlength(Spielflaeche,iX);
...
end;


^^
'(' erwartet, aber ',' gefunden

^^
warum?
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Fr 26.10.07 12:18 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
 type TSpielflaeche = array of TEinzelfeld;

 var Spielflaeche: TSpielflaeche; 

 begin 
 ...
 setlength(Spielflaeche,iX);
 ...
 end;