Honlap Dennis Minich - Delphi - a kimeneti minta eredmények szöveges formában
Most az adatok kiadására. Ahhoz, hogy a megjelenített adatok szépen, egy oszlopban meg kell adni a maximális hosszát értékeket minden területen. Két lehetőség van, hogy ezt:
- használja a mező adattípus;
- meghatározzák a maximális hossza a mező értékeket a teljes adathalmaz felsorolás értékeket.
SQL Query Analyzer az első módszer, mivel ez gyorsabb. Mi megy a második utat, annak ellenére, hogy jelentős veszteségeket sebesség (ebben az esetben ez nem lényeges, mivel a minta kicsi), a második módszer lehetővé teszi, hogy megjelenítéséhez adatok tömörebben, hogy gyönyörű. Talán a nagy mintákat kell használni az első módszer.
Erre a fej tömb mérete, a dimenziója, amely egybeesik a mezők számát az adathalmazban, és töltse meg a maximális értéke hosszúságú adatmezők beállítva, nem megfeledkezve a fejlécét. Ez az, amit kap:
Ismét próbaüzem. A területen megkapjuk a következő eredménnyel:
Nos, menjünk tovább. Továbbra is ez a legnehezebb -, hogy megkötik az eredmények önmagukban. Szükségünk lesz a string hossza az értékek minden területen. Nézzük számítani, mint az összeg a maximális hossza az egyes mezők és további időközönként mezők között.
Ismét próbaüzem. A területen megkapjuk a következő eredménnyel:
Nézzük meg részletesen a sorban
Itt a funkciót vezetünk egy mutatót a sor elejére, azaz az első karakter. A string hossza szorozva a memória mennyisége által elfoglalt egy szimbólum. newline index játszik semmi szerepet, mivel csak akkor kell használni, hogy jelezze, hogy milyen típusú adatokat (itt - Char). Az érték fordítási időben. Ez teljesen korrekt, és ez egy sor, még akkor is, ha a vonal hossza kevesebb, mint:
Nézzük az utolsó paraméter lett átadva az eljárást. Valószínűleg, miért állandó SPACE_DELIMITER bejelentett húr, de átkerül a funkció az első (és egyetlen) a karaktere. Mert ezt a kérdést később visszatérünk.
Folytatjuk a kimeneti adatok. Most ebből elválasztó vonal fejléc mezőket az adatok és az adatok is:
Mi próbaüzem, és mi az eredmény az egyik, hogy szükségünk van:
Ezek különböznek a referencia az az oka, hogy ezek a Unicode formátumban. és dolgozunk egy karakterlánc helyett WideString. Unicode nem változtatna a képernyőn megjelenő adatok, mint a standard vizuális komponensek Delphi nem támogatja azt. Ha szükséges, akkor könnyen módosítsa a kódot.
Nos, a probléma megoldódott, de én nagyon zavaros a méret a keletkező módszer. Itt az ideje, hogy nem újratervezés és optimalizálása.
Már három olyan funkciókat. Ez lesz megszabadulni a párhuzamosságok és hagyjuk kissé csökkentheti a kódot. A kód, akkor viszont ismét emelkedett annak a ténynek köszönhető, hogy már megváltozott, hogy egy egyszeri visszavonását az eredmény helyett progresszív. Ez adta egy nagy előnye a gyorsaság. Így a kiegészítő funkciók:
Ennek eredményeként a módszer már kiderült, az ilyen kód:
A módszer rövidebb, de ez még mindig messze van a végső álom. Akkor is folytatni felosztási módszer, bár nem annyira foglalkozni redundancia kód, hogyan lehet tovább csökkenteni a méretét és módszer ketté az output folyamat.
Tudod letölt a forráskód egy demonstrációs projekt (Delphi 7) (5 kB).