objet CFile en VC++ [help] - Programmation
Marsh Posté le 01-02-2002 à 10:30:55
Moi je chargerais tt le fichier en mémoire, puis je chercherais après CR LF..  
 
Marsh Posté le 01-02-2002 à 10:35:59
| H4dd3R a écrit a écrit  : Moi je chargerais tt le fichier en mémoire, puis je chercherais après CR LF..   | 
 
 
Pas moi ! 
La boucle est pas très compliquée à faire... 
Marsh Posté le 01-02-2002 à 10:52:32
voila ce que je fais pour l'instant: 
//boucle de lecture du fichier 
int nblu =0; 
COleVariant rec; 
CString convert; 
while(nblu=FileOut.Read(buff,sizeof(buff))) 
{ 
 rec.byref=buff; 
 convert.Format("nb rec: %s",rec); 
 AfxMessageBox(convert); 
 
 if(nblu<sizeof(buff)) 
 { 
  break; 
 } 
   
} 
FileOut.Close(); 
 
j'utilise un variant car en faite je developpe un conduit c.a.d 
je lit un fichier texte je recupere le contenu et je l'ecris 
dans une base de données sur palmOS 
pour ecrire dedans je dois utiliser les variant 
pour l'instant la boucle marche a part que je n'ecris pas encore  
dans la base de mon palm 
Marsh Posté le 01-02-2002 à 11:02:46
bon enfaite pour mon variant je veux l'affiché dans  
un message box 
mais ca merde 
a cause de format qui n'est pas approprié je pense 
Marsh Posté le 01-02-2002 à 11:24:26
utilise CStdioFile... 
 
y'a une methode que tu cherches.. 
 
CStdioFile File; 
File.open(...) 
 
CString str = File.WriteString(); lit la ligne où se situe le buffer jusqu'à un CRLF. 
 
File.close(); 
Marsh Posté le 01-02-2002 à 11:40:30
En faite je n'ai pas a utiliser writestring car je n'ai pas besoin d'ecrire dans un fichier je dois lire dans un fichier 
recuperer ligne par ligne le contenu du fichier(donc la fin d'une ligne c'est CR LF) 
et ensuite chaque ligne recuperer je l'ecris dans un enregistrement d'une base de données sur palm 
Donc pour ecrire dans la base du palm j'utilise les API pour  
ca. 
ex: 
//sfDB34 est objet de l'API que j'utilse 
//la j'ajoute un enregistrement dans la table 
sfDB34.AddNewRecord(); 
//je me positionne a cette enregistrement.C le dernier car il est 
//créer a la fin de ma table 
sfDB34.MoveLast(); 
//et la je met la valeur dans mon enregistrment 
//"ID" c'est le nom du champ rec est un objet COleVariant 
sfDB34.SetItem("ID", (COleVariant) rec); 
//enfin l'ecriture 
dataManager.WriteDBtoClient(sfDB34,false,"" ); 
 
donc la seul que j'ai besoin c de m'aider sur une boucle de lecture de fichier ou je recupere chaque ligne que je stocke dans 
un objet COleVariant 
  
 
Marsh Posté le 01-02-2002 à 11:55:02
| acidman a écrit a écrit  : En faite je n'ai pas a utiliser writestring car je n'ai pas besoin d'ecrire dans un fichier je dois lire dans un fichier recuperer ligne par ligne le contenu du fichier(donc la fin d'une ligne c'est CR LF) et ensuite chaque ligne recuperer je l'ecris dans un enregistrement d'une base de données sur palm Donc pour ecrire dans la base du palm j'utilise les API pour ca. ex: //sfDB34 est objet de l'API que j'utilse //la j'ajoute un enregistrement dans la table sfDB34.AddNewRecord(); //je me positionne a cette enregistrement.C le dernier car il est //créer a la fin de ma table sfDB34.MoveLast(); //et la je met la valeur dans mon enregistrment //"ID" c'est le nom du champ rec est un objet COleVariant sfDB34.SetItem("ID", (COleVariant) rec); //enfin l'ecriture dataManager.WriteDBtoClient(sfDB34,false,"" ); donc la seul que j'ai besoin c de m'aider sur une boucle de lecture de fichier ou je recupere chaque ligne que je stocke dans un objet COleVariant   | 
 
 
hé bah, t'as essayé au moins le ReadString de CStdioFile ? 
Marsh Posté le 01-02-2002 à 11:59:48
bah ReadString() alors  
 
c'est moi qui me suis trompé tout à l'heure 
 
en gros 
 
CStdioFile file; 
COleVariant var; 
CString str; 
 
file.open(..); 
 
while(!feof(file.m_pStream)) 
{ 
 file.ReadString(str); 
 var.SetString(str,VT_BSTR); 
} 
file.close(); 
Marsh Posté le 01-02-2002 à 12:05:05
non j'ai pas teste encore 
pour l'instant par rapport a la boucle que je fait 
je voudrais savoir si mon variant recupere bien la chaine 
mais je n'arrive pas a afficher la chaine contenu dans le variant 
 
Apres seulement je testerait avec la classe CStdioFile 
Marsh Posté le 01-02-2002 à 12:06:11
j'avais po vu ta reponse la viper 
je v essayer de suite 
merci 
Marsh Posté le 01-02-2002 à 12:15:46
Je te remercie la Viper 
le code que tu ma donner fonctionne trés bien 
  
 
Marsh Posté le 01-02-2002 à 09:11:43
quelqu'un aurait une idée d'une boucle qui irait lire dans un ficher et qui stockerait le contenu du fichier dans un buffer jusu'a ce que je rencontre la pair de caractere CR LF
En faite j'ai besoin de stocker ligne par ligne