bouddha69
Messages postés7Date d'inscriptionlundi 3 mai 2010StatutMembreDernière intervention11 janvier 2012
-
9 janv. 2012 à 16:38
bouddha69
Messages postés7Date d'inscriptionlundi 3 mai 2010StatutMembreDernière intervention11 janvier 2012
-
9 janv. 2012 à 16:53
Bonjour,
Je débute sur Delphi dans le cadre d'un projet pour les cours et je suis face à un problème auquel je ne trouve pas de réponse.
L'objectif est de mettre en place une routine pour convertir un fichier .obs en .xml afin de pouvoir utiliser aisément un logiciel de calculs géodésique (Projet GNU-GAMA).
Le problème est que je dois aller chercher des données dans un autre fichier (.cor). J'arrive à appeler ce fichier et à faire les opérations que je souhaite mais les résultats ne s'écrivent pas au bon endroit. Au lieu de s'écrire dans mon fichier xml, elles écrasent les données de mon fichier .cor.
J'imagine que je ne suis pas très clair et de plus, je ne sais pas trop quel fichier du projet partager (maudit débutant ^^).
Donc voilà le début de ce que j'ai tapé. La partie "Traitement des observations s'écrit bien dans mon XML mais pas l'entête ni le traitement des coordonnées.
// conversion d'un fichier obs en fichier GnuGama
Procedure obs2gnugama(Tabobs : tab_observation ; NTabobs : integer ; nomfic_gnu : string ; Tabcor : tab_cor ; NTabcor : integer ; nomfic_cor : string);
Var
ficgnu : TextFile;
i,j,l,c,m,index,p,r : integer;
observation : TLigne_obs;
last_code : string[1];
lecture : real;
k, n, Comm : string;
ouvert : Boolean;
q : char;
label etiquette1;
begin
assignfile(ficgnu,nomfic_cor);
rewrite(ficgnu);
{************************* entête du fichier xml **************************}
writeln(ficgnu,''+gnu_line1);
writeln(ficgnu,''+gnu_line2);
writeln(ficgnu,''+gnu_line3);
writeln(ficgnu,''+gnu_line4);
writeln(ficgnu,''+gnu_line5);
writeln(ficgnu,''+gnu_line6);
{************************* Traitement des coordonnées **************************}
writeln(ficgnu,'coucou');
closefile(ficgnu);
{************************* Traitement des observations **************************}
assignfile(ficgnu,nomfic_gnu);
reset(ficgnu);
last_code:='x';
ouvert := False;
for i := 0 to (NTabobs-1) do begin
observation := Tabobs[i];
observation.ch2:=' < obs from="">';
//nom station
insert(observation.nomsta,observation.ch2,14);
if (observation.cod='7') and (ouvert=True) then
begin
writeln(ficgnu,'</obs>');
ouvert := False;
end;
if (observation.cod='7') and (ouvert=False) then
begin
writeln(ficgnu,observation.ch2);
ouvert := True;
end;
J'espère ne tuer personne avec ceci !
Merci d'avance
Jordane