TextLib Export - csere file ===== Célja ===== A Csere file-ban TextLib rekordok szöveges formában vannak kiírva. Ez főleg rekordok cseréjére alkalmas két (vagy több) TextLib adatbázis között, de más célokra is használható (pl: adatok ellenőrzése a TextLib használata nélkül). ===== A file felépítése ===== -- # karakterrel kezdődő sorok megjegyzések - nem számítanak -- az üres sorok nem számítanak -- {AA|BB||CC} jelentése: AA vagy BB vagy CC -- Cel: B = Bevitel (csak az újak kerülnek be, meglévők nem változnak) M = Be/Mód (újak bekerülnek, meglévők változnak) T = Törlés (törlődnek a rekordok) 1. sor: TextLib Csere file - InfoKer 1995 2 - x.sor: Kodkeszlet:{CWI} - elhagyható (CWI) Program:A file-t készítő program - elhagyható Kuldi:kitől jön az adat - elhagyható Keszult:mikor exportálta - elhagyható Hivatkozott:{I|N} - elhagyható (I) Cel:{B|M|T} - elhagyható (M) ABazon:adatbázis azonosító - kötelező Legyen:recazon/filenév - elhagyható Rekord:kiküldött+hivatkozott+almező - elhagyható Megjegyzes:max 6 ilyen sor lehet - elhagyható x+1. sor : itt vannak a rekordok utolsó sor:#vége - elhagyható Egy működő példa található a file-ban. ===== Az egyes sorok magyarázata ==== Kodkeszlet:{CWI} Tervezzük, hogy más (pl. 852-es) kódkészletben készült állományokat is tudjunk fogadni. Akkor lesz majd jelentősége. Program:A file-t készítő program Információ arról, hogy mely program mely verziója készítette ezt a csere file-t. Csak tájékoztatásra szolgál. Kuldi:kitől jön az adat Tájékoztató adat, kitől jöttek a rekordok. Keszult:mikor exportálta Tájékoztató adat, mikor készült a csere file. Hivatkozott:{I|N} Tájékoztató adat. A csere file tartalmazza-e a rekordok hivatkozott rekordjait is? Cel:{B|M|T} Mire szolgál a csere file? B - bevitel M - módosítás T - törlés ABazon:adatbázis azonosító A küldő adatbázis azonosítója. Egy rekord azonosítása az adatbázis azonosító és a rekordazonosító együttese alapján történik. Legyen:recazon/filenév - elhagyható Ha biztosítani akarjuk, hogy egy file-t csak akkor lehessen importálni, ha egy másikat korábban már betöltöttek, akkor ide meg kell adni annak a file-nak az utolsó rekordját (azonosítóját), és a file nevét. Ha az adatbázisban nincs meg ez a rekord, akkor az import el sem indul. Rekord:kiküldött+hivatkozott+almező Tájékoztató adat, hány rekordot + hivatkozott rekordot + almezőt tartalmaz az import file. A program nem használja semmire, csak kiírja, hogy legyen valami támpont, hogy hol is tart az import. Megjegyzes:max 6 ilyen sor lehet - elhagyható Tájékoztató adat, importáláskor megjelenik a képernyőn is. ===== Egy rekord felépítése ===== $rekordazonosító mezőazonosító mező_tartalom mezőazonosító mező_tartalom ... -- ismételhető mezőnél az egyes ismétlődések külön-külön sorban vannak. -- hosszú mezőnél a sor végén egy \ van, innen tudni, hogy a következő sor ennek a folytatása. Annak a sornak az elején álló SPACE-ek NEM számítanak, DE legalább egy SPACE-nek kell lenni a sor elején. -- a mezőazonosító lehet mező sorszám és mezőnév is. -- rekordazonosítónak tetszőleges string használható, DE az első karaktereinek az adatfile-t KELL azonosítania (lásd: DBSTRUCT program), és egy file-ban nem lehet két egyforma azonosítójú rekord. Ha a TL_KULD programmal készül a csere file, akkor a rekord azonosító az adatbázis-beli rekordazonosító lesz. -- A pointeres mezőknél a mező tartalma a hivatkozott rekord azonosítója (persze a megelőző $ karakterrel együtt). A hivatkozott rekord általában a hivatkozozó rekord előtt van (az import gyorsabb lesz), de lehet mögötte is. (A TL_KULD program a hivatkozottakat előre rakja) -- Az almezők a rájuk hivatkozó rekord előtt KELL legyenek. Ezeknek a rekord- azonosítója a következő szabály szerint alakul: - az adatfile adott (az almezőt azonosító adatfile) - tetszőleges szám (lehetőleg az egész file-ban egyedi, de már az is elég, ha egy rekordon belül egyedi) pl: DOKUMENTUM PARHCADAT mezőnél: $ec2, $ec23, $ec45, stb. ===== Speciális karakterek ===== Mivel a TextLib több mint 400 karaktert kezel, ezért sok karaktert nem lehet egyszerűen ábrázolni. Azt a módszert választottuk, hogy azokat a karaktereket, amik az ASCII (igazából CWI, majd 852-es is) kódkészletben benne vannak, egyszerűen a megfelelőjükre cseréljük. (Vagyis a TextLib 'F' betűje helyett az ASCII 'F' betűt írjuk a file-ba). Azok a karakterek, amik nincsenek benne az ASCII-ban, azokat a következő módon ábrázoljuk: \kód A kód egy PONTOSAN 3 számjegyből álló decimális szám, a karakter TextLib beli kódja. Pl: 'a' = \084 '#' = \307 '\' = \312 '$' = \320