Importare forma d'onda di un oscilloscopio in un programma

Ho questo problema, facendo un certo lavoro ho salvato dall'oscilloscopio su floppy la schermata di una certa onda. L'ho fatta salvare in .csv Nel file si vedono chiaramente salvati il valore dell'asse dei tempi, il valore in y del canale 1 e quello del canale 2. Poi arriva una virgola e di nuovo altri 3 numeri salvati in notazione esponenziale senza spazi o altro tra loro. Ho bisogno di prendere questo dato in un programma scritto in un linguaggio quasi identico al c++ per interpolarla. Qualcuno per caso ha un programma di esempio gi=E0 pronto o qualcosa di simile?

Grazie!!

Reply to
Luca85
Loading thread data ...

Ma questo programma che scopo ha? solo ridarti la forma d'onda a video?

Alex

Reply to
[mAnNaRo]

Luca85 ha scritto:

i file .cvs possono essere facilmente importati in programmi tipo excel o openoffice. dopo di che puoi eleborate i dati come vuoi. se devi fare qualcosa di "custom" devi scriverti qualcosa in C++ o roba simile. emilio

Reply to
emilio

No no! Se no salvavo direttamente l'immagine in tiff(mi pare le salvi cosi')

E' la forma d'onda che si vede in uscita da un rivelatore di particelle. E per esercizio devo interpolarla. Dovrebbe essere la somma di una carica piu' una scarica esponenziale.. Sul fronte di salita(brevissimo rispetto l'RC di cui dopo) si vede la costante di tempo di scintillazione dello scintillatore. E su fronte di discesa si vede l'RC del pre di carica dell'elettronica che c'e' dietro lo scintillatore.

Ah..E per quanto riguarda l'importarli in excel, a parte che non mi e' comodo vista la mole di punti che salva. E poi...Si prende solo il primo numero dei 3!! Lui vuole un numero per ogni virgola. Mentre io per ogni virgola ho 3 numeri. X, Y1 e Y2. Il programma in c++ che interpola l'ho gia'...Mi manca un codice che estragga tutto dal file. Non dovrebbe essere complicato..Ma file in c gia' ne ho gestiti 2 o 3 in vita mia... In c++ mai nessuno. E solitamente i file che gli facevo leggere erano quelli che gli facevo scrivere io, quindi li formattavo in modo da saperli leggere.

E' che magari qualcuno di voi aveva gia' avuto la necessita' di farlo.

Reply to
Luca85

On 21 Apr, 16:21, Luca85 wrote: .=2E

Ciao, forse questo puo' tornarti utile

formatting link

=E8 un libro di calcolo numerico con numerosi esempi in c.

Reply to
earendil.elwing

On 21 Apr, 17:04, snipped-for-privacy@gmail.com wrote:>

Questo puo' sicuramente tornar utile... Ma non per sto problema. Sto programmando in root...che e' c++...piu' tutte le classi che servono tipicamente per sti lavori... E quindi le interpolazioni e altro le ho gia' pronte nel codice con delle semplici chiamate. E inoltre son chiamate che ho gia' scritto per altri scopi in precedenza!!

Reply to
Luca85

Luca85 wrote in news:1177167344.872334.47890 @d57g2000hsg.googlegroups.com:

Probabilmente sbagli l'importazione (può essere necessario cambiare il separatore).

Ecco, appunto. Nella localizzazione italiana la virgola è il separatore decimale, i csv vanno modificati usando come separatore il puntoevirgola (ad esempio).

Conosci Perl? E' un linguaggio C-like, potentissimo nella manipolazione dei file di testo.

Ciao, AleX

Reply to
AleX

Non mi fa domande sull'importazione..Probabilmente si pu=F2 cambiare...Ma tanto non mi serve importarlo in excel.

Non conosco Perl. L'ho usato una sola volta per modificare un codice in perl gia' esistente di 3 righe che serviva a far partire ogni 40 minuti un programma.

Pero' per scrivere programmi uso Vim..E con quello una sostituzione di , in ; si fa in 4 secondi. Vedr=F2 di scriverlo io il codice che legge.

Reply to
Luca85

Luca85 wrote in news:1177178482.629315.300400 @p77g2000hsh.googlegroups.com:

Se il file ha estensione .csv, excel lo apre automaticamente (e a modo suo...) ma se lo apri da excel (file->apri), parte la procedura guidata. Infine, se te lo carica tutto in una colonna, Dati->testo in colonne

Si, con Vim fai veloce. Comunque non intendevo dire di usare perl per la sostituzione, ma per scrivere il codice che ti serviva.

Ciao, AleX

Reply to
AleX

Uso Root...

formatting link
per fare interpolazioni,grafici, conti e molte altre cose simili per cui son gi=E0 pronte le classi =E8 una bomba.

Reply to
Luca85

Se e' quasi identico al c/c++, non dovresti avere alcuna difficolta' a leggere un file di testo usando le funzioni classiche stdio. Apri il file con fopen, lo leggi una riga alla volta con fscanf (oppure fgets e sscanf appoggiando su una stringa, che da' meno problemi coi terminatori di linea), lo chiudi con fclose. Ad esempio, per leggere una riga:

4.0 8.625 -3.12, 5.1e2 -1.3e-1 1e2

sulla riga "i" di 6 array: double a[N],b[N],c[N],d[N],e[N],f[N]

devi scrivere qualcosa tipo:

fscanf(f,"%lf %lf %lf,%lf %lf %lf\n", a+i,b+i,c+i,d+i,e+i,f+i);

dove f e' il file handle. "a+i" e' un sinonimo compatto di "&(a[i])".

Per la verita' non mi e' chiaro il punto in cui dici che tra i numeri del secondo gruppo non c'e' alcun separatore (neanche spazio?), perche' in quel caso devi usare una sintassi piu' elaborata. Ma trovi tutto sull'help di fscanf (che probabilmente ti rimanda a scanf o printf).

Ciao,

--
RoV - IW3IPD
http://digilander.libero.it/rvise/
Reply to
RoV

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.