0 Members and 1 Guest are viewing this topic.
* fopen example */[glow=yellow,2,300]#include [/glow]int main (){ FILE * pFile; pFile = fopen ("myfile.txt","w"); if (pFile!=NULL) { fputs ("fopen example",pFile); fclose (pFile); } return 0;}
S_INIFILE inifile ;//ce n'est pas un pointeur !
FILE * File; File = fopen ("myfile.cfg","r");
fread ( &inifile , sizeof(S_INIFILE), 1, File );fclose(File);
S_INIFILE *inifile ;//c'est un pointeur !inifile->TexturePath="Textures/";inifile->MeshPath="Mesh/";inifile->OrbiterPath="C://Orbiter/";File = fopen ("myfile.cfg","w");fwrite (inifile, 1 , sizeof(inifile ) , File );... fclose (pFile);
bool SaveIni(void){ typedef struct { float Mouse; float Wheel; char *Path; } INIFILE; // La structure pour sauvegardé. INIFILE *iniFile = NULL; iniFile = new INIFILE; iniFile->Mouse = sensMouse; // sensMouse est une variable locale pour la sensibilité. C'est un float. iniFile->Wheel = sensWheel; // voir commentaire du haut. iniFile->Path = Mesh.GetTexturePath(); // cette fonction retourne un char*. En déboguage, je vois qu'il retourne ce qu'il faut FILE *file; fopen_s(&file,"OGLOMV.ini","w+"); // w+ car je veux créer un fichier s'il le faut. if (file==NULL) return false; // On quitte s'il y a un problème. int test = sizeof(iniFile); // variable pour des test. test = fwrite(iniFile,1,sizeof(iniFile),file); // On écrit fclose(file); // On ferme. return true; // On retourne.}
INIFILE *iniFile = NULL; iniFile = new INIFILE;
int test = sizeof(iniFile); // variable pour des test. test = fwrite(iniFile,1,sizeof(iniFile),file); // On écrit fclose(file); // On ferme.
Le test me servait lorsque je déboguais pas à pas (ce que je fais souvent). J'appuis sur F10 après un breakpoint que je mets au début de la fonction et je regarde ce que chaque variable vaut.
Finalement, je testait avec le sizeof() des 2 côtés car je ne savais pas trop. Par contre, lorsque je met le sizeof() du côté que tu m'indiques, la fonction me retourne qu'elle a écrit 1 seul byte. Quand je le met comme je l'ai mis, elle me retourne 12 bytes. J'ai donc opté pour cette dernière.
#include struct INITFILE{char *msg1;char *msg2;float mouse;} ;void ecrire(){INITFILE init ;init.msg1="message1";init.msg2="message2";init.mouse=0.001f;FILE* file=fopen("bibi.ini","w");fwrite(&init,sizeof(INITFILE),1,file);fclose(file);}void Lire(){INITFILE init ;FILE* file=fopen("bibi.ini","r");fread(&init,sizeof(INITFILE),1,file);fclose(file);//Caption=init.msg1 ; ignore çà , j'étais sous borland , c'est le titre de la fenetre , utilisée comme debugger ...}
dès que je charge un mesh, il ne fait rien dans le fichier de config.
Ta première idée est bonne, mais la seconde, je ne crois pas la comprendre. Le fichier config serait toujours le même, sauf pour le nom du mesh.
-- Vessel parametersvprm = { -- general Parameters emass = 500, -- empty mass [kg] fuelmass = 750, -- propellant mass [kg] size = 3.5, -- mean radius [m] pmi = {x=2.28,y=2.31,z=0.79}, -- principal moments of inertia [m^2] cs = {x=10.5,y=15.0,z=5.8}, -- cross sections [m^2] rd = {x=0.1,y=0.1,z=0.05}, -- rotation drag coefficients co = {x=0,y=0.8,z=0}, -- cockpit camera offset td1 = {x=0,y=-1.5,z=2}, -- touchdown point: front td2 = {x=-1,y=-1.5,z=-1.5}, -- touchdown point: left td3 = {x=1,y=-1.5,z=-1.5} -- touchdown point:
je galère un peu sur le modèle 3D. Les modèles du Project Mercury 5.0 sont très beaux, mais loin d'être optimisés. Chaque carré forme un groupe. Ça fait 295 groupes ! Les modèles dispo sur le site de la NASA ne sont pas super et j'ai bien essayé, mais je ne suis pas capable de les faire. J'ai la forme de base, mais lorsque j'arrive pour ajouter les petits RCS, je ne sais plus comment m'y prendre.