Projekat

Općenito

Profil

Akcije

Podrška #25245

Zatvoren

F18, parametri aplikacije - ini

Dodano od Saša Vranić prije oko 13 godina. Izmjenjeno prije oko 13 godina.

Status:
Zatvoreno
Prioritet:
Odmah riješiti
Odgovorna osoba:
Saša Vranić
Početak:
15.11.2011
Završetak:
% završeno:

100%

Procjena vremena:


Povezani tiketi 2 (0 otvoreno2 zatvorenih)

korelira sa harbour - Podrška #25258: harbour hash matriceZatvorenoErnad Husremović16.11.2011

Akcije
korelira sa F18 - Podrška #25292: F18, parametri aplikacije - dbOdbačenoErnad Husremović18.11.2011

Akcije
Akcije #1

Izmjenjeno od Saša Vranić prije oko 13 godina

Na koji način parametrizirati aplikaciju pored params tabele ?

Akcije #2

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

http://www.harbour-project.org/samples/parseini.prg.html

Akcije #3

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.

Akcije #4

Izmjenjeno od Ernad Husremović prije oko 13 godina

ova dva configa su dovoljna za sve što nam treba. možeš postupno prebacivati parametre ovdje

Akcije #5

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'

Akcije #6

Izmjenjeno od Ernad Husremović prije oko 13 godina

~/.fmk/<imefirme>/.f18_config.ini

ovo bi trebalo biti

~/.f18/<imefirme>/.f18_config.ini

Akcije #7

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)
Akcije #8

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
Akcije #9

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...

Akcije #10

Izmjenjeno od Saša Vranić prije oko 13 godina

baš interesantno :)

Akcije #11

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.

Akcije #12

Izmjenjeno od Ernad Husremović prije oko 13 godina

da li ti read_ini funkcija napuni matricu sa svim elementima ?

Akcije #13

Izmjenjeno od Ernad Husremović prije oko 13 godina

mislim na ovaj hb_IniRead vjerovatno ona može skroz napuniti matricu sa svim parametrima.

Akcije #14

Izmjenjeno od Saša Vranić prije oko 13 godina

ma da, napuni... nego problem je dodavanja elementa

Akcije #15

Izmjenjeno od Saša Vranić prije oko 13 godina

tj, kada bi iz aplikacije htjeo nešto da usnimim u ini fajl

Akcije #16

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

Akcije #17

Izmjenjeno od Ernad Husremović prije oko 13 godina

ovo je hash matrica. toga nije bilo u clipper-u. to je harbour dodatak.

Akcije #18

Izmjenjeno od Saša Vranić prije oko 13 godina

aaaaa, skontao sam !

Akcije #19

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

Akcije #21

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()

Akcije #22

Izmjenjeno od Saša Vranić prije oko 13 godina

  • Status promijenjeno iz Novo u Zatvoreno
  • % završeno promijenjeno iz 0 u 100
Akcije #23

Izmjenjeno od Ernad Husremović prije oko 13 godina

  • Status promijenjeno iz Zatvoreno u Dodijeljeno
  • % završeno promijenjeno iz 100 u 70
Akcije #24

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.

Akcije #25

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.

Akcije #26

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
Akcije #27

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.

Akcije #28

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 )
Akcije #29

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
Akcije #30

Izmjenjeno od Ernad Husremović prije oko 13 godina

ako se poziva jedan parametar napraviti aIni od jednog parametra i mirna bosna.

Akcije #31

Izmjenjeno od Ernad Husremović prije oko 13 godina

lGlobal - false parametri specifični za jednu bazu, true - globalni parametar

Akcije #32

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

Akcije #33

Izmjenjeno od Ernad Husremović prije oko 13 godina

napomena

nemam pojma kako se inicijalizira hash matrica. gornji promjeri napisani napamet. Tretirati kao pseudokod

Akcije #34

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
Akcije #35

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
Akcije #36

Izmjenjeno od Ernad Husremović prije oko 13 godina

napravio potpuni rewrite

read write

Akcije #38

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

Akcije #39

Izmjenjeno od Saša Vranić prije oko 13 godina

ne kontam, šta zakoči, kod mene radi normalno

Akcije #40

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

Akcije #41

Izmjenjeno od Saša Vranić prije oko 13 godina

zaviri u F18.log

Akcije #42

Izmjenjeno od Ernad Husremović prije oko 13 godina

  • Naslov promijenjeno iz F18, parametri aplikacije u F18, parametri aplikacije - ini
Akcije

Također dostupno kao Atom PDF