![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 116 Pomógł: 4 Dołączył: 9.10.2007 Skąd: Morąg Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem z synchronizacja baz danych. Próbowalem robić to na kilka sposobów. Pliki baz danych Fox Pro (pliki dbf) sa w formacie cp866 - rosyjska czcionka, chce przekonwertowac je na utf-8 i: Plik konwertuje się prawidłowo, otwieram do odczytu z konsoli widzę cyrylicę. Do synchro używam dbf2mysql. Przed konwersja plik sie laduje do mysql ale sa krzaki(to odpada), po konwersji dostaje blad \\\"Invalid Header\\\". Plik dbf mozna otworzyc w OpenOffice. Przykladowo mam plik zawierajacy 2 kolumny w headersie Code,N,4,0 i Name,C,20. Zmieniajac recznie header Name,C,20 na Name,C,80, po konwersji iconv (tym shell\\\'owym) i po synchronizacji wszystko jest OK - tylko ze tych plików jest ok 100 i sa codziennie zmieniane. Pytanie: Czy można jakoś wyedytować nagłówki kolumn w pliku DBF?(chodzi mi o skrypt, narzedzia shellowe) bez modyfikowania plików recznie. Domyślam się zapis w cyrylicy slowa jest krotszy niz w utf-8 i pole Name zamiast maksymalnie zawierac 20znakow zajmuje wiecej i to powoduje blad po konwersji z cp866 na utf-8. Plik dbf po otwarciu OpenOfficem(w cp866)
po hexdumpie - same nagłówki kolumn
Pliki dbf dostaje tylko do odczytu, ewentualnie moge je kopiwac tymczasowo do tempa. Jakieś sugestie odnośnie synchronizacji? Może idę w złą strone, probujac edytowac naglowki? dzieki z gory za pomoc pozdrawiam Ten post edytował gutek84 11.08.2009, 14:15:15 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 7.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Problem można rozwiązać na wiele sposobów najprościej napisać kawałek kodu w VFP który otworzy dbf-a i dokona wpisu do mysql-a po konwersji lub zapisać jako plik tekstowy gotowy do wciągnięcia przez mysql-a . Tego typu rozwiązanie wydaje sie najprostsze i możesz je wpełni zautomatyzowac skoro mówisz o 100 plików.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 19:41 |