FŐOLDAL

KAPCSOLAT

MÉDIAAJÁNLAT


REGISZTRÁCIÓ HÍRLEVÉL
PC-ÁRUHÁZ DRIVERS SZAMITOGEP Antivirus SZAKÜZLET

· Friss (Szoftver)
·  Úmutató az Intel SpeedStep bekapcsolásásához
·  Úmutató a Cool'n'Quiet bekapcsolásásához
·  Windows XP ”Reloaded” - A hivatalos álláspont
·  Peer-to-peer telefonálás egyszerűen
·  Novell Kisvállalati Csomag 6.5
·  Microsoft Office Visio 2003
·  Windows Media
·  Spamek szűrése szabállyal
·  Itt a SUSE LINUX 9.0
·  OpenOffice
·  NetMeeting
·  Shavlik HFNetChk 4.0 – Windowsupdate.com helyett
·  Új email szerver a SuSE-től
·  Novembertől a boltokban a magyar SuSE Linux 7.3
·  COLOBOT
·  Készítsünk honlapot
·  Hány lapra elegendő a festék???
·  Az NTFS 5 filerendszer
·  Idő szinkronizálása Windows 2000 erdőben
·  A Windows2000 lemezkezelésének újdonságai
· Cikkek > Szoftver
· Borland Delphi 4 – 21 nap alatt 13. rész
Dátum : 2000-11-12 20:43:26
Szerző : Pibee


DINAMIKUS TÖMBÖK

A Delphi 4.0 ismerteti meg velünk a dinamikus tömbök fogalmát. A dinamikus tömböt deklarálhatjuk kezdő érték nélkül, és nincs tárhelye meghatározva a deklaráció pillanatában. Később a tömb méretét meg lehet adni, a SetLength—tel. Nézzük meg, hogy is néz ki:

var
BigArray : array of Integer; { no size }
X : Integer;
begin
X := GetArraySize; { function which returns the needed size }
SetLength(BigArray, X); { dynamically allocate array }
{ Now fill in and use BigArray }
end;

Új kifejezés: A dinamikus tömb az egy tömb melynek memóriába való kiosztása a futtatás ideje alatt történik meg. Ez a dinamikus tömb lehet nagyobb vagy kisebb, a program igényeitől függően.

A fontos az, hogy a tömb kiosztható legyen, és megkapja pontosan azt az elemszámot, amit megkíván.
Hogy érthetőbb legyen, mondjuk azt, hogy szükséged van egy INTEGERekből álló tömbre. És közelebbről azt mondjuk, hogy bizonyos esetekben csak 10 Integer elhelyezésére való memóriára lesz szükségünk, de más esetekben több mint 1000 Integer lesz.
A programod nem fogja tudni a fordításnál, hogy mennyi elemre lesz majd szüksége- ez a szám nem tudható, csak a RUNTIME alatt (futás alatt). Mielőtt feldobnánk a dinamkus tömböt, Neked meg KELL adnod egy sort, 1000 Integerrel, és rengeteg memóriát fogsz pocsékolni, mert néha az alkalmazásod csak 10, 20 vagy 30 Integert tartalmaz. A dinamikus tömbbel annyi memóriát tudsz kiosztani, amely épp az adott időben szükséges. Újrakiosztani is tudsz egy tömböt, használva a „Copy” (másol) funkcióbillenytyűt. Például, mondjuk azt, hogy létrehoztál egy tömböt 100 elemből, és tudod, hogy ki kell osztanod újra ezt a tömböt, 200 elemmel. Ebben az esetben a kód így nézhet ki:

Copy(BigArray, 200);

A tömb tartalma megőrződik, és a nagysága megnövekszik 100-zal, 200-ig. Kétdimenziós tömbök létrehozásához a köv. kódot használod:

var
BigArray : array of array of Integer;
begin
SetLength(BigArray, 20, 20);
BigArray[0][0] := 200;
{ Többi kód itt. }
end;

Miután a dinamikus tömböt létrehozta, az elemeit úgy kezeli, mint egy rendes, általános tömb elemeit.

SZTRINGEK

A sztring = karaktersor

A sztringeket nagyon gyakran használjuk a programozás során. Az Object Pascalban 3 külömböző sztringtípust ismerünk: a hosszú sztringet, a rövidet és a széles sztringet.
A Pascal még ismeri ezeken felül a bizonyos üres karaktersort is.
Most gyorsan végigszaladunk ezeken, és később tüzetesebben is meg fogjuk vizsgálni Őket.

A rövid sztringek

A rövid sztring-típus egy bizonyos nagyságú karaktersort jelent, maximum 255 karakterrel. Deklarálhatjuk a rövid sztringet kétféleképpen.
Az egyik, hogy előre definiált ShortString-et deklarálsz, 255 byte nagysággal. A másik lehetőség pedig, hogy a sztring kulcsszót használod indexeléssel, hogy meghatározd a nagyságot:

var
S1 : ShortString; { 255 characters long }
S2 : string[20]; { 20 characters long }

A füzérkezelés ezeken a ShortString-eken nagyon gyors, mert a memória kiosztásának nagyságát nem változtatja meg a string felé. A rövid sztringek eléggé elavultak, ezért ajánlatos helyettük hosszú sztringeket használni. A rövid sztringek.

A hosszú sztringek

A hosszú sztring adattípus az egy dinamikusan kiosztott sztring objektum. A mérete csak a memória nagyságától függ.
Az Object Pascal allokál és de-allokál a sztringnek annyi memóriát, amennyire szüksége van. A hosszú sztringek nagyon rugalmasak, de néha lassabbak a rövid sztringeknél, amikor pl. sok-sok füzérkezelést hajt vmi végre.
Ebből következik, hogy a túlterhelés több dinamikus kiosztást igényel, ahogy a hosszú sztring tartalma változik. Azon felül, hogy a véghezvitel sebessége kritikus, használnod kell a hosszú sztringeket. Hogy deklarálj egy hosszú sztringet, csak a STRING kulcsszót kell használnod, méret megadása nélkül:

var
S : string; { long string, dynamically allocated }

A sztring dinamikusan allokált, ezért módosítani tudod a stringet, mindig ahogy akarod, és nem kell aggódnod, hogy a „színfalak mögött” mi történik. A hosszú sztringet nagyon könnyű használni, mert nem kell attól félni, hogy kifut a memóriából, ami neki van szánva. A hosszú sztringeknek nincsen 0 elemük, ahogy a rövideknek.
Később mindent megvitatunk.



Warning: require(../forum/centercomments.php) [function.require]: failed to open stream: No such file or directory in /var/www/www.szamitogep.hu/show/read.php on line 95

Warning: require(../forum/centercomments.php) [function.require]: failed to open stream: No such file or directory in /var/www/www.szamitogep.hu/show/read.php on line 95

Fatal error: require() [function.require]: Failed opening required '../forum/centercomments.php' (include_path='.:/usr/share/php/') in /var/www/www.szamitogep.hu/show/read.php on line 95