Autor | Zpráva | ||
---|---|---|---|
tatyalien Profil |
#1 · Zasláno: 24. 3. 2010, 13:50:33
Dobrý den, mám problém, když vytvořím dbf soubor, tak se mě vkládají hodnoty textu, čísel, ale logickou hodnotu tam nemůžu narvat.
V manuálu je psáno že musí mít hodnotu "T" jako true, "F" jako false, na jinejch stránkách je zase psáno "0" a "1", ale ať tam cpu všechny hodnoty od: "T", "TRUE", "PRAVDA", "P", "t", "true" atd, tak to tam nemůžu narvat, soubor se vytvoří, ale tento sloupec je prázdný :-( $polozky = array( array("Popis", "C", 50), array("Logicka", "L"), array("CenaSDani", "N", 11, 2), ); // název souboru $nazev_souboru = "$cesta/export.dbf"; //Vytvoříme DBF soubor if (!dbase_create($nazev_souboru, $polozky)) { return "Nepodařilo se vytvořit DBF soubor."; } $dbf_soubor = dbase_open($nazev_souboru, 2); dbase_add_record($dbf_soubor, array ('první', 'T', 2.50)); dbase_close($dbf_soubor); |
||
nightfish Profil |
#2 · Zasláno: 24. 3. 2010, 14:18:38
řádek 3
array("Logicka", "L", 1), |
||
tatyalien Profil |
#3 · Zasláno: 24. 3. 2010, 15:02:50 · Upravil/a: tatyalien
nightfish:
Tím to není, stále se nezobrazuje :-( a manuál u této hodnoty říká, že se nemá dávat hodnota délky Logic "L" - no field length or precision NOTE: must be entered as either "T" or "F" a to ještě tam potřebuji dostat logickou TRUE počeštěnou PRAVDA excel starej a open office to udělá, ale ručně přez php to nějak mě nejde :-( |
||
nightfish Profil |
#4 · Zasláno: 24. 3. 2010, 15:05:59
možná je potřeba smazat export.dbf, aby se vytvořil znovu
pamatuju si, že jsem s tím taky dlouho bojoval, ale nakonec se mi to podařilo a jediný rozdíl proti mému funkčnímu kódu byla právě ta jednička u definice logického sloupce |
||
tatyalien Profil |
#5 · Zasláno: 24. 3. 2010, 15:14:02 · Upravil/a: tatyalien
soubor vždycky smažu, když ho genetuji (ručně před spuštěním skriptu :-( )
Když si soubor otevřu pak v poznámkovém bloku je tam sice vidět "T" jako true, v excelu se nezobrazí nic. Pokud si vygenerovaný soubor zkusím imploudnout přez import do db tak mě to hodí špatný typ logické hodnoty. Nevím excel (starý), ukládá logický typ i přímo PRAVDA, open office taky. ale jak uložit počeštěnej přez phpko asi nejde :-( jsem si chtěl ušetřit práci ukládání do csv a pak ruční otevírání a přeuložení do dbf. -> import do účetního programu. |
||
nightfish Profil |
#6 · Zasláno: 24. 3. 2010, 15:21:44
Zkusil jsem import "svého" dbf do accessu a místo "true" mi to ve sloupci hodí "-1". Soubory používám jenom pro import do účetního systému a tam to funguje správně, takže víc bohužel neporadím.
|
||
tatyalien Profil |
#7 · Zasláno: 24. 3. 2010, 15:25:01
Já to tahám do Money S3 účetního programu přez jejich import (aktualizace cen, atd) když soubor uložím z excelu starého s logickou hodnout PRAVDA vygeneruje to dgf 4ku kde je pak přez poznámkáč "T" a import to vezme, ale přez tohle to hodí špatný formát :-D
|
||
nightfish Profil |
#8 · Zasláno: 24. 3. 2010, 15:33:34
používám to právě pro Money S3 a funguje mi to nádherně
pro jistotu přikládám kód <?php $fields = array( array("popis", "C", 50), array("cenanak", "N", 4, 4), array("cenaprod", "N", 4, 4), array("cenadph", "L", 1), array("katalog", "C", 10), array("dphprod", "N", 4, 2), array("dphnak", "N", 4, 2), ); $db = dbase_create("import-preklad.dbf", $fields); $rec = array('abcdef', 25, 50, "T", '12345', 10, 0); dbase_add_record($db, $rec); dbase_close($db); ?> |
||
tatyalien Profil |
#9 · Zasláno: 24. 3. 2010, 15:54:16 · Upravil/a: tatyalien
Tak i po tomto mě vygeneruje soubor (použitý tvůj kód), ale pokud spustím importační program pro money S3 "Import skladových karet do systému Money S3" verze 2.0 tak to hodí: "Špatný formát položky "CENADPH" v databázi.
Tady je vygenerovaný soubor: Odkaz |
||
nightfish Profil |
#10 · Zasláno: 24. 3. 2010, 16:11:26
tatyalien:
„verze 2.0“ aha, používám verzi 1.3 z jejich webu stejným skriptem jsem vygeneroval soubor od vašeho se liší ve 144. bajtu (váš má 00, můj 01) samozřejmě svůj naimportuji bez problémů, váš hlásí chybu (Špatný formát...) kde k rozdílu došlo, nemám zdání soubor generuji na PHP Version 5.2.9-1 na Windows Vista x64 |
||
tatyalien Profil |
#11 · Zasláno: 24. 3. 2010, 16:28:04
Soubor generuji na PHP Version 5.3.1 na Windows Vista x64 (xampp-win32-1.7.3.exe)
Tak i po nainstalovaání verze 1.4 od ciglera a importování vygenerovaného souboru to hodí hlášku: "špatný formát položky "CENADPH" v databázi. Soubor byl vygenerovaný skriptem: $nazev_souboru = "$cesta/export_cen_pokus.dbf"; $fields = array( array("popis", "C", 50), array("cenanak", "N", 4, 4), array("cenaprod", "N", 4, 4), array("cenadph", "L", 1), array("katalog", "C", 10), array("dphprod", "N", 4, 2), array("dphnak", "N", 4, 2), ); $db = dbase_create($nazev_souboru, $fields); $rec = array('abcdef', 25, 50, "T", '12345', 10, 0); dbase_add_record($db, $rec); dbase_close($db); Vážně už nevím :-( pokud by jste měl nějaký nápad, jsem kdyžtak i na icq: 159-475-902 |
||
nightfish Profil |
#12 · Zasláno: 24. 3. 2010, 16:35:58
tatyalien:
pravděpodobně tedy nějaký rozdíl v dbase extenzi mezi PHP 5.2 a 5.3 (tak mě napadá - od PHP 5.3.0 byla dbase extenze zrušena (resp. přesunuta do PECL, kde se o ni nikdo nestará), kde se bere v xamppu? pamatuju, že na linuxovém serveru jsem si ji dokompilovával) |
||
tatyalien Profil |
#13 · Zasláno: 24. 3. 2010, 16:55:13 · Upravil/a: tatyalien
nightfish:
abych pravdu řekl, akorát jsem podle návodu odkomentoval v php.ini dbase... [PECL] extension=php_dbase.dll neuploudnul by jsi mě prosím tvou knihovnu? |
||
tatyalien Profil |
#14 · Zasláno: 25. 3. 2010, 10:31:53
Neuploudnul by jsi mě prosím php_dbase.dll abych zkusil jí ručně "vyměnit"?
|
||
nightfish Profil |
#15 · Zasláno: 25. 3. 2010, 10:36:07 · Upravil/a: nightfish
|
||
tatyalien Profil |
#16 · Zasláno: 25. 3. 2010, 13:44:05
Tak nefungovala :-( no nic, takže to budu muset dělat dál přez převod do uložení do csv a pak excelem do dbf :-( Díky ale za pomoc.
|
||
Časová prodleva: 14 let
|
0