Bonjour,

Je vous expose la situation :
* Je dois cr�er un logiciel X qui lit un fichier cr�er par un autre logiciel Y
* Les donn�es des fichiers g�n�r�s par Y sont une succession de lignes qui d�crivent comment dessiner de(s) objet(s). Les fichiers peuvent �tre d�composer ainsi :
> En en-t�te : De quel type de mod�lisation traite-t-on, s'agit-il d'un dessin 2D, etc etc
> Dans le corps, il y a les donn�es : x0 = 1, y0 = 2(ligne) x1 = 5.3 y1 = 6
* Une fois que le logiciel X a lu le fichier, il doit mod�liser ces donn�es.
* Je n'ai pas l'autorisation de modifier Y. Par contre, je peux demander au programmeur de Y de modifier la mani�re dont sont �crites les donn�es dans les fichiers.

Ma vision de la solution est la suivante :
0] Demander au programmeur de Y de formater les fichiers de sorties. Pour cela, utiliser le format XML par exemple.
Ainsi, la notion de position des donn�es est supprim�e. Effectivement, avant les donn�es �taient enregistr�es tel quel :
x = 3 y = 5
Donc, on savait que la valeur de x �tait en position 4 et y en 10.
Avec un syst�me de balisage, j'aurais :
<x>3</x><y>5</y>
L'extraction de la donn�e est plus longue mais plus facile et non d�pendante de la position des donn�es.

1] Cr�er une interface entre Y et X. J'appellerais ce logiciel Z.
Ce logiciel Z s'occupe de lire le fichier g�n�r� par Y.
Il effectue une premi�re lecture durant laquelle il va stocker l'en-t�te ainsi que la position des balises. Il cr�e un index en somme.
Ensuite, Z se met en attente de requ�te de la part de X.

2] Pour le logiciel X, je vais l'articuler ainsi :
> Lorsque l'utilisateur demande d'ouvrir un fichier(g�n�r� par Y), X ex�cute l'interface Z avec comme param�tre ce fichier.
> Ensuite, le logiciel X communique avec Z. X demande � Z de lui fournir des donn�es(qu'il sait afficher). C'est donc Z qui va indiquer comment afficher les donn�es, X ne s'occupe que d'afficher.
> Lorsque l'utilisateur ne fait rien, la communication est en pause.
> Lorsque l'utilisateur ferme le fichier, la communication est ferm�e.

Pr�cisions diverses :
* Les fichiers g�n�r�s par Y peuvent �tre tr�s lourds(> 1Go).
Mais peu importe la taille des fichiers, il ne doit pas y avoir de ralentissement lors de l'ouverture. Donc un fichier de 10Go doit �tre ouvert aussi rapidement qu'un fichier de 10Ko. Bien entendu, le traitement est forc�ment plus long, mais �a je ne peux rien y faire ?

Voil� l'histoire.
J'aimerais savoir si vous pensez qu'il s'agit d'une bonne solution.
Le format XML est-il bien appropri� ? Un meilleur format(pas trop compliqu� pour le programmeur de Y) ?
L'interface peut-elle �tre am�lior�e ? Comment programmer l'interface : un ex�cutable ind�pendant, un objet de Y ?
En ce qui concerne X, connaissez vous de bonne librairies qui permettent la mod�lisation 2D/3D et qui peuvent traiter de fa�on fluide �norm�ment de donn�es ?

Un grand merci pour votre aide