Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-11-2004, 19:02   #1
kappa85
Senior Member
 
L'Avatar di kappa85
 
Iscritto dal: Feb 2004
Messaggi: 3797
Lista files

Chiedo venia se è la sezione sbagliata o se è un argomento old...

esiste uno script, un programmino o altro che scrivano in un file di testo la lista dei files di una o più cartelle, ed eventualmente, nel caso di mp3, ne associno anche alcuni dettagli come titolo, autore, durata, ecc???
kappa85 è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2004, 21:00   #2
cikko
Member
 
L'Avatar di cikko
 
Iscritto dal: Sep 2004
Città: vicino a Cosenza
Messaggi: 61
per quale sistema operativo ti serve? e quale linguaggio?
se per C++, ti posso postare il codice per la lettura/scrittura dei tag ID3.

Saluti
__________________
<| http://fgr.altervista.org |>
<| GNU/Linux Registered User #365929 |>
<| GnuPG/OpenPGP key available |>
cikko è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2004, 23:48   #3
kappa85
Senior Member
 
L'Avatar di kappa85
 
Iscritto dal: Feb 2004
Messaggi: 3797
Grazie, saresti molto gentile, per c++ va benissimo, deve girare su win xp.
kappa85 è offline   Rispondi citando il messaggio o parte di esso
Old 29-11-2004, 11:55   #4
cikko
Member
 
L'Avatar di cikko
 
Iscritto dal: Sep 2004
Città: vicino a Cosenza
Messaggi: 61
Ciao,
allora ti posto il codice per i tag ID3. Quindi deve girare su Win xp, se era per Linux ti potevo postare qualcosa anche sulla lista di file e cartelle. Comunque ci dovrebbe essere una qualche API (che ora mi sfugge).

<code>
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;

bool ctrlTag(fstream&); // controlla se esiste la stringa TAG
void viewTag(fstream&); // visualizza le informazioni ID3
void setTag(fstream&); // imposta i tag ID3, anche se non esistono

typedef struct {
char title[31];
char artist[31];
char album[31];
char year[5];
char comment[29];
char track;
char genere;
} ID3; // struttura globale, accessibile da tutte le funzioni

int main(int argc, char* argv[])
{
char risp;
if (argc == 1 || argc > 2) {
cerr << "Error: Devi specificare un file .mp3!\n" << "Sintassi: ./id3 \"file1.mp3\"\n\n";
exit(EXIT_FAILURE);
}

fstream fio(argv[1], ios::binary | ios::in | ios::out);
if (!fio) {
cerr << "File non valido o non esistente!\n\n";
exit(EXIT_FAILURE);
}

// controllo se è presente la stringa TAG
if (!ctrlTag(fio)) cerr << "TAG ID3 mancanti o errore di posizionamento all'interno del file!\n\n";
else viewTag(fio);
cout << "Desideri inserire/modificare i tag ID3? [Si, No]: ";
cin >> setw(1) >> risp;
if (risp == 's' || risp == 'S') setTag(fio);
return EXIT_SUCCESS;
}

bool ctrlTag(fstream& file)
{
char buf[3];
file.seekp(-128, ios::end); // posizionamento 128 byte prima di EOF
file.read(buf, 3);
if (!strncmp(buf, "TAG", 3)) return true; // c'e' la stringa tag
else return false;
}

void viewTag(fstream& file)
{
char buf[129];
int i;

file.seekp(-128, ios::end);
file.read(buf, 128);
// titolo traccia, byte 3..32
cout << "\nTITOLO: ";
for (i = 3; i < 33; i++)
if ((buf[i] == '\0') || (buf[i] == ' ') && (buf[i+1] == ' ')) break;
else cout << buf[i];
// artista, byte 33..62
cout << "\nARTISTA: ";
for (i = 33; i < 63; i++)
if ((buf[i] == '\0') || (buf[i] == ' ') && (buf[i+1] == ' ')) break;
else cout << buf[i];
// album, byte 63..92
cout << "\nALBUM: ";
for (i = 63; i < 93; i++)
if ((buf[i] == '\0') || (buf[i] == ' ') && (buf[i+1] == ' ')) break;
else cout << buf[i];
// anno, byte 94..96
cout << "\nANNO: ";
for (i = 93; i < 97; i++)
if (!(buf[i] >= '1') && (!buf[i+1] <= '9') || (buf[i] == '\0')) break;
else cout << buf[i];
// commento, byte 94..96
cout << "\nCOMMENT: ";
for (i = 97; i < 126; i++)
if ((buf[i] == '\0') || (buf[i] == ' ') && (buf[i+1] == ' ')) break;
else cout << buf[i];
// traccia
cout << "\nTRACCIA: ";
cout << static_cast<int> (buf[126]);
// genere
cout << "\nGENERE: ";
cout << buf[127];
cout << "\n\n";

}

void setTag(fstream& file)
{

ID3 id3;
int size, i, traccia;
char tag[] = "TAG";
char buf[125], track[4];

if (!ctrlTag(file)) {
file.seekp(0, ios::end);
file.write(tag, 3);
} else file.seekp(-125, ios::end);
file.flush();
cin.getline(tag, 3);
cout << "\nTitolo: ";
cin.getline(id3.title, 31);
size = cin.gcount()-1;
for (i = size; i < 30; i++) id3.title[i] = static_cast<char> (NULL);
for (i = 0; i < 30; i++) buf[i] = id3.title[i];
cout << "\nArtista: ";
cin.getline(id3.artist, 31);
size = cin.gcount()-1;
for (i = size; i < 30; i++) id3.artist[i] = static_cast<char> (NULL);
for (i = 0; i < 30; i++) buf[30+i] = id3.artist[i];
cout << "\nAlbum: ";
cin.getline(id3.album, 31);
size = cin.gcount()-1;
for (i = size; i < 30; i++) id3.album[i] = static_cast<char> (NULL);
for (i = 0; i < 30; i++) buf[60+i] = id3.album[i];
cout << "\nAnno: ";
cin.getline(id3.year, 5);
if (cin.gcount()-1 < 4 || id3.year[0] == '\n') for (i = 0; i < 4; i++) id3.year[i] = static_cast<char> (NULL);
else for (i = 0; i < 4; i++) buf[90+i] = id3.year[i];
cout << "\nComment: ";
cin.getline(id3.comment, 29);
size = cin.gcount()-1;
for (i = size; i < 28; i++) id3.comment[i] = static_cast<char> (NULL);
for (i = 0; i < 28; i++) buf[94+i] = id3.comment[i];
cout << "\nTraccia: ";
cin.getline(track, 4);
traccia = atoi(track);
if (traccia >= 0 && traccia <= 127) id3.track = static_cast<char> (traccia);
else id3.track = static_cast<char> (NULL);

buf[122] = static_cast<char> (NULL);
buf[123] = id3.track;
buf[124] = static_cast<char> (NULL); // genere

file.write(buf, sizeof(buf));

}

</code>

Saluti
__________________
<| http://fgr.altervista.org |>
<| GNU/Linux Registered User #365929 |>
<| GnuPG/OpenPGP key available |>
cikko è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2004, 18:38   #5
kappa85
Senior Member
 
L'Avatar di kappa85
 
Iscritto dal: Feb 2004
Messaggi: 3797
Scusa, per i midi è possibile la stessa cosa o simile?
kappa85 è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2004, 19:59   #6
cikko
Member
 
L'Avatar di cikko
 
Iscritto dal: Sep 2004
Città: vicino a Cosenza
Messaggi: 61
Non lo so come e' la situazione per i midi.
__________________
<| http://fgr.altervista.org |>
<| GNU/Linux Registered User #365929 |>
<| GnuPG/OpenPGP key available |>
cikko è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2004, 22:27   #7
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
scusate ragazzi...ma a cosa serve questo codice?cosa produce?e sopratutto...come posso far si che diventi un file utilizzabile per la sua applicazione?
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2004, 22:38   #8
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da NeoNum6
scusate ragazzi...ma a cosa serve questo codice?cosa produce?e sopratutto...come posso far si che diventi un file utilizzabile per la sua applicazione?
intendi come farlo eseguire? se è questo devi compilarlo

MB_ICONQUESTION
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 30-11-2004, 23:11   #9
NeoNum6
Senior Member
 
Iscritto dal: Feb 2004
Città: BhO
Messaggi: 3701
come lo compilo?cosa mi serve?dove posso scaricare questo programma?
__________________
Linux User 414915 linux counter
Ho concluso con yorick, gor, djgusmy85, sulphur, Rospaccio, Leland Gaunt, paciuli
NeoNum6 è offline   Rispondi citando il messaggio o parte di esso
Old 01-12-2004, 08:18   #10
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
guarda nelle faq oppure cerca devcpp

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Solo le cialde Nespresso Original costan...
Un nuovo materiale termoelettrico promet...
Nuova acquisizione per Apple: ingegneri ...
OpenAI ritira il taglio al Pro 200, Anth...
Polymarket, script esterno compromesso: ...
I MacBook Pro con display OLED avranno u...
DeepSeek rilascia Superagent: arriva l'a...
Meta ha costruito in Cina il robot umano...
App non ottimizzate sui pieghevoli? Goog...
Dyson Supersonic super scontato su Amazo...
Proscenic punta al massimo con le scope ...
Altri pieghevoli per Samsung: l'azienda ...
Musk non riesce a fermare la causa: le t...
Grafene al posto del silicio per le cell...
F-Stop, il prequel cancellato di Portal ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v