View Full Version : [C] conversione file di testo windows in quello linux
tecno789
14-12-2011, 18:39
mi è stato richiesto di convertire un file di testo windows in quello linux, ma non so da dove cominciare. Chi mi spiega cosa devo fare, perchè non ho capito proprio cosa intende.....
grazie
http://it.wikipedia.org/wiki/Newline
tecno789
14-12-2011, 19:51
http://it.wikipedia.org/wiki/Newline
quindi in pratica come faccio a cambiare il caratteri di new line, se in un file di testo non è scritto?? scusami ma ho postato qui proprio per capire...
quindi in pratica come faccio a cambiare il caratteri di new line, se in un file di testo non è scritto?? scusami ma ho postato qui proprio per capire...
In che senso non è scritto? Probabilmente non è visibile, ma scritto sicuramente.
tecno789
14-12-2011, 20:04
In che senso non è scritto? Probabilmente non è visibile, ma scritto sicuramente.
ok sarà scritto, ma la conversione come faccio a farla se non si vede??
scusa l'ignoranza...
Scusami, ma non capisco che bisogno hai di "vederlo" con un editor per fare la sostituzione. :confused:
Comunque, in C tutti quesi caratteri sono identificati da delle sequenze di escape: http://it.wikipedia.org/wiki/C_%28linguaggio%29#Sequenze_di_Escape
tecno789
14-12-2011, 21:22
Scusami, ma non capisco che bisogno hai di "vederlo" con un editor per fare la sostituzione. :confused:
Comunque, in C tutti quesi caratteri sono identificati da delle sequenze di escape: http://it.wikipedia.org/wiki/C_%28linguaggio%29#Sequenze_di_Escape
scusami se non lo vedo, coma faccio a capire che il programma si è svolto correttamente????
scusami se non lo vedo, coma faccio a capire che il programma si è svolto correttamente????
Con Notepad++ (http://notepad-plus-plus.org/) puoi usare View->Show Symbol->Show End of line.
cdimauro
15-12-2011, 07:25
Al volo, in Python:
open('NuovoFile.txt', 'wb').write(open('VecchioFile.txt', 'rb').read().replace('\r', ''))
:cool:
Al volo, in Python:
open('NuovoFile.txt', 'wb').write(open('VecchioFile.txt', 'rb').read().replace('\r', ''))
:cool:
$ tr -d '\r' < input.txt > output.txt
Ragazzi! Sobrietà! :O
tecno789
15-12-2011, 10:18
Caspita sto python spacca proprio, in c per farlo devi svenarti :)
Caspita sto python spacca proprio, in c per farlo devi svenarti :)
Se ti accontenti, si fa in una riga anche in C. :)
banryu79
15-12-2011, 12:27
Se ti accontenti, si fa in una riga anche in C. :)
Offuscato però, mi raccomando! :asd:
tecno789
15-12-2011, 15:36
Se ti accontenti, si fa in una riga anche in C. :)
:confused:
Se ti accontenti, si fa in una riga anche in C. :)
system("tr -d '\r' < input.txt > output.txt");
ok? :asd:
:confused:
getchar() fino a EOF, putchar() se != '\r'.
Non funziona su windows, direi, quindi dici addio alla portabilità. E leggi/scrivi da stdin/stdout e non da file, ma con un paio di redirect te la cavi. Però non leggi tutto il file in memoria, e questo non fa schifo.
Ho anche detto "se ti accontenti". :Prrr:
tecno789
15-12-2011, 21:00
ok aspettate, non partite per la tangente per favore.
Allora io devo sostituire il carattere di EOF giusto??
sul libro che utilizzo c'è scritto che in windows è rappresentato da \'x1a' mentre unix non ha uno speciale carettere di end-of-file. Quindi che devo fare? nella conversione da windows a unix, semplicemente elimino quel carattere, ma se non è scritto come faccio ad eliminarlo? Mentre nella conversione opposta dovrò inserirlo, funziona così?
cdimauro
16-12-2011, 07:47
$ tr -d '\r' < input.txt > output.txt
Ragazzi! Sobrietà! :O
Si vede che non amo la commanda line? :stordita:
Caspita sto python spacca proprio, in c per farlo devi svenarti :)
E devi vedere il resto. :cool:
Se ti accontenti, si fa in una riga anche in C. :)
Certo, ma lunga e abbastanza incasinata. :O
ok aspettate, non partite per la tangente per favore.
Allora io devo sostituire il carattere di EOF giusto??
No, devi sopprimere il Carriage Return (CR, codice ASCII 13).
tecno789
16-12-2011, 07:52
No, devi sopprimere il Carriage Return (CR, codice ASCII 13).
tradotto per i comuni mortali ignoranti? :D
Aprire il file con un editor di testo e salvarlo in formato unix ?
banryu79
16-12-2011, 12:10
tradotto per i comuni mortali ignoranti? :D
Devi trasformare la codifica ascii delle "newline" nei sistemi windows con la codifica ascii delle "newline" nei sistemi *nix.
Con questi due link dovresti essere in grado di capire da te:
1) http://www.asciitable.com/index/asciifull.gif
2) http://en.wikipedia.org/wiki/Newline
Aprire il file con un editor di testo e salvarlo in formato unix ?
Eccoooo, è arrivato lui! Col suo editor! Alè!:bsod:
tecno789
16-12-2011, 18:38
ok buone notizie ce l'ho fatta. Per controllare che la conversione sia stata effettivamente fatta ho usato vi, noto programma di ubuntu!
thanks
cdimauro
16-12-2011, 19:07
Aprire il file con un editor di testo e salvarlo in formato unix ?
Non è da Veri Programmatori, ma da Quiche Eater. :O
ok buone notizie ce l'ho fatta. Per controllare che la conversione sia stata effettivamente fatta ho usato vi, noto programma di ubuntu!
thanks
Quale strada hai seguito alla fine?
tecno789
16-12-2011, 19:18
Non è da Veri Programmatori, ma da Quiche Eater. :O
Quale strada hai seguito alla fine?
si infatti non serviva a niente fare quella strada, anche perchè sto cercando di imparare a programmare per bene, quindi dire una cosa del genere è un offesa :D
comunque eee l'ho scritto in c, purtroppo con tutta la buona volontà che ho, non ho tempo di imparare il python.
cdimauro
16-12-2011, 19:23
L'importante è aver risolto il problema.
Comunque con Python avevi già la soluzione pronta. ;)
tecno789
16-12-2011, 19:28
L'importante è aver risolto il problema.
Comunque con Python avevi già la soluzione pronta. ;)
lo so mi dispiace ma sembra abbastanza diverso che per metterci le mani dovrei impararlo e non ho tempo ora...
infatti in C ho dovuto ragionarc su
cdimauro
16-12-2011, 20:28
Non ti devi dispiacere: non si nasce "imparati".
Se hai delle conoscenze del C, hai fatto bene a usare questo linguaggio.
tecno789
17-12-2011, 09:24
Non ti devi dispiacere: non si nasce "imparati".
Se hai delle conoscenze del C, hai fatto bene a usare questo linguaggio.
Beh per conoscenze e' dire troppo ma lo sto studiando quindi vi prego di avere pazienza con me :D
cdimauro
17-12-2011, 11:42
Va bene. http://digilander.libero.it/petercroft/faccine/01b/frust.gif
:D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.