begin process at 2010 03 22 01:13:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

modification date


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

modification date

mardi 20 juin 2006 à 11:42:37 | modification date

drcmomo

Bonjour!!
Je fais un traitement sur les fichiers.txt
mes fichiers contiennent des centaines de lignes.Mon problème j'aimerais bien remplacer dans toutes lignes du fichier ,le champ DateHeure(voir l'exemple ci-dessous:
1011090673;06/02/06 04:03:24;4502;SNPI;SNPI1
;DIFFERENCE PROGRAMMATION SUIVI ORIGINE 607;2b;2;Train inattendu sur origine 607 index programmé 58568 index suivi 58569;1;0;2;idem exploitation;2
PAR:
1011090673;06/02/2006 04:03:24;4502;SNPI;SNPI1;
DIFFERENCE PROGRAMMATION SUIVI ORIGINE 607;2b;2;Train inattendu sur origine 607 index programmé 58568 index suivi 58569;1;0;2;idem exploitation;2
en gros j'aimerais rajouté un 20 devant le 06 pour pour chaque ligne.
 L'idée je ne sais pas le programmer, mon idée ouvrir le fichier d'origine, lire ligne par ligne le fichier,modifier format DateHeure, ecrire les ligne dans un autre fichier apres la modification  jusqu'a la fin.
Merci d'avance
lundi 18 août 2008 à 20:16:18 | Re : modification date

snpier wolf

salut en gros,
tu ouvres avec ifstream, tu le lis ligne par ligne avec getline(sdt::ofstream , sdt::tring),
tu cherche le 06 avec un switch dans une boucle for par exemple, tu rajoutes le 20 avant
tu remets la ligne dans un string et quand le fichier est fini tu le réécris.

code :

#include <fstream>
using namespace std;

int main()
{       
         string sTexte, sNewTexte;
         ofstream Fichier;
         ifstream fStr;
         const char CcTestZero='0';
         const char CcTestSix='6';
          const char CcTestSlach='/';
         fStr.open("Fichier.txt", fstream::in);//ouverture du texte
         if(fStr)
         {
                                       
                
                        while(getline(fStr, sTexte) )//boucle sur le numbre de ligne
                        {
                                 for(int i=0;i<=sTexte.length();i++)//boucle sur le numbre de lettre dans une ligne
                                 {
                                  
                                       switch(sTexte[i])//switch sur la lettre
                                       {
                                             case CcTestZero://si la lettre est "0"
                                                   if(sTexte[i+1]==CcTestSix)//si la lettre d'après est "6"
                                                  {
                                                          if(sTexte[i+2]==CcTestSlach)//si la lettre d'après est "/"
                                                          sTexte.insert(i-1,"20");//on insert 20 aven le 0
                    }
                    break;
                                       }//fin de switch
                                    }//fin de for
                             sNewTexte+=sTexte;
                            sNewTexte+="\n";
                           }// fin de while
                           fStr.close();//on ferme le fichier du monde leture
            }//fin de if(fStr)               
            Fichier.open("Fichier.txt");//on ouvre le fichier en mode écriture
            Fichier<<sNewTexte;//on réécrit le fichier avec les modifs
            Fichier.close();/on ferme le fichier
}//fin de main()

voila à tester 
                           

lundi 18 août 2008 à 20:20:11 | Re : modification date

snpier wolf

ou la mets 
           Fichier.open("Fichier.txt");//on ouvre le fichier en mode écriture
            Fichier<<sNewTexte;//on réécrit le fichier avec les modifs
            Fichier.close();/on ferme le fichier
            dans l'encapsulation de if(fStr)
            dsl
lundi 18 août 2008 à 20:48:54 | Re : modification date

snpier wolf

voisi le code corrié est qui fonctionne


code :


#include <fstream>
#include <iostream>
using namespace std;

int main()
{       
         string sTexte, sNewTexte;
         ofstream Fichier;
         ifstream fStr;
         const char CcTestZero='0';
         const char CcTestSix='6';
          const char CcTestSlach='/';
         fStr.open("Fichier.txt", fstream::in);//ouverture du texte
         if(fStr)
         {
                 cout<<"open ok\n";
                        while(getline(fStr, sTexte) )//boucle sur le numbre de ligne
                        {
                                
                                 for(int i=0;i<=sTexte.length();i++)//boucle sur le numbre de lettre dans une ligne
                                 {
                                         cout<<"lettre "<<sTexte[i]<<endl;
                                       switch(sTexte[i])//switch sur la lettre
                                       {
                                             case CcTestZero://si la lettre est "0"
                                                   if(sTexte[i+1]==CcTestSix)//si la lettre d'après est "6"
                                                  {
                                                          if(sTexte[i+2]==CcTestSlach)//si la lettre d'après est "/"
                                                         { sTexte.insert(i,"20");
                                                         i+=2;}//on insert 20 aven le 0
                                                  }
                                       break;
                                       }//fin de switch
                                  }//fin de for
                             sNewTexte+=sTexte;
                            sNewTexte+="\n";
                           }// fin de while
                           fStr.close();//on ferme le fichier du monde leture
           Fichier.open("Fichier.txt");//on ouvre le fichier en mode écriture
            Fichier<<sNewTexte;//on réécrit le fichier avec les modifs
            Fichier.close();//on ferme le fichier
           }//fin de if(fStr)              
           
}//fin de main()





Cette discussion est classée dans : fichier, ligne, index, suivi, origine


Répondre à ce message

Sujets en rapport avec ce message

ecriture fichier ligne [ par PepeDeLuxe ] Hello Voila j'ai un problème que je n'arrive pas à résoudre pour un projet, si quelqu'un pouvait m'aider ça serait sympa.. Je voudrais écrire le dans écrire dans un fichier text [ par typhoun ] Salut! Je voudrai écrire dans un fichier text mais je ne sais pas comment faire en sorte que j'écrive sur une nouvelle ligne après la fin du text.Je m ecrire sur la deuxieme ligne d'un fichier texte [ par igorpastis ] salut  voila j'ai fait une fonction qui ecrit dans un fichier texte et je voudrais a chaque fois que j'appelle cette fonction ajouter les valeures sur Lire données dans un fichier Excel en C [ par skrime ] Bonjour, J'aimerais lire les données contenues dans un fichier excel, j'aimerais pouvoir lire ligne par ligne, je ne sais pas du tout comment on peut fichier index [ par alma3rifa ] qui peut m'aider à faire une gestion en c à l'aide des fichiers indexé ?Merci passage à la ligne dans un fichier.txt aprés chaque mot [ par romydamour ] salut à tous, j'ai un souci avec le passage à la ligne dans un fichier texte, j'ai su transférer le contenu de plusieurs fichiers dans un seul et même fin de ligne [ par Joyeuse_Fougere ] Salut a vous, programmeur!je sui tres embeté g un probleme avec la fin de ligne dans un fichier texte:je dois reperer certaine ligne dans un fichier t probleme aidez moi svp [ par moujib2005 ] le truc est simple je dois extraire des entiers d'un fichier source: A puis les mettre dans un fichier destination :B de façon que les entiers soient s o s [ par moujib2005 ] le truc est simple je dois extraire des entiers d'un fichier source: A puis les mettre dans un fichier destination :B de façon que les entiers soient Se positionner sur une ligne précise dans une fichier texte [ par FOSTA ] Bonjour,Je souhaite faire une indexation directe sur une ligne donnée en donnant le numéro de la ligne. Cela est-il possible en C?Merci pour votre aid


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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 : 0,624 sec (3)

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