Podrška #25245
ZatvorenF18, parametri aplikacije - ini
100%
Povezani tiketi 2 (0 otvoreno — 2 zatvorenih)
Izmjenjeno od Saša Vranić prije oko 13 godina
Na koji način parametrizirati aplikaciju pored params tabele ?
Izmjenjeno od Saša Vranić prije oko 13 godina
držati se ini-ja, u harbour-u sada postoje integralne funkcije za ini fajlove
evo primjera
Izmjenjeno od Ernad Husremović prije oko 13 godina
napraviti dva config fajla:
~/.f18_config.ini
i ~/fmk/<imefirme>/.f18_config.ini
zašto stavljam da su hidden fajlovi (prefix ".") ? zato što ovi fajlovi mimo servisera ne trebaju nikome bosti oči.
~/.f18_config treba sadržati globalne parametre - parametri identični za sve baze, jezikom fmk "firme"
a ovaj drugi naravno parametri na nivou jedne baze.
Izmjenjeno od Ernad Husremović prije oko 13 godina
ova dva configa su dovoljna za sve što nam treba. možeš postupno prebacivati parametre ovdje
Izmjenjeno od Ernad Husremović prije oko 13 godina
ove tačke na windowsima ne bi trebale biti problem koliko znam, svejedno windows build će nam to kazat'
Izmjenjeno od Ernad Husremović prije oko 13 godina
~/.fmk/<imefirme>/.f18_config.ini
ovo bi trebalo biti
~/.f18/<imefirme>/.f18_config.ini
Izmjenjeno od Saša Vranić prije oko 13 godina
implementirao manipulaciju sa ini fajlovima
https://github.com/knowhow/F18_knowhow/commit/6b0e2a2e6dfe9b4eaf8851f809e771a91a28ea3e
Čitanje ini fajlova radi kako treba, upisivanje ne radi !!!
Ne mogu da skontam uopšte kakve su im matrice ove što se dobiju iz ini fajla.
Napravio mogućnost za generisanje dva ini fajla
- ini home root (npr: /F18/ )
- ini home (npr: /F18/ramaglas/ - po nazivu baze)
Izmjenjeno od Saša Vranić prije oko 13 godina
napravio ručno ini, i to radi
bringouts-MacBook:F18_knowhow bringout$ vi /Users/bringout/.F18/.f18_config.ini
#Ini konfiguracioni fajl [F18_server] Hostname=localhost Database=empty38 Schema=fmk User=admin Port=5432 #kraj ini fajla
Izmjenjeno od Saša Vranić prije oko 13 godina
kod upisivanja u primjeru stoji
? ? "Adding section 'Added', with key NEW = new" aIni[ "Added" ] := hb_Hash() aIni[ "Added" ][ "NEW" ] := "new" hb_iniwrite( lokacija, aIni, ...)
ne mogu fakat skontati kako dodati nove članove zadržavajući postojeće :)
jer kada napravimo ovo, logično aIni se resetuje i onda sadrži samo ovaj član...
Znači treba AADD da se koristi, ali to meni izbacuje neke greške nepostojećeg niza i slično...
Izmjenjeno od Ernad Husremović prije oko 13 godina
znači moraš uvijek učitati kompletnu matricu pa onda u nju dodati novu ini stavku.
ove harbour funkcije očigledno funkcionišu tako što sa fcreate uvijek kreiraju novi ini fajl.
Izmjenjeno od Ernad Husremović prije oko 13 godina
da li ti read_ini funkcija napuni matricu sa svim elementima ?
Izmjenjeno od Ernad Husremović prije oko 13 godina
mislim na ovaj hb_IniRead vjerovatno ona može skroz napuniti matricu sa svim parametrima.
Izmjenjeno od Saša Vranić prije oko 13 godina
ma da, napuni... nego problem je dodavanja elementa
Izmjenjeno od Saša Vranić prije oko 13 godina
tj, kada bi iz aplikacije htjeo nešto da usnimim u ini fajl
Izmjenjeno od Saša Vranić prije oko 13 godina
Ma ovo je sada čista manipulacija sa matricom multidimenzijalnom ali sam pukao izgleda ! Ne mogu da joj dohakam strukturu
Izmjenjeno od Ernad Husremović prije oko 13 godina
ovo je hash matrica. toga nije bilo u clipper-u. to je harbour dodatak.
Izmjenjeno od Ernad Husremović prije oko 13 godina
FOR EACH cSection IN aIni:Keys ? ? "Section [" + cSection + "]" aSect := aIni[ cSection ] FOR EACH cKey IN aSect:Keys ? cKey + " = " + aSect[ cKey ] NEXT NEXT
obrati pažnju na aIni:Keys
trebaš bolje da se upoznaš sa hash matricama to te sigurno buni
Izmjenjeno od Saša Vranić prije oko 13 godina
Izmjenjeno od Saša Vranić prije oko 13 godina
dobro, znači imamo na raspolaganju dvije funkcije
f18_ini_read( cSekcija, cKljuč, cIni_fajl )
f18_ini_write( cSekcija, cKljuč, cVrijednost, cIni_fajl )
za cIni_fajl možemo koristiti
ini_home()
ili
ini_home_root()
Izmjenjeno od Saša Vranić prije oko 13 godina
- Status promijenjeno iz Novo u Zatvoreno
- % završeno promijenjeno iz 0 u 100
Izmjenjeno od Ernad Husremović prije oko 13 godina
- Status promijenjeno iz Zatvoreno u Dodijeljeno
- % završeno promijenjeno iz 100 u 70
Izmjenjeno od Ernad Husremović prije oko 13 godina
ovdje se vidi da ti za 5 parametara 5x pozivaš funkciju:
https://github.com/knowhow/F18_knowhow/commit/ad6875ca62b4e6f9032f61199ed7b44838988721#L1R78
i kao rezultat se 5x iščitava ini fajl i upisuju u njega vrijednosti.
kada imamo 50-tak parametara to je vrlo skupa operacija.
rješenje je da proslijediš hash matricu onoga što želiš promijeniti u write funkciji.
Izmjenjeno od Ernad Husremović prije oko 13 godina
ako si već uzeo nove hb_ ini funkcije iskoristi ih kako treba nemoj džoniti stil ini funkcija koji je bio u fmk.
Izmjenjeno od Ernad Husremović prije oko 13 godina
konvencija kod parametara - underscore i mala slova¶
neka parametri imaju ovu notaciju:- database
- host_name
- user_name
Izmjenjeno od Ernad Husremović prije oko 13 godina
globalni F18 config je ovdje ~/.F18/.f18_config.ini¶
Saša Vranić je napisao/la:
~/.F18/.f18_config.ini
znači ovo je lokacija globalnog ini fajla.
Izmjenjeno od Ernad Husremović prije oko 13 godina
napisaću šta treba uraditi:
f18_ini_read( cSekcija, cKljuč, cIni_fajl ) f18_ini_write( cSekcija, cKljuč, cVrijednost, cIni_fajl )
Izmjenjeno od Ernad Husremović prije oko 13 godina
f18_ini_read( cSekcija, aIni, lGlobal)¶
korištenje:
aIni := { {"database", NIL}, {"user_name", NIL } } lOk := ( "FMK_server", @aIni, .t.) if lOk pročitao kako treba
Izmjenjeno od Ernad Husremović prije oko 13 godina
ako se poziva jedan parametar napraviti aIni od jednog parametra i mirna bosna.
Izmjenjeno od Ernad Husremović prije oko 13 godina
lGlobal - false parametri specifični za jednu bazu, true - globalni parametar
Izmjenjeno od Ernad Husremović prije oko 13 godina
f18_ini_read( cSekcija, aIni, lGlobal)¶
aIni := { {"database", "db1"}, {"user_name", "hernad" } } lOk := ( "FMK_server", aIni, .t.)
if lOk pročitao kako treba
Izmjenjeno od Ernad Husremović prije oko 13 godina
napomena¶
nemam pojma kako se inicijalizira hash matrica. gornji promjeri napisani napamet. Tretirati kao pseudokod
Izmjenjeno od Ernad Husremović prije oko 13 godina
harbour playground¶
ubuduće kada budeš testirao i upoznavao nove funkcije jezika obavezno napravi testove u playground projektu prije F18
https://github.com/vsasa/harbour_playground
ovdje nam očigledno nedostaju:- harbour_playground/hash
- harbour_playground/ini
Izmjenjeno od Ernad Husremović prije oko 13 godina
- Odgovorna osoba promijenjeno iz Saša Vranić u Ernad Husremović
- Prioritet promijenjeno iz Normalan u Odmah riješiti
Izmjenjeno od Ernad Husremović prije oko 13 godina
napravio potpuni rewrite
Izmjenjeno od Ernad Husremović prije oko 13 godina
Izmjenjeno od Ernad Husremović prije oko 13 godina
- Odgovorna osoba promijenjeno iz Ernad Husremović u Saša Vranić
- % završeno promijenjeno iz 70 u 90
aplikacija nakon snimanja parametara završava rad. ovo je vjerovatno tako saša napravio pa ću mu dodijeliti ticket da on ovo "otkoči"
hernad@macan:~/github/F18_knowhow$ cat ~/.F18/.f18_config.ini
#F18 config [F18_server] port=5432 schema=fmk database=bringout1 host_name=localhost user_name=admin #end of config
Izmjenjeno od Saša Vranić prije oko 13 godina
ne kontam, šta zakoči, kod mene radi normalno
Izmjenjeno od Ernad Husremović prije oko 13 godina
- Status promijenjeno iz Dodijeljeno u Zatvoreno
- % završeno promijenjeno iz 90 u 100
unesem parametre i aplikacija prekine rad.
vjerovatno je razlog što se ne spoji na bazu. ali to uradi bez ikakve poruke trebamo to ispraviti
Izmjenjeno od Ernad Husremović prije oko 13 godina
- Naslov promijenjeno iz F18, parametri aplikacije u F18, parametri aplikacije - ini