Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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

Předmět Autor Datum
Toto jsem kdysi řešil tak, že do verze jsem načítal datum (případně i čas) zkompilovaného APP nebo E…
KlepetoX 22.08.2006 17:41
KlepetoX
A neni tam pak nahodou datum, kdy ji to odnekud zkopiroval ?
Jan Fiala 22.08.2006 17:44
Jan Fiala
Datum na souboru by se teoreticky měnit nijak nemělo. Já jsem to ještě "jistil" tak, že u distribuov…
KlepetoX 22.08.2006 17:47
KlepetoX
Nevim o zadnem "prekompileru". Cislo erze mas ulozeno kde ? V programu nebo v nejake tabulce ? Napis…
Jan Fiala 22.08.2006 17:43
Jan Fiala
cislo verze mam primo v programu verze=retdateoffile('program.fxp') a funkce vraci datum vytvoreni…
sobol 22.08.2006 18:06
sobol
Pak je řešení posílat takovéto soubry zabalené ZIPem - jednak se nezmění čas a jednak ZIP odchytí př…
KlepetoX 22.08.2006 18:10
KlepetoX
A kdyz to ak zkopiruje po siti nekam jinam... Tam skutecne zalezi na tom, jakym nastrojem to kopirov…
Jan Fiala 22.08.2006 18:17
Jan Fiala
Když jsem toto kdysi řešil, tak jsem číslo verze měl v DBF souboru, který se linkoval k aplikaci. Ov…
KlepetoX 22.08.2006 18:36
KlepetoX
Ja jsem nemyslel "spoustet programek pred kompilaci" Ja jsem to myslel tak, ze bys spoustel kompilac… poslední
Jan Fiala 22.08.2006 21:32
Jan Fiala

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)

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:

Build Proj jmeno From jmeno

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.

Zpět do poradny Odpovědět na původní otázku Nahoru