Bonjour,

j'ai un fichier dbase que je ne peux pas lire via php, et en fait en regardant l'entete du fichier,
je constate que les offset et la longueur du premier champ est incorrect :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$colonnes = dbase_get_header_info($base_BIL_FAB);
  echo "colonnes 0 name : " . $colonnes[0]['name'] . " <br />\n";
  echo "colonnes 0 type : " . $colonnes[0]['type'] . " <br />\n";
  echo "colonnes 0 length : " . $colonnes[0]['length'] . " <br />\n";
  echo "colonnes 0 precision : " . $colonnes[0]['precision'] . " <br />\n";
  echo "colonnes 0 format : " . $colonnes[0]['format'] . " <br />\n";
  echo "colonnes 0 offset : " . $colonnes[0]['offset'] . " <br />\n";
  echo "colonnes 1 name : " . $colonnes[1]['name'] . " <br />\n";
  echo "colonnes 1 type : " . $colonnes[1]['type'] . " <br />\n";
  echo "colonnes 1 length : " . $colonnes[1]['length'] . " <br />\n";
  echo "colonnes 1 precision : " . $colonnes[1]['precision'] . " <br />\n";
  echo "colonnes 1 format : " . $colonnes[1]['format'] . " <br />\n";
  echo "colonnes 1 offset : " . $colonnes[1]['offset'] . " <br />\n";
...
Resultat :

colonnes 0 name : DATE
colonnes 0 type : date
colonnes 0 length : 5384
colonnes 0 precision : 0
colonnes 0 format : %5384s
colonnes 0 offset : 1
colonnes 1 name : LIBELLE
colonnes 1 type : character
colonnes 1 length : 7
colonnes 1 precision : 0
colonnes 1 format : %-7s
colonnes 1 offset : 5385
alors que sur la premiere colonne (0) je dois avoir lenght=8, format=%8s
et la 2eme colonne (1) : l'offset à 9 (1+8) (début de colonne)

du coup, je ne peux pas lire ce fichier.
si je l'ouvre sous excel et que je l'enregistre, ca marche. (j'ai d'autres fichiers qui n'ont pas ce pb)
mais ce fichier est recréé chaque jour avec ces erreurs.
et je voudrais le lire sans avoir à l'ouvrir.

les fonctions dbase_get_record_with_names et dbase_get_record me retournent une erreur :
Notice: Undefined index: DATE in C:\www\traitement_quotidien.php on line 215
comment peut on modifier la structure du fichier? (forcer les longueurs et offset de colonnes)

ou alors, définir l'offset de la colonne à lire (apres, par ex. pour la 2eme colonne je ne sais pas si elle commence à 9 ou 5385)
pour les fonctions dbase_get_record_with_names et dbase_get_record

ou alors, serait il possible dans le script php d'ouvrir excel, d'ouvrir ce fichier dedans, et de l'enregistrer au format dbase? (sans rien modifier)

Merci

[edit]
si j'ouvre ce fichier avec un autre outil, (DBF Viewer par ex.) les descriptions du fichier sont correctes
[/edit]