Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - problema con righe di testo
Forum - C/C++ - problema con righe di testo

Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 21:41
Mercoledì, 18/03/2009

Ho un problema leggendo un file di testo

il testo letto viene tutto concatenato e non viene mandato a capo
in pratica mi concatena tutto il testo letto da un semplice file txt

Codice sorgente - presumibilmente C#

  1. FILE *FOpen;
  2.  
  3.   if(OpenDialog1->Execute()) {
  4.  
  5.         FOpen = fopen(OpenDialog1->FileName.c_str(),"r");
  6.  
  7.          if( FOpen == NULL )
  8.                 {
  9.                         ShowMessage("File Errato");
  10.                         return;
  11.                 }   else {
  12.  
  13.                  FileSize = GetFileSize(OpenDialog1->FileName.c_str(),NULL);
  14.  
  15.                
  16.                 Edit1->Text=OpenDialog1->FileName.c_str();
  17.  
  18.                 //var lol che conta max 300 parole per riga
  19.                 char lol[300] = "a";
  20.  
  21.                 //ciclo while che si interrompe fin quando
  22.                 //fopen e vuoto.
  23.                 while (!feof(FOpen)) {
  24.                 fscanf(FOpen, "%s", lol);
  25.  
  26.                
  27.                
  28.                 AnsiString txt = this->Edit2->Text;
  29.                 this->Edit2->Text = txt + lol;
  30.  
  31.                  }
  32.  
  33.                  AnsiString CTXT = Edit2->Text;
  34.                  this->RichEdit1->Text = CTXT;
  35.  
  36.  
  37.  
  38.                 }
  39.                 fclose(FOpen);
  40.  
  41.   }



potete aiutarmi su come mandare a capo il testo automaticamente come nel file?


PM Quote
Avatar
gioser (Normal User)
Pro


Messaggi: 111
Iscritto: 03/10/2008

Segnala al moderatore
Postato alle 13:09
Giovedì, 19/03/2009
Testo quotato

Postato originariamente da Thejuster:

Codice sorgente - presumibilmente C/C++

  1. //ciclo while che si interrompe fin quando
  2.                 //fopen e vuoto.
  3.                 while (!feof(FOpen)) {
  4.                 fscanf(FOpen, "%s", lol);
  5.  
  6.                
  7.                
  8.                 AnsiString txt = this->Edit2->Text;
  9.                 this->Edit2->Text = txt + lol;
  10.  
  11.                  }



potete aiutarmi su come mandare a capo il testo automaticamente come nel file?



usando la fscanf("%s" ...) butti via tutti i caratteri blank, compresi i ritorni a capo.

usa la fread oppure, se vuoi leggere riga per riga, usa la fgets.

Ciao :)

PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 14:17
Giovedì, 19/03/2009
mi da errore,
forse perchè uso borland che ha altre sitansi

come mi dice

Cannot Convert Costant char * to int
Type MissMatch in parametrer '___n' (wanted ' int ', got constant char *)


PM Quote
Avatar
gioser (Normal User)
Pro


Messaggi: 111
Iscritto: 03/10/2008

Segnala al moderatore
Postato alle 20:57
Giovedì, 19/03/2009
scusa ma non ho capito

puoi postare il codice che ti dà errore ?

PM Quote