Bonjour à tous,
Je me permets de poster sur le forum pour savoir si une âme charitable pouvait m'indiquer comment je peux supprimer des lignes dans un fichier .dbf
J'utilise dans le contexte d'un serveur windows 2008 + installation d'une version de php, une script appelé en ligne de commande, qui me permet de lire un fichier .dbf et d'en extraire des données afin de construire un fichier .sql, cela dans le but d'exposer ces données sous forme de graphique dans une interface web. Voila pour le contexte.
Cependant lorsque je lis le fichier .dbf il semble que mon script en lise trop et je me retrouve avec des doublons, d'ou mon idée de supprimer les lignes du fichier après que le script les a parcouru.
J'ai essayé de trouver un peu de lecture sur le web , mais il semblerait que ce format soit d'un autre age.
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 $date = date('y'); $n = '/^4'.$date.'/'; /* Base chocs */ $nom_base = "F:\fichier.DBF"; $sql = "F:\fichier.sql"; $fh = fopen($sql, 'w') or die("can't open file"); $id_ouverture = dbase_open($nom_base, 2)or die("Impossible d'ouvrir la base de données !"); $nb_enregistrements = dbase_numrecords($id_ouverture); $nb_champs = dbase_numfields($id_ouverture); $chocs = "TRUNCATE TABLE statisticschocs; \n"; for($i = 1; $i <= $nb_enregistrements; $i++) { $enregistrement = dbase_get_record_with_names($id_ouverture, $i); // Mettre tout les enregistrements dans un tableau indéxé par leurs numeros de dossiers if(preg_match($n, $enregistrement['NUMERO'])) { if($enregistrement['TOTAL_HT']>0.02) { $chocs .= " INSERT INTO etc..."; } } dbase_delete_record($id_ouverture, $nb_enregistrements); } dbase_pack($id_ouverture); dbase_close($id_ouverture); fwrite($fh, $chocs); fclose($fh);
Cordialement
Partager