Newsgroup: it.comp.lang.visual-basic
Titolo: [OT] : Esperimento con Mp3

Io mi chiedo un paio di cose:
Leggendo un vecchio post non vi sto a dire come, mi è saltato in testa
di provare a copiare un mp3 in maniera un po' ehm....diciamo Bislacca? :)
Ok, Prendo l'mp3 , lo rinomino in TXT e aprendolo mi trovo davanti
tutti i miei bellissimi caratteri strani che lo compongono.
Lidea L4m0r era quella di copiare il testo dell' "mp3 testuale" e incollarlo
in un nuovo file di testo,
poi rinominare il secondo file in Mp3 ed ascoltarlo.
"In della non" dicono a roma :) Impossibile. E fino a qui ci sto, non posso
avere cosi' culo da scoprire l'uovo di colombo :)
Pero' le domande sono
il testo nel file mp3 è composto da , mettiamo caso, 3000 righe.
io copio e quando incollo
non incolla Nulla
se non un "Id3[]" . Sembra che non riesca a incollare nulla nel momento in
cui incontra uno di quei segni a forma di quadratino vuoto. Li' si blocca.
Come mai ?
E poi, sicuramente, se riuscissi a incollare TUTTO il testo dell'
Mp3Testuale, sicuramente ( vado a naso, figurati )
l'mp3 copiata non funzionera'. Eppure io incollo paro paro quello che c'e'
nella prima ...
Vi chiedo una spiegazione tecnica. Per il puro piacere di imparare. Perche'
non funzionerebbe ?
Grazie :)

 ha scritto nel messaggio
news:yV4ja.5071$iy5.1...@twister2.libero.it...

[cut]
Perchè quelli che tu vorresti copiare sono caratteri che in realtà sono
singoli byte. Il procedimento è lo stesso se tu apri un file exe e leggi
tutti i segni strani che ci sono, poi tenti di copiarlo e nel secondo file
non funzia :)
Anche io, per un software che stiamo sviluppando, mi sono dovuto impazzire
per trovare una protezione (non efficiente sia ben chiara) abbastanza sicura
per i nostri mp3 che distribuiremo, ed ho agito .. indovina un po .. proprio
su quei segnetti che tu vedi ;)
e cmq .. se tu incolli paro paro ..(ndr tue parole!!!) vedi solo id3 perchè
è la sola parte testo che è presente ....
Spero di averti aiutato .. altrimenti scusa se ti ho mischiato ancora di + i
pensieri ... :)
[t]Eo

 Come mai ?
A occhio direi che dopo Id3[] c'è un bel null (chr$(0)) e li si blocca
credendo che il testo è terminato.
Ma credo sia un problema del "copia" e non dell'"incolla".
Cosa stai usando per aprire gli mp3? Non dirmi notepad perchè fa di questi
scherzi con files "binari".
Ciao


 credendo che il testo č terminato.
Non si blocca per uno '0' ma per un Ctrl/Z (EOF)
-> GbC
http://www.gbcweb.com

 non funzionerebbe ?
Visto che lo chiedi così umilmente, non ci si può esimere... :-)))
Quello che hanno detto gli altri è in parte vero, ma sicuramente
è molto parziale e poco chiaro.
Il discorso è questo: un file mp3 è un file che contiene,
in maniera per giunta compressa con algoritmi particolari,
dei valori di frequenza campionata (delle cifre binarie, insomma).
In mezzo a queste cifre binarie ci stanno, in deteminate posizioni,
quelle che vengono chiamate "IdTag3", versione 1 (ed eventualmente
anche versione 2), che contengono informazioni sull'autore, album,
genere musicale eccetera.
Il problema è andare a prendere queste informazioni.
Se sai esattamente dove sono ubicate, puoi fare in
modo di andare a leggere solo i punti che ti servono,
altrimenti devi leggere carattere per carattere e vedere
di "capire" quello che riesci a capire...
I file di testo (quelli che hanno estensione .txt)
presuppongono che tu stia usando solo caratteri
"leggibili", cioè lettere, numeri e segni speciali.
E poi ci sono i caratteri chiamati di "controllo"
del testo che sono il carattere di "a capo"
(carriage return, o CR), newline (LF), fine file
(EOF), tab, eccetera.
Se tu leggi un file "binario" (un file che contiene
caratteri "non stampabili") come se fosse un
file di testo, ti capita che tutti i caratteri di controllo
non vengono visualizzati ma "eseguiti". Cioè, se
il Blocco Note legge un carattere di "a capo",
andrà a capo, se legge un tab, lascerà un certo
numero di spazi come se facesse una tabulazione,
ma soprattutto se incontra il carattere che per lui
significa "fine file", da quel momento in poi non ti
fa vedere quello che c'è dopo.
Soluzione: usare un editor binario, oppure aprire
il file in modalità binaria e non sequenziale.
Un piccolo esempio per cominciare:
'-----------------------------------------------------------
    Dim x As String
    Dim y As Integer
    Dim z As String
    Open "C:\MioFile.txt" For Binary As 1
    Do Until Loc(1) = LOF(1)
        x = Input(1, 1)
        y = Asc(x)
        If y > 31 And y < 128 Then
            z = x
        Else
            z = ""
        End If
        List1.AddItem Format(y, "000") & " " & Hex$(y) & " " & z
    Loop
    Close 1
'-----------------------------------------------------------
Questo programmino puoi incollarlo nella FormLoad
di un progetto vuoto, inserendo nel form un controllo
ListBox (chiamato List1) dove visualizzare il contenuto
del file. Per ogni carattere del file verrà scritta una riga
contenente il valore  ASCII decimale del carattere letto,
il suo valore esadecimale, e infine, ma solo se si tratta
di un carattere visualizzabile (da codice 32 a 127, tanto
per porre dei limiti), il carattere vero e proprio.
--
Er Roscio.


Mhh..."blocco note" :))
Cosa dovrei usare , secondo te ?

MMhh....Mi sei piaciuto :)
Grazie eh :)
Altro che [Sfida] ... Umilta' ci vuole quando non si sanno le cose ... :))
[Upquoting, dato che quote è lungo :) e mi serve da copiare in seguito :) ]



UltraEdit ad esempio! ;-)

 UltraEdit ad esempio! ;-)
Io uso Context, suggerito da gbc e non mi devo preoccupare di licenze varie.
Ciao

 l'mp3 copiata non funzionera'.
Invece credo che  funzionerebbe se l'editor non cercasse di "capire" cosa
sono i caratteri selezionati, e li copiasse cosi' come sono senza modifiche
od omissioni.
ciao
Paolo B.