Mám aplikaci ve VB5, která čte data ze souboru DBF pomocí nástroje "Data" a prezentuje je pomocí DBGridu. Jediné co nefunguje je čeština. Nyní jsem byl postaven před problém číst DBF soubor vytvořený novějším nástrojem. Rozdíl byl v tom, že datum a čas je v novém souboru zapsán v UTC formátu (např. 40123.658721348654). Jaké bylo mé překvapení, že DBGrid ve VB5 tomuto formátu rozumí, stačí nastavit v Property Pages na záložce Columns vlastnost Number Formát na třeba short date a je to. Protože ale stále nefunguje čeština (zřejmě proto, že VB5 při otevírání souboru automaticky provede konverzi z UTF8 na ANSI - jenže soubor byl v ANSI uložen) zkusil jsem celou aplikaci převést do VB.NET. Zde je však situace ještě horší. Soubor nyní otevírám pomocí OLEDB (to funguje), ale opět dojde ke konverzi a tím pádem ke ztrátě diakritiky. Navíc nový DataGridView si s UTC formátem datumu vůbec nerozumí, buď jej zobrazí jako číslo a pokud nastavím vlastnost DefaultCellStyle.Format = "d" tak dojde u každého záznamu k výjimce "Format specifier was invalid". Otázky jsou tedy 3: lze ve VB5 zajistit, aby při otevření souboru nedocházelo ke konverzi Unicode-ANSI? Lze donutit DataGridView z VB.NET aby správně zobrazil datum zapsaný v mezinárodním UTC formátu? Lze donutit aplikaci ve VB.NET aby při načítání DBF souboru neprováděla konverzi Unicode-ANSI? Za jakoukoli radu předem děkuji.
|