Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con pulizia righe da caratteri
Forum - C/C++ - Problema con pulizia righe da caratteri "nascosti" ascII?

Avatar
tommyprojects2011 (Normal User)
Newbie


Messaggi: 10
Iscritto: 15/01/2011

Segnala al moderatore
Postato alle 19:24
Giovedì, 10/03/2011
io ho un file .txt che contiene:

87,46,57,90,17
,
48,17,15,29,52
,
46,5,9,38,50
,
75,88,44,68,31
,
90,45,84,69,8
,
11,81,9,60,21
,
90,33,3,16,23
,
37,86,19,21,60
,
69,66,84,1,46
,
68,35,88,19,63
,
47,32,39,58,51
,
88,27,33,2,44
,
4,30,25,5,46
,
30,5,86,53,50
,
52,36,76,16,25
,


mentre dovrebbe essere:

87,46,57,90,17,
48,17,15,29,52,
46,5,9,38,50,
75,88,44,68,31,
90,45,84,69,8,
11,81,9,60,21,
90,33,3,16,23,
37,86,19,21,60,
69,66,84,1,46,
68,35,88,19,63,
47,32,39,58,51,
88,27,33,2,44,
4,30,25,5,46,
30,5,86,53,50,
52,36,76,16,25,

con notepad ++ evidenzio questi caratteri nascosti (CRLF) che devo rimuovere...

87,46,57,90,17CRLF
,CRLF
48,17,15,29,52

Perfavore qualcuno/a mi aiuta a ripulire queste benedette... righe??? :asd:

GRAZIE INFINITEEE :D

PM
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Up
1
Down
V
Segnala al moderatore
Postato alle 19:37
Giovedì, 10/03/2011
Mi pare di capire che le righe da eliminare siano ad intervalli regolari, quindi basta leggere riga per riga e salvare in un altro file solo le righe corrette, aggiungendo in append alla fine della riga corretta una virgola...

Ultima modifica effettuata da lorenzo il 10/03/2011 alle 19:38
PM
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Up
1
Down
V
Segnala al moderatore
Postato alle 19:40
Giovedì, 10/03/2011
semplicemente con una cosa di questo genere:

Codice sorgente - presumibilmente C/C++

  1. char *p = // punta al testo del file
  2. char *h = // punta ad un'area di memoria lunga almeno quanto il file
  3.  
  4. while(*p) {
  5.  
  6.     if (*p != 10 || *p != 13) {
  7.         *h = *p;
  8.         h++;
  9.     }
  10.     p++;
  11. }



in questo modo dentro la stringa puntata da h ci sarà il testo del file senza i ritorni a capo :)

Puoi fare la stessa cosa anche senza leggere tutto il file in memoria, basta leggere carattere per carattere e comportarsi in maniera analoga.

Ultima modifica effettuata da HeDo il 10/03/2011 alle 19:48
grazie ragazzi... ma avendo ad esempio string linea come posso metterla nel cod da voi postato? Grazie - tommyprojects2011 - 10/03/11 21:26
PM