Comment utiliser l'information que représente l'octet 29 des fichiers DBase avec LibreOffice

Bonjour,

Il me semble que calc ne lit ni n'écrit l'octet de l'en-tête des fichiers
DBase Foxpro correspondant au code page du fichier.

Comment utiliser l'information que représente cet octet avec LibreOffice ?

Cordialement,

F. Gonthier

----- Mail original -----

De: "Freddy Gonthier" <freddy.gonthier@gmail.com>
À: users@fr.libreoffice.org
Envoyé: Vendredi 25 Janvier 2019 11:29:15
Objet: [fr-users] Comment utiliser l'information que représente l'octet 29 des fichiers DBase avec LibreOffice

Bonjour,

Il me semble que calc ne lit ni n'écrit l'octet de l'en-tête des
fichiers
DBase Foxpro correspondant au code page du fichier.

Comment utiliser l'information que représente cet octet avec
LibreOffice ?

Cordialement,

F. Gonthier

bonjour,

gogo gadjet install recode ...

par défaut l'encodage des données sont en utf8 et donc
il faut voire avec la commande file (outils ubuntu)

documentation:

https://www.howtogeek.com/261449/how-to-install-linux-software-in-windows-10s-ubuntu-bash-shell/

la page du manuel :

https://linux.die.net/man/1/iconv

la suite du problème pour le charset:

https://gis.stackexchange.com/questions/12218/how-do-you-determine-a-shapefiles-charset

partie pour ogr :

https://www.npmjs.com/package/ogr2ogr

merci

slt
bernard

Bonjour,

Je dispose de plusieurs fichiers DBase en cyrillique ou en grec avec
l'octet 29 de l'en-tête du fichier DBase positionné à une valeur connue
pour être le code page utilisé dans chacun de ces fichiers.
Cependant, à l'ouverture de ces fichiers, Calc ne propose pas le code
déterminé par l'octet 29 du fichier DBF. De plus, UTF-8 ne couvre pas tous
les codes pages que j'utilise.
Il me faut ouvrir le fichier DBF dans le bon code page avec lequel il a été
enregistré, le traduire en français, espagnol ou italien et l'enregistrer
dans le code page de ces pays.

Je n'ai pas l'impression que calc réalise la première partie et que pour la
deuxième quelque soit le code page d'enregistrement, l'octet 29 est
systématiquement mis à 0.

Cela me semble anormal.

Cordialement,

Freddy

Bonsoir Freddy,

Le souci d'identification du langage que vous évoquez n'est pas forcément un bug. Si vous vous référez à la description des entêtes dBase, l'octet 29 est bien le "Language driver ID", mais il est complété par une array de 32 bytes, de 32 à 63,qui contient le Language driver name. C'est la combinaison de ces deux éléments qui permet de déterminer vraiment ce qui se passe. Cette codification se base sur les CODEPAGE et autres acrobaties des débuts de l'info partout, sous MS-DOS.

Il est donc possible que l'information ait été perdue au fil du temps, ce qui ne doit pas vous arranger.

Bonne soirée,

Thierry

PS : Source http://www.dbase.com/Knowledgebase/INT/db7_file_fmt.htm

Bonjour,

Cela peut être résolu avec un script Basic, Java, cpp, ... ou Python comme
cela m'a été précisé, mais il me semble que introduire la gestion de cette
information dans l'interface d'ouverture des outils LibreOffice peut être
plus ergonomique et utile tant en lecture qu'en écriture car les fichiers
au format DBF sont associés à de nombreux logiciels, sous différentes
extensions, et également ouvert avec des tableurs pour ajouter ou modifier
des valeurs de façon simple.

À l'enregistrement : catastrophe le fichier n'est pas enregistré dans un
code page utilisable lors de la prochaine ouverture. Des glyphes
s'affichent sans rapport avec ceux du départ ou après modification.

Cordialement,

F. Gonthier