Bonjour,
Pour lire un fichier (DBF par exemple) il suffit de connaitre sa structure et à partir de celle ci extraire une ligne :
Ma question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 cout << "taille record = " << m_file_header.dh.rsize; char record[m_file_header.dh.rsize]; fread( &record , sizeof(record) , 1 , this->ptr_base );
Je connais la taille globale d'un record
Celui ci est constitué de char[X] ou d'integer, etc.. mais la nature des champs varie d'un fichier à l'autre et je souhaiterais être capable à partir d'un record entier, extraire les différents champs quelques soient leurs natures.
Concrêtement, je veux lire toto.dbf
Le code c++ va me dire dans le header(seulement à l'execution) que ce fichier contient pour chaque enregistrement, les champs
1 char[10]
1 char[35]
1 integer
comment créer une sorte de structure de lecture 'online' c'est à dire durant l'execution?
Aprés avoir trainé sur le forum, je pensais à la manipulation de pointeurs mais j'avoue que je pêche un peu par manque de pratique.
Je pensais aussi lire champs par champs(car je connais la taille de chaque champ lors de l'éxécution) mais ce n'est pas très élégant.
La finalité est de faire un lecteur de DBF perso pour me rôder à la pratique du c++.
Merci pour votre aide ou/et une bonne pratique dans ce domaine.
Cordialement,
Gilles
Partager