Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Frage bezüglich arrays (https://www.delphipraxis.net/7065-frage-bezueglich-arrays.html)

iLLe 31. Jul 2003 18:56


Frage bezüglich arrays
 
Ich hab ein Delphi buch und ich verstehe da was nicht vielleicht könnt ihr mir helfen:
Code:
type TPersDat = record
     name:string[20];
     geburt:TDateTime;
     student:boolean;
     tel:Longint
end;

var personen: array of TPersDat;
    pm,             // Anzahl Datensätze
    index:Word      // aktuelle Datensatznummer(1,2,3...pm)
Datensatz an aktueller Position(index) einfügen:
Code:
procedure TPerson.dsneu;
var i:Word;
begin
  Inc(pm);
  Setlength(personen,pm);
  for i:=pm downto index+2 do Personen[i-1]:=Personen[i-2];
  inc(index)
end;
Also Ich verstehe das irgendwie null die procedure Tperson.dsneu
woher weiss ich welcher wert pm hatt oder index ??? kann mir mal vielleicht jemand die procedure erklären das vorallem die for Anweisung
kommt mir chinesisch for :(

bzw da noch eine prozedur wo ich nicht verstehe ich kann mich das irgendwie nicht reindenken :( kann mir vielleicht jemand erklären wie man das sehen muss?
Code:
procedure Tperson.dsLoesch;
var i:word;
for i:=index to pm-1 do personen[i-1]:=personen[i];
dec(pm);
setlength(personen,pm)   //dimension verkürzen
end;
zur beschreibung steht "Datensatz an aktueller Position (index) löschen. Wäre dankbar für eure hilfe.

JoelH 31. Jul 2003 19:19

hmm,
 
das sieht mir schwer nach globalen Variablen aus.

iLLe 31. Jul 2003 19:34

Re: Frage bezüglich arrays
 
naja das hilft mir nicht weiter :mrgreen:

iLLe 31. Jul 2003 20:49

Re: Frage bezüglich arrays
 
ok die procedure löschen hab ich gerade geschnallt glaub ich hatte vergessen das wenn man 0-1 macht man wieder beim höhchsten zeichen rauskommt.
Die prozedure tut immer den höhchsten wert in den index sozusagen null reinschreiben dann den datensatzt um eins verkürzen richtig? und das macht es bis nur noch ein datensatzt übrig ist.

MSCH 31. Jul 2003 20:50

Re: Frage bezüglich arrays
 
Lass es mich so erklären:
erstens ist das ein dynamisches Array welches nichts weiter ist, als eine Kette von zeigern; in deinem Falle auf Records des typs x.

Wer das Delphi Buch geschrieben hat, war blutiger Anfänger :dancer: . Seit wann benutzt man globale Variablen für die Index und Größenermittlung von Arrays ? Dazu gibts die Funktion High(). Sei's drum.
Die Funktion DSNEU macht nichs weiter, als
Code:
  Inc(pm);
  Setlength(personen,pm);
erhöht die globale Variable pm um 1 und anschließend auch das Array.
geht einfacher mit:
Code:
SetLength(personen, high(personen)+1);
Code:
  for i:=pm downto index+2 do Personen[i-1]:=Personen[i-2];
hier verschiebt er das gesamte Array vom Ende zum Anfang
was die var index für einen einfluß hab mag ich nicht deuten, das Oracle ist im Urlaub :-).
Wenn index = 0 dann krachts zumindest, weil Index out of Range

Wenn ich mir die nächste Funktion anschaue, soll index wohl die aktuelle Position sein. grübel; dann ist der Sinn der Schleife darin,
**keine Ahnung***, weil weiterhin Grütze. Nehmen wir an Index ist 0 und die Arraygröße ist 1 , dann heist die Schleife:
for 0:=1 downto 2 , oje oje.

Code:
var i:word;
for i:=index to pm-1 do personen[i-1]:=personen[i];
dec(pm);
setlength(personen,pm)   //dimension verkürzen
end;
hier löscht er einen Eintrag indem er alles ab dem Eintrag um eins nach vorn schiebt und den Letzen löscht, sprich das Array wieder verkleinert.

grez
msch

iLLe 31. Jul 2003 21:23

Re: Frage bezüglich arrays
 
kennst du vielleicht ein gutes buch mit vielen praktischen beispielen was nicht 1000 seiten lang ist? Ich bin kein vollanfänger aber auch nicht gerade "fortgeschritten" also etwas ahnung habe ich ich wollte son buch mal durcharbeiten damit ich etwas mehr übung kriege naja vielleicht kannst du mir ein sehr gutes empfehlen? Am besten wäre so 500 seiten rum :mrgreen:

und was bedeutet index out of range :)?

Ich bräuchte ein buch mit ganz vielen praktischen beispiel prorgammen wo man machen muss und testen weil wen man etwas macht lernt man am besten ich zumindestens aber ich hab mir einfach mal eins gekauft naja 1200 seiten bin rgad bei 108 :freak: und manchmal sind echt komische sachen drin

iLLe 1. Aug 2003 00:39

Re: Frage bezüglich arrays
 
maybe kann ja wer hier ein buch empfehlen mit viel praxisanwendung :bounce1:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz