begin process at 2012 05 30 11:13:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

read/write file AMELIORER MON AFFREUX CODE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

read/write file AMELIORER MON AFFREUX CODE

lundi 12 mai 2003 à 16:55:29 | read/write file AMELIORER MON AFFREUX CODE

elroulianito

voila g déposer une source comportant une fonction qui a besoin d'être écrite proprement.

(l'appli fonctionne et tous les fichiers du projet sont dispo)

voila la fonction très vilaine:

void CDlg_textDlg::OnSave()

FILE *fp;
int nFileLong;
double X,Y,Z;

UpdateData(TRUE); //Force data from Edit box to variable

CFileDialog m_ldFile(FALSE, "pud", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "PRELUDE files (*.pud)|*.pud|All files|*.*||");


if (m_ldFile.DoModal() == IDOK) //Start file dlg box
{
int NumberOfLines=0;
m_sOutputFileName=m_ldFile.GetPathName(); //Get file name
m_fileOut=m_sOutputFileName;
fstream input(m_sFileName,ios::in);
fstream output(m_sOutputFileName,ios::out);
nFileLong = m_stringIn.GetLength(); //Length of text in Edit box

NumberOfLines = nFileLong/(3*sizeof(double)); //BEURK!!!

for (int i=1;i<=NumberOfLines;i++)
{
input>>X>>Y>>Z;
output<<"[PT_"<<i<<"]"<<
"\nn=1"<< "\n1="<<X<<","<<Y<<","<<Z<<",0.0,0.0,0.0"<< "\nDT1=0.0,0.0,0.0"<<
"\nRT1=0.0"<<
"\nRB1=0.0"<<endl;
}
output.close();
input.close();

//C la la que ça devient moche: après fstream input( xxx),fp=fopen(xxx)
fp=fopen(m_sOutputFileName,"rb"); //Open file for reading

fseek(fp,0,SEEK_END); //Go to file end
nFileLong=ftell(fp); //Get length
char* sText = new char[nFileLong+1];//reserve string space
fseek(fp,0,SEEK_SET); //Go to file start
int j=fread(sText,1,nFileLong,fp); //Read the characters
sText[j]=0; //Set string terminating null
m_stringOut=sText; //Put text in Edit box's variable
m_string=m_stringOut;
fclose(fp);

UpdateData(FALSE);
}

}
lundi 12 mai 2003 à 17:08:24 | Re : read/write file AMELIORER MON AFFREUX CODE

BruNews

Administrateur CodeS-SourceS
en MFC ??? donc Win32 exclusif, OK ???
Alors que font encore la ces flux obsoletes ?
Remplace par API Win32:
CreateFile();
ReadFile();
WriteFile();
SetFilePointer();
GetFileSize();
CloseHandle();
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> voila g déposer une source comportant une fonction qui a besoin d'être écrite proprement.
>
> (l'appli fonctionne et tous les fichiers du projet sont dispo)
>
> voila la fonction très vilaine:
>
> void CDlg_textDlg::OnSave()
>
> FILE *fp;
> int nFileLong;
> double X,Y,Z;
>
> UpdateData(TRUE); //Force data from Edit box to variable
>
> CFileDialog m_ldFile(FALSE, "pud", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "PRELUDE files (*.pud)|*.pud|All files|*.*||");
>
>
> if (m_ldFile.DoModal() == IDOK) //Start file dlg box
> {
> int NumberOfLines=0;
> m_sOutputFileName=m_ldFile.GetPathName(); //Get file name
> m_fileOut=m_sOutputFileName;
> fstream input(m_sFileName,ios::in);
> fstream output(m_sOutputFileName,ios::out);
> nFileLong = m_stringIn.GetLength(); //Length of text in Edit box
>
> NumberOfLines = nFileLong/(3*sizeof(double)); //BEURK!!!
>
> for (int i=1;i<=NumberOfLines;i++)
> {
> input>>X>>Y>>Z;
> output<<"[PT_"<<i<<"]"<<
> "\nn=1"<< "\n1="<<X<<","<<Y<<","<<Z<<",0.0,0.0,0.0"<< "\nDT1=0.0,0.0,0.0"<<
> "\nRT1=0.0"<<
> "\nRB1=0.0"<<endl;
> }
> output.close();
> input.close();
>
> //C la la que ça devient moche: après fstream input( xxx),fp=fopen(xxx)
> fp=fopen(m_sOutputFileName,"rb"); //Open file for reading
>
> fseek(fp,0,SEEK_END); //Go to file end
> nFileLong=ftell(fp); //Get length
> char* sText = new char[nFileLong+1];//reserve string space
> fseek(fp,0,SEEK_SET); //Go to file start
> int j=fread(sText,1,nFileLong,fp); //Read the characters
> sText[j]=0; //Set string terminating null
> m_stringOut=sText; //Put text in Edit box's variable
> m_string=m_stringOut;
> fclose(fp);
>
> UpdateData(FALSE);
> }
>
> }


Cette discussion est classée dans : int, file, box, fp, nfilelong


Répondre à ce message

Sujets en rapport avec ce message

conversion [ par coyotedef ] salut!!lors de la compilation de mon code une erreur apparait. impossible de trouver un remede. "cannot convert parameter 1 from 'char [10]' to 'char' Au secour ! [ par slashparof ] Au secour! Je ne comprend vraiment pas le problème visual studio me compile cette fonction correctement, mais mon programme cause une erreur quand j'a Hachage fermé problème de lecture [ par mcflysupersonic ] Bonjour je suis nouveau sur le forum est ceci est ma première question donc j'espère que je ne me suis pas trompé d'endroit pour poster.Voilà j'ai un affichier un int dans une edit box (win32) [ par maevasa ] tout est dans le titre! Je galères j'ai essayé tout ce que j'ai pu trouver mais ça ne marche pas!int i=12;SendDlgItemMessage(hdlg, IDC_COUNT, WM_SETTE vc++ : pb d'ecriture dans fichier taille sup a prévu [ par adidmamah ] g un groooooo pb qui m'épate sincerementj'ecris dans un fichier en utilisant un structure : struct data { char nom[30]; Creation de fichier [ par PLUiK ] SalutJai fait une source qui devrait normalement me créer un fichier la voici:[b]#include int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevI prob pour coder fichier sur une matrice [ par Jazz_s ] je voudrais lire un fichier via fstream et ensuite reproduire celui ci parfaitement dans une matrice pour pouvoir jongler facilement par apres avec le f print allocation de memoir [ par sodival ] /* Je souhaiterai écrire le contenu texte d'une variable char dans un fichier, comment faire ?J'ai pri ce code, mais il me comble les espaces non ecri peek : probleme a la compilation. [ par Khahazad ] Bonjour, Lorsque je veux compiler ce code (que j'ai recupéré) avec dev-cpp Il genere des erreur que je n'arrive pas a corriger : [liker error] undef


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,373 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales