Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti,
Sto realizzando un lettore musicale in c++, funziona alla perfezione se non per un problema. Dovrei prendere il contenuto del file che in pratica è strutturato in questo modo:
e devo splittarlo per i due punti ( : ) e in seguito per il punto ( . ) dove frequenza e ampiezza sono numeri interi da convertire da stringa a int. Qualcuno può dirmi una funzione per splittare? Grazie anticipatamente...
Ultima modifica effettuata da ExSoax il 07/09/2009 alle 11:59
Salve a tutti,
Sto realizzando un lettore musicale in c++, funziona alla perfezione se non per un problema. Dovrei prendere il contenuto del file che in pratica è strutturato in questo modo:
e devo splittarlo per i due punti ( : ) e in seguito per il punto ( . ) dove frequenza e ampiezza sono numeri interi da convertire da stringa a int. Qualcuno può dirmi una funzione per splittare? Grazie anticipatamente...
Da come ho capito, devi mettere la frequenza e l'ampiezza in un intero.
Basta che usi la getline:
Codice sorgente - presumibilmente Plain Text
getline(nome_flusso;nome_var_intera;':');
in questo modo ti dovrebbe mettere in nome_var_intera tutto quello che c'e' prima dei due punti :
forse nn mi soo spiegato bene LoL. Il file è cosi :
Codice sorgente - presumibilmente Plain Text
1.250:4.560:1.1:1000.3000
io devo splittare il testo per i due punti ( : ) in modo da ottenere un array con dentro i valori e poi estrarre l'array splittando in due attraverso il punto ( . ) in modo da interpretare il suono :
Codice sorgente - presumibilmente Plain Text
_beep(1,250); _beep(4,560);
a me serve la funzione di split
Ultima modifica effettuata da ExSoax il 07/09/2009 alle 12:59
forse nn mi soo spiegato bene LoL. Il file è cosi :
Codice sorgente - presumibilmente Plain Text
1.250:4.560:1.1:1000.3000
io devo splittare il testo per i due punti ( : ) in modo da ottenere un array con dentro i valori e poi estrarre l'array splittando in due attraverso il punto ( . ) in modo da interpretare il suono :
Codice sorgente - presumibilmente Plain Text
_beep(1,250); _beep(4,560);
a me serve la funzione di split
Salve,
non so se esiste gia', ma potresti costruirla tu usando la strchr per trovare la posizione del carattere che ti interessa, la strncpy per fare lo split vero e proprio, e la atoi per la traduzione stringa/intero.
Dovrebbe venire qualcosa del genere:
Codice sorgente - presumibilmente Delphi
/*
Supponi di avere una variabile linea di tipo stringa (char*)in cui hai letto una riga del file nel formato che hai detto tu;
un' array arr1 di n stringhe dove farai il primo split
un'array arr2 di nx2 interi dove farai il secondo split
*/
char*ptr1 = linea,*ptr2,*temp;
int i = 0, j;
/************** ora inizia il primo split **************/
while(ptr2 = strchr(ptr1,':')){
strncpy(arr1[i], ptr1, ptr2 - ptr1);
ptr1 = ptr2;
i++;
}
ptr2 = strchr(ptr1, 0)
strncpy(arr1[i], ptr1, ptr2 - ptr1);
i++;
/************* ora inizia il secondo split *************/