Autore Topic: eliminare formattazione da output di comando Shell  (Letto 478 volte)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
eliminare formattazione da output di comando Shell
« il: 07 Luglio 2017, 13:25:11 »
Salve a tutti, in una applicazione utilizzo la shell per avere le caratteristiche di un file, ma l'output mi viene restituito come testo formattato con tanto di formattazione del terminale VT: http://wiki.bash-hackers.org/scripting/terminalcodes

come solito si tratta di estrarre tag da file sonori :D

e il comando:
Citazione
eyeD3 -v /mnt/PRS/Music/CreativeCommons/Greg_Atkinson_-_7_Gifts/Greg_Atkinson_-_01_-_7_Gifts.mp3

mi restituisce questo output (non li vedete ma ci sono colori differenti e tabulazioni):
Citazione
...ommons/Greg_Atkinson_-_7_Gifts/Greg_Atkinson_-_01_-_7_Gifts.mp3 [ 8.97 MB ]
-------------------------------------------------------------------------------
Time: 03:55   MPEG1, Layer III   [ 320 kb/s @ 44100 Hz - Joint stereo ]
-------------------------------------------------------------------------------
ID3 v2.4:
title: 7 Gifts
artist: Greg Atkinson
album: 7 Gifts
album artist: Greg Atkinson
recording date: 2016-06-22T14:52:24
eyed3.id3:WARNING: Non standard genre name: Free-Folk
track: 1      genre: Free-Folk (id None)
Comment: [Description: ] [Lang: eng]
URL: http://freemusicarchive.org/music/Greg_Atkinson/7_Gifts/Greg_Atkinson_-_01_-_7_Gifts
Comments: http://freemusicarchive.org/
Curator: ccCommunity
Copyright: Attribution: http://creativecommons.org/licenses/by/4.0/
-------------------------------------------------------------------------------
10 ID3 Frames:
TCOP (68 bytes)
TDAT (31 bytes)
TDRC (31 bytes)
TIT2 (19 bytes)
TRCK (13 bytes)
TPE2 (25 bytes)
TPE1 (25 bytes)
TALB (19 bytes)
COMM (236 bytes)
TCON (21 bytes)
536 bytes unused (padding)
-------------------------------------------------------------------------------

catturato l'output su una stringa, questa risulta cosi' composta:
Codice: [Seleziona]
"\x1B[1m\x1B[32m...ommons/Greg_Atkinson_-_7_Gifts/Greg_Atkinson_-_01_-_7_Gifts.mp3\x1B[39m\x1B[22m\x1B[32m [ 8.97 MB ]\x1B[39m\n-------------------------------------------------------------------------------\n\x1B[1mTime: \x1B[22m03:55\tMPEG1, Layer III\t[ 320 kb/s @ 44100 Hz - Joint stereo ]\n-------------------------------------------------------------------------------\nID3 v2.4:\n\x1B[1mtitle\x1B[22m: 7 Gifts\n\x1B[1martist\x1B[22m: Greg Atkinson\n\x1B[1malbum\x1B[22m: 7 Gifts\n\x1B[1malbum artist\x1B[22m: Greg Atkinson\n\x1B[1mrecording date\x1B[22m: 2016-06-22T14:52:24\n\x1B[1mtrack\x1B[22m: 1\t\t\x1B[1mgenre\x1B[22m: Free-Folk (id None)\n\x1B[1mComment\x1B[22m: [Description: ] [Lang: eng]\nURL: http://freemusicarchive.org/music/Greg_Atkinson/7_Gifts/Greg_Atkinson_-_01_-_7_Gifts\r\nComments: http://freemusicarchive.org/\r\nCurator: ccCommunity\r\nCopyright: Attribution: http://creativecommons.org/licenses/by/4.0/\n-------------------------------------------------------------------------------\n10 ID3 Frames:\nTCOP (68 bytes)\nTDAT (31 bytes)\nTDRC (31 bytes)\nTIT2 (19 bytes)\nTRCK (13 bytes)\nTPE2 (25 bytes)\nTPE1 (25 bytes)\nTALB (19 bytes)\nCOMM (236 bytes)\nTCON (21 bytes)\n536 bytes unused (padding)\n-------------------------------------------------------------------------------\n"

All'inizio ho pensato a splittare le vare righe con "split" usando "\n" come carattere di separazione, ma mi rimane sempre un po' di mondezza sparsa .....
Vi e' mai capitata questa cosa? come avete fatto a rimuovere solo roba inutile, senza rischiare di cancellare cose importanti?

until instr(stringa,"robainutile")>0 then stringa=replace(stringa"robainutile","") ... potrebbe andare?
cosa e' "robainutile"? :-(
se corri, morirai stanco (motto degli sniper)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #1 il: 07 Luglio 2017, 14:35:57 »
Se lo split su "\n" ti funziona, farei così, ogni ciclo darei tanti replace quanti sono i caratteri inutili da pulire:

Codice: [Seleziona]
Stringa = Replace(Stringa, "carattere inutile", "")
Stringa = Replace(Stringa, "altro carattere inutile", "")
ecc...

 :ciao:

P.S. Finalmente credo di aver capito cosa chiedevi, forse  :rolleyes:

Una cosa tipo questa?
Codice: [Seleziona]
Public Sub Main()

  Dim Stringa As String = "-------------------"

  Repeat
    Stringa = Replace(Stringa, "--", "-")
  Until Stringa = "-"
  Print Stringa

End
« Ultima modifica: 07 Luglio 2017, 15:34:59 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #2 il: 07 Luglio 2017, 15:35:36 »
come solito si tratta di estrarre tag da file sonori :D

A parte la miriade di modalità mostrate nella nostra Wiki per estrarre i tag dai file audio MP3, ma non c'è cosa più semplice, ...proprio perché sono dei TAG, di estrarli con le sole risorse di Gambas. 

« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #3 il: 07 Luglio 2017, 17:36:24 »
si infatti so troppe ..... sto usando il codice della tua wiki, ma stranamente da programma a programma (anche quotati) e da canzone a canzone, alle volte trovano tutti le stesse cose, alle volte uno si uno no, alle volte e' un casino ...

ma possibile che uno non possa mai avere a che fare con uno standard ben fatto e rispettato? :D

Al momento uso id3V2 eyeD3 ed il codice di VUOTT.
Controllo i risultati che da ognuno e faccio una union sui campi vuoti (e do warning se ci sono campi pieni e contenuti differenti) ....

che strazio .....
se corri, morirai stanco (motto degli sniper)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #4 il: 07 Luglio 2017, 19:06:43 »
... il codice di VUOTT.
Ma lascia perdere: studiati sempllicementre quali sono i TAG, e, dopo aver caricato il file audio in una variabile stringa con "File.Load( )", te li cerchi ed estrapoli.

Se apri un file MP3 con un editor esadecimale, puoi vedere quali TAG il file eventualmente possiede.

Insomma createlo tu il codice..... ma forse dovresti "córe troppo" ! 


« Ultima modifica: 08 Luglio 2017, 21:26:02 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #5 il: 10 Luglio 2017, 12:28:15 »
 che ci vuole un'intelligenza artificiale per capire che se inventano da file a file :D

ora faccio come dici tu, per non reinventare la ruota si finisce per perdere piu' tempo che a ripartire da capo :D
se corri, morirai stanco (motto degli sniper)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #6 il: 10 Luglio 2017, 15:42:56 »
Ricorda che i TAG all'interno del file MP3 sono stringhe di caratteri (possono essere inframezzate da valori &h00: cosa che dovrai risolvere) e sono posti nei primi 300 byte del file.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #7 il: 19 Luglio 2017, 17:09:49 »
Ancora sulla questione dei TAG dei file MP3: puoi scaricare il file allegato in fondo a questo intervento nella M.L. internazionale:
http://gambas.8142.n7.nabble.com/reading-files-tt59782.html#a59819

E' una raccolta di Classi (credo proveniente da un precedente lavoro fatto con VB) per una gestione molto accurata dei TAG.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #8 il: 21 Luglio 2017, 22:48:02 »
Ti segnalo che ultimamente l'autore di quelle Classi per la lettura dei TAG presenti in un file audio MP3 ha caricato nella sezione "Gambas software Farm" un esempio pratico con applicazione a riga di comando.
Puoi scaricare, dunque, il programma da lì nella sotto-sezione "Audio".
Si chiama: " MP3Info ".
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #9 il: 27 Luglio 2017, 18:39:41 »
questo e' molto interessante !

grazie della segnalazione.
se corri, morirai stanco (motto degli sniper)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #10 il: 27 Luglio 2017, 18:55:41 »
Comunque ti ripeto che per estrapolare i TAG dei file audio mp3 non ci vuole un'arca di scienza !   
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.722
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:eliminare formattazione da output di comando Shell
« Risposta #11 il: 31 Luglio 2017, 01:45:51 »
Ho aggiunto alla nostra WIKI un'altra pagina, nella quale si mostra la modalità di estrazione dei TAG mediante le funzioni esterne del API di VLC:

http://www.gambas-it.org/wiki/index.php?title=Estrarre_informazioni_e_TAG_da_un_file_audio_con_le_funzioni_esterne_del_API_di_VLC
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »