FOXPRO 2.6 dos a datum kompilace
dobry den,
jde mi o toto:
verzi programu stanovuji jako yymmdd kompilace, vzhledem k tomu ze to vzdy zapomenu v promen zmenit, chci se zeptat jak to vyresit "automaticky", tzn. jestli je tam nejaky prekompiler nebo jak na to.
doufam ze jsem to napsal srozumitelne, diky moc
Toto jsem kdysi řešil tak, že do verze jsem načítal datum (případně i čas) zkompilovaného APP nebo EXE souboru
public m._cVerze
=adir(a_tmp,'aplikace.app')
m._cVerze=su bs(dtos(a_tmp(1,3)),3)
Výsledkem je řetězec verze ve formátu RRMMDD.
Případně pro adresář a plnou cestu spouštěné aplikace lze využít funkci sys(2019)
A neni tam pak nahodou datum, kdy ji to odnekud zkopiroval ?
Datum na souboru by se teoreticky měnit nijak nemělo. Já jsem to ještě "jistil" tak, že u distribuovaného souboru jsem nastavil atribut času 00:00, pokud byl jiný čas, bylo to pak podezřelé a program to mohl odchytit a podle toho reagovat. Pokud ale vím, nikdy se to nestalo.
Nevim o zadnem "prekompileru".
Cislo erze mas ulozeno kde ? V programu nebo v nejake tabulce ?
Napis si programek, ktery zapise cislo verze a pak spusti kompilaci.
Ja to sice neresil s verzi, ale mel jsem napsany program, ktery vzal vsechny *.pjt (asi 110 appecek) a prebuildoval je:
cislo verze mam primo v programu
verze=retdateoffile('program.fxp')
a funkce vraci datum vytvoreni programu.no ale kdyz to nekomu poslu mejlem tak se mu datum nastavi podle toho kdy ten soubor ulozil.
Pak je řešení posílat takovéto soubry zabalené ZIPem - jednak se nezmění čas a jednak ZIP odchytí případné poškození.
A kdyz to ak zkopiruje po siti nekam jinam... Tam skutecne zalezi na tom, jakym nastrojem to kopirovani provedes.
Jinak osobne bych to resil tak, ze bych mel v jednom FXP nadefinovanou funci, ktera by natvrdo vracela cislo verze.
Spustil bych svuj program, ktery by jako text otevrel ten FXP, prepsal v nem verzi a spustil rebuild (vsech) APP.
Pak jsem nezavisly na datumu souboru
Když jsem toto kdysi řešil, tak jsem číslo verze měl v DBF souboru, který se linkoval k aplikaci. Ovšem musel jsem na to myslet, že před kompilací se to musí změnit, pokud nechci před kompilací ještě spustit nějaký prográmek, nakonec jsem to řešil také tím datumem aplikačního souboru. Možná by šlo využít a upravit aplikaci FOXSTART.APP, která se automaticky spouští s FoxPro, kde by se při každém spuštění FoxPro zapsalo datum např. do souboru VERSION.TXT - tím pádem by se o to programátor nemusel vůbec starat. A tento soubor prostě likovat k aplikaci a v ní ho použít. Nic jednoduššího mě teď nenapadá - myslet na změnu ručně před kompilací nefunguje (občas se zapomene) a řešit to spouštěním dalšího programu je zase zbytečné. Foxstart.app udělá vše sám a do každého projektu se pak zařadí stejný soubor s verzí, kde bude vždy aktuální datum.
Ja jsem nemyslel "spoustet programek pred kompilaci"
Ja jsem to myslel tak, ze bys spoustel kompilaci tim programkem, ktery by pred vlastni kompilaci zapsal cislo. Poste budu mit Kompiluj.FXP a misto toho, abych lezl do buildu pres menu zavolam: do kompiluj
Pak nebudu na nic zapominat.