Per Leo72 e Lesto
/* breve ot (ma non troppo fuori dal seminato):
il seguente sorgente, in C, legge un valore numerico da un file .csv, compreso tra 1 e 4500.
Non riesco a compilare la parte che mi fa il print sulla seriale usb del minipc nel quale gira Arch Linux...
Tra l'altro poi Arduino mi deve leggere il valore per intero e non come sequenza dei valori dei caratteri...
Ciao, Salvatore
fine ot */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <cstdio.h> // libreria per il print su serial port
//=============
int mtomm (char *month);
//............
char dir_in[100] = "E:\\Steve\\Personale\\Data\\";
char nome_file[200];
char riga[200];
char tempo_attuale[20];
int i, col;
float valore;
char car;
char data[9], ora[5];
int gg, mm, aa;
int hh, min, sec;
const int TEST = 1;
int main ()
{
FILE *fdata;
// 1 open file data
sprintf(nome_file,"%s20121116.csv", dir_in);
//printf("\nTEST \nfile personale \n%s \n", nome_file);
if (TEST == 1)
{
printf("\n****\n\ntest mode start\n\n****\n\n");
printf("The current filename is: %s\n\n", nome_file);
};
fdata=fopen(nome_file,"r");
if (fdata==NULL) { printf("\n ***** Nome file dati non valido \n %s \n", nome_file); exit(0); };
//printf("\n TEST LETTURA FILE PERSONALE \n");
//sprintf(nome_file,"%s_personale_letto.txt", dir_out);
//fc=fopen(nome_file,"w");
//if (fc==NULL) { printf("\n ***** Nome file letto personale non valido \n %s \n", nome_file); exit(0); };
time_t rawtime;
if (TEST == 1)
{
printf("The current rawtime is: %d\n\n", rawtime);
fscanf(fdata, "%s", riga);
printf("line one of file %s \n %s\n", nome_file, riga);
};
i=0;
while( !feof(fdata) ) {
fscanf(fdata, "%s", riga);
i++;
}
if (TEST == 1)
{
printf("riga : %d\n%s\n\n", i, riga);
printf("colonna : %d\n%f\n\n", col, valore);
};
if (TEST == 1)
{
printf("prima di sscanf\n");
printf("riga : %d\ncontenuto riga :%s\n\n", i, riga);
// printf("colonna : %d\n%f\n\n", col, valore);
};
for (col=1; col<11; col++)
{
if (TEST == 1)
{
printf("\ncol : %d riga: %s\n\n", col, riga);
// printf("valore : %f\t", valore);
};
sscanf(riga, "%[^','],%s,%[^','],%s", nome_file, riga);
};
valore = atof(nome_file);
if (TEST == 1)
{
printf("dopo sscanf\nriga : %d\ncontenuto riga : %s\ncontenuto nome_file : %s\n\n", i, riga, nome_file);
printf("valore : %f\t", valore);
};
fclose(fdata);
//serial.print (valore) /dev/tty.usbmodem1d11 //stampa invia il valore &d su seriale
if (TEST == 1)
{
printf("\n****\n\ntest mode ended\n\n****\n\n");
};
//system("PAUSE");
return 0;
}