csodák tstringlist

Object Pascal együtt assembly nyelven a jelenlegi formájában Delphi 5/6/7 korlátlan lehetőségeket programozásához a repülés a gondolat, és ez a cikk, akkor nyissa meg a sorozat, amelyben mi következetesen azt bizonyítják ezt.

Kezdjük egy egyszerű, rendkívül hasznos, de kevéssé ismert, legalábbis a kezdők, standard osztályú Delphi TStringList. Most majd meglátjuk, milyen szépen megoldott tipikus feladatokat ebben az osztályban.

Kezdeni, dióhéjban, amit ezek a figyelemre méltó szálláshelyeken tárgyak ebben az osztályban. A TStringList - egy osztály, amely célja, hogy tárolja egy listát a húrok és objektumok listáját egy szöveges megjelenítése (csak úgy, mint az 1C - ez SpisokZnacheny). Ezen túlmenően, ez a lista ábécé-sorrendben, vagy olyan összehasonlító funkció írta a programozó. Ezen túlmenően, ez a lista is értelmezhető értéklistákban (Name = string). Ezen túlmenően, ez a lista lehet menteni egy fájlba vagy patak alakítjuk folytonos vonal vagy egy vesszővel elválasztott karakterláncot. Fizikailag kapott karakterlánc vagy folyam egy sima szöveg, amelyben a sorok karakter választja el egymástól CR / LF (szabványos Windows Text File) és a vessző (CommaText, Excel). Nos, persze, hogy képes feltölteni egy listát a húrok a fájl folyam, vonósok és vonósok, vesszővel elválasztva. Különös figyelmet érdemel a figyelemre méltó tulajdonsága csomagolás egy string vesszővel elválasztva: a fordított vonal kicsomagolás mindig vissza eredeti formáját. Ez azt jelenti, hogy több megengedett fészkelő húrok vesszővel elválasztva, amely egy hatalmas győzelem, ha a csomagolás / kicsomagolás többdimenziós strukturális adatok szöveges formátumban, amely a mi be fogjuk mutatni a második probléma.

Tehát, hogy indul, úgy a listát a húrok, mint objektumok listáját egy szöveges megjelenítése, t. Hogy. Ez ebben a szellemben, akkor érdemes használni a sztringlistát valós alkalmazásokban. Mi az a tárgy, a szöveges reprezentáció? Lehet például a termékek listáját, amelyek még mindig itt vannak, és további paraméterek, mint mértékegységet, az összeget a csomagolás és az ár. Tehát van előre definiált típusok:

Állítsa tárgyak TTovar - a klasszikus referencia hasonló termékek, mint például a sütőipari termékeket. Field Súly az osztályban TEdIzm köteles áttenni egyik egységből a másikba. Térjünk vissza a mi roll. Tegyük szállító „Karyakinsky Pékség” biztosított számunkra egy szöveges fájl, amely információkat tartalmaz az új termékek és eladási árak szöveges formátumban:

Ha megfelel ennek a kihívásnak fejjel (mint olvasni vonal, és elemzés a szöveges fájl), valamint azokat közvetlenül felveheti a ListBox, ez azt eredményezi, hogy nem hatékony a számítógép működése, a troll (lassabb gépeken), és általában a további módosításai a kód a megoldás nem a legjobb. Sokkal hatékonyabb, hogy egy „csel füle”, nevezetesen, hogy megteremtse a TStringList, töltse le az eredeti fájlt hozzon létre egy másik a TStringList, töltse le az árut, rendezni őket, és végül rendeljen ingatlan ListBox.Items:

Megjegyezzük, hogy ha írsz TStringListSortCompare típusú függvény, akkor lehet rendezni nem csak a szöveg ábrázolás, hanem bármely más okból, például az ár:

Nos, a végén, megmutatjuk a reakció, hogy dupla kattintás a megszerzett áruk listáját. Dupla kattintással, megmutatjuk az eladási ár az áru:

By the way, ne felejtsük el, hogy kiadja a rendszer erőforrásait tárgyak törlése előtt sorok módszerek ListBox1.Items.Delete () / Clear () vagy str.Delete () / Clear () (str: TStringList), ha szükséges, valamint akkor, amikor az alkalmazás bezárása:

Érdemes megjegyezni, hogy amikor elment, vagy betölteni a sztringlistát amelyek kapcsolódnak a string objektumot nem kerülnek mentésre, illetve helyreáll a normál TStringList, de lehet, hogy nagyon örülök, hogy megoldja ezt a problémát - írja a leszármazottja TStringList az újraértelmezett eljárások GetTextStr és SetTextStr, amelyben felér és végre a saját tárolási formátum objektumokat és azok szöveges ábrázolása egy összefüggő szöveget.

Tehát, azt láttuk, hogy a TStringList lehetővé teszi, hogy megoldja a különböző feladatok csoportosításával objektumok szöveges ábrázolása egy egyszerű lista feldolgozása változókat. Most lássuk, hogy ez osztály kihívásaira csomagolás / kicsomagolás komplex strukturált adatok szöveges és fordítva. Ez a probléma gyakran felmerül a kommunikációs feladatokat, például adatátviteli hálózaton keresztül, vagy a program-modulok.

Tegyük fel, hogy meg kell futtatni egy programot obrab.exe a parancssori paramétert, amelyre át kívánja adni a kiválasztott elemet a listából keletkezett fent. Írunk a csomagolót és kicsomagoló adatokat. A TStringList ez feladat programozása két másodpercig:

Kapcsolódó cikkek