Autor Beitrag
mhsteuer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Fr 18.02.05 11:23 
Hallo Leute!

Ich habe eine Frage an die TP-Kenner.
Kann man eigentlich dynamische Felder in Trubo Pascal erzeugen?

Danke im Vorraus.

Martin

_________________
Mittsommernacht
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 18.02.05 11:24 
Eingabe-Felder, Datenbank-Felder ? :gruebel:

Erklär mal, was du vor hast.
SchelmVomElm
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 154

W2K Pro
D5 Pro
BeitragVerfasst: Fr 18.02.05 11:41 
Array = Feld :?: :!:

Dynamische Arrays gibt's glaub ich nur in Delphi - und das auch noch nicht immer

_________________
for(;P("\n"),R--;P("|"))for(e=C;e--;P("_"+(*u++/8)%2))P("|"+(*u/4)%2);
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 18.02.05 11:48 
Aber Pointer gibt es. Damit könnte man sowas nachbilden. Wenn er denn sowas meint.
mhsteuer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Fr 18.02.05 11:59 
Also es geht um ein Array, in dem nach Bedarf 10 oder z.B. 500 integer-Werte eingetragen werden sollen. Nun dachte ich, es wäre ja günstig, wenn man das Feld der Menge der zahlen anpassen könnte.

_________________
Mittsommernacht
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 18.02.05 12:05 
Da es keine dynamische Arrays in TP gibt, musst du das mit Pointern und verketteten Listen lösen. Das funktioniert dann in Delphi und TP.
jojo-sp
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 317

Windows XP Prof, Vista Ultimate & Home Premium, Windows 7
Delphi 7 Enterprise, Delphi 2009
BeitragVerfasst: Fr 18.02.05 12:10 
Moinsen!
Kriegt man irgendwo ein gutes tut für (doppelt) verkettete Listen und Pointern allgemein. Könnte ich auch noch gut gebrauchen.

_________________
Ist der Ruf erst ruiniert, lebts sich gänzlich ungeniert...
Wilhelm Busch (1832 - 1908)
UC-Chewie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 531

WinXP
D5 Ent
BeitragVerfasst: Fr 18.02.05 12:11 
jasocul hat folgendes geschrieben:
Da es keine dynamische Arrays in TP gibt, musst du das mit Pointern und verketteten Listen lösen.


Nö, geht auch als Array. Dazu brauchst du ein statisches Array mit den Ausmaßen [0..0] (oder [0..1], wenn dir das der Compiler nicht erlaubt) und musst dich selbst um die Allozierung (GetMem bzw. New) und die Freigabe (FreeMem bzw. Dispose) kümmern. Dazu natürlich noch die Bereichsprüfung, falls es sowas in TP gibt, ausschalten.

_________________
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Fr 18.02.05 12:16 
Turbo Pascal kennt sowas leider nicht. Am saubersten wäre es wahrscheinlich ein Object zu programmieren, welches sowas wie SetLength implementiert. SetLength müsste den neuen Speicher allozieren, die alten Daten mit Move kopieren und diese nach dem Kopieren vernichten (ReallocMem gibt's meines Wissens leider auch nicht).
Irgend sowas in der Richtung vielleicht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
 DynType = Word;
 TDynData = Array[0..0of DynType;
 TDynArray = object
  private
   FLength : Word;
  public
   Data : ^TDynData;
   constructor Create;
   destructor Destroy;
   function GetLength : Word;
   procedure SetSize(const Value : Word);
 end;


Oder dann halt sowas wie ne verkettete Liste mit Pointern.

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 18.02.05 12:22 
jojo-sp hat folgendes geschrieben:
Moinsen!
Kriegt man irgendwo ein gutes tut für (doppelt) verkettete Listen und Pointern allgemein. Könnte ich auch noch gut gebrauchen.

Ein Link