Witam serdecznie jako nowy forumowicz,
od pewnego czasu walczę z ciężkim problemem:
Muszę importować dane z bazy dbase do MySQL, i wszystko byłoby świetnie gdyby nie jeden haczyk,
otóż jedna z podstawowych baz dbf posiada pola w pewnym sensie zaszyfrowane, choć tak naprawdę
jest to zapis danych metodą oszczędzającą ilość zajmowanego przez nie miejsca (zaszłości z czasów
DOS'a, kiedy to każdy bajt był na wagę złota). Programujący w CLIPPERZE kojarzą pewnie funkcję BIN2L,
która służy do ich rozkodowania. Generalnie sprowadza się to do tego, że liczba zapisana jest jako
ciąg znaków, ale nie tak jak jest to normalnie, czyli cyfr, lecz jako ciąg dowolnych znaków, które zamienione
na ich kod ascii i pomnożone prze odpowiednią potęgę dwójki dają w rezultacie pożądaną wartość.
I tu pojawia się kłopot:
Biblioteka odczytująca dane z DBF'a pobierając komórkę typu STRING kończy ją przy pierwszym znaku
o kodzie ascii równym "0", i dalej wypełnia spacjami do długości pola. To niestety uniemożliwia prawidłowy odczyt
w moim wypadku, bo "0" dla mnie nie jest końcem ciągu, a po nim mogą wystąpić kolejne znaki.
Naszukałem się na ten temat sporo, ale chyba nikt z tym problemem nie miał do czynienia.
A może jednak..?