Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2479 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  pb BC5 Trichedit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb BC5 Trichedit

n°228761
polyacetal
I was here
Posté le 16-10-2002 à 15:56:12  profilanswer
 

hello,
un probleme classique pour les connaisseurs de BC++5 avec les composants vcl je suppose :
je sauvegarde le contenu d'un objet Trichedit qui contient des lignes vides : ex:
1
2
 
3
 
 
4
 
la propriété lines de trichedit me retourne ca comme contenu de la fenetre, c'est ce qui est sauvegarder.  
(Lines->Strings->Text.c_str())
text: "1\r\r\n2\r\r\n\r\r\n3\r\r\n\r\r\n\r\r\n4\r\r\n"
le pb est que je charge ce fichier avec "getline" et "ifstream"
dans le joli style C; les lignes que me retourne cette méthode sont:
1
2
3
 
4
 
il me manque des "\n" !!!
si qqun a une idée comment relire correctement un fichier qui contient plein de caractère '\r' (qui vienne d'où d'ailleurs !!)
je suis preneur.
merci
 
 
 

mood
Publicité
Posté le 16-10-2002 à 15:56:12  profilanswer
 

n°228782
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-10-2002 à 16:34:19  profilanswer
 

BC++5 ? BCB 5 tu veux dire ?
Borland C++ 5 c'est autre chose que Borland C++Builder 5 :D
 
Sous Windows le retour de ligne c'est deux caractères, \r\n


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°228835
polyacetal
I was here
Posté le 16-10-2002 à 17:26:48  profilanswer
 

oui c'est builder mais personne n'est parfait,  
en fait pour plus de clarté mon problème est de lire un fichier en mémoire ligne par ligne, mon code (humble) est le suivant :
 
 
zone_text est un vector<char *>
 
//-
bool ChargeFichier_Tab::Charger_Fichier(string Fichier){
    if(loading)
        zone_text->reserve(SSIZE);
 NomFichier = Fichier;
 inout->open((char *)NomFichier.data(),ios_base::in);
 char * tmp = new char[CHAR_BUFF_MAX_LENGTH];
 int i=0;
 while(!inout->eof()){
   debLigne.push_back(inout->tellg());    //un "pointeur" sur chaque debut de ligne.
   inout->getline(tmp,CHAR_BUFF_MAX_LENGTH);
  char * zone = new char[strlen(tmp)+1];
  zone_text->push_back(strcpy(zone,tmp));
   ++i;
 }
 NbLigne = i;
 debLigne.push_back(inout->tellg());  
        //derniere ligne.
 delete [] tmp;
    return true;
}
//-
je stocke dans mon vector chaque ligne lue mais si mon fichier vaut : "1\n2\n\n3\n\n\n4"
il me fabrique les lignes suivantes :
1
2
3
 
4
 :??:  
mon prog a "oublier" une ligne "vide"
là, je comprend pas ....
 
 

n°228901
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 16-10-2002 à 19:13:34  profilanswer
 

je crois surtout que cette version de Borland est buggé avec les std::string, j'avais eu un problème similaire avec des 0 qui apparaissait à la fin de mes chaines


---------------
du bon usage de rand [C] / [C++]

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  pb BC5 Trichedit

 

Sujets relatifs
[BORLAND c++] utilisation de TRichedit ENCORE des prob[RESOLU NA!!][DELPHI] créer un composant avec un attribut de type TRichEdit
Plus de sujets relatifs à : pb BC5 Trichedit


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)