PDA

View Full Version : Eliminare a ripetizione delle parole uguali nel testo


samuelx
30-07-2008, 18:29
Allora vi spiego il problema, ho dei messaggi dell cellulare che dovrei stampare ma volevo sfoltire le informazioni(sono salvati su un txt), vi faccio un esempio


------------
da:samuelx
a: mio numero
numero2:
altro:
messaggio: testo messaggio
-------------

ora l'unico modo che ho trovato è stato quello della sostituzione delle parole con uno spazio, ma mi vengono visualizzate delle righe vuote, più precisamente cosi:
------------
da:samuelx



messaggio: testo messaggio
-------------


esiste un modo per evitare questo problema oppure per eliminare in un passaggio successivo le righe vuote e far risultare i messaggi cosi:

------------
da:samuelx
messaggio: testo messaggio
-------------

volevo evitare di farlo a mano per ogni messaggio visto che sono oltre 3000 messaggi.

zuper
30-07-2008, 20:13
hai 3 soluzioni :)

1) importi il file in excel e con i filtri escludi le righe che cominciano con una determinata stringa

2) sei hai già eliminato tutte le cose che non ti servono e devi solo eliminare le righe bianche....importi il file in excel....aggiungi una colonna all'inizio che riempirai partendo da 1 fino alla fine....ordini per la colonna 2 in ordine alfabetico e cancelli le righe bianche....saranno tutte sotto....e poi riordini per la prima colonna....

3) sostituisci le parole che non ti servono invece che con lo spazio con ZZZZ (esempio) poi da cmd usi il comando

find /V "ZZZZ" nomefile.txt>nomefile1.txt

insomma....vedi tu :)

john_revelator
30-07-2008, 22:55
Se ho capito bene di ogni messaggio devi conservare solo due righe, quelle che iniziano con da: oppure con messaggio:

Puoi ricorrere alla powershell.
La scarichi da qui:

http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx

una volta installata la richiami digitando powershell da esegui. Raggiungi tramite il comando cd, come col normale prompt dei comandi, il percorso in cui si trova il tuo file e a questo punto scrivi quest'unico comando:

gc nome_tuo_file.txt | ? {$_.startswith("da:") -or $_.startswith("messaggio:")} > nome_file_che_verrà_generato.txt

e il gioco è fatto. :)

simoTDI
31-07-2008, 13:21
usa le regular expression di Perl fai miracoli!

http://www.perl.it/documenti/articoli/mb_corso_perl/mb_corso_perl_6.html

programma: http://www.ultrapico.com/Expresso.htm

puoi indicare esattamente di cancellare dopo un dato tag (nel tuo caso "a:" )