Forum Italiano sui Prodotti NI

annulla
Visualizzazione dei risultati per 
Cerca invece 
Intendevi dire: 

CVI Scan su più target char

Risolto!
Vai alla soluzione

Buongiorno,

Ho un problema probabilmente banale ma non riesco ad uscirne.

Ho una char buf[100] contenente vari dati separati da ";".

es. campoA;campoB;campoC;campoD;campoE;campoF;

Vorrei utilizzare la funzione Scan per estrarre i 6 dati in un array di char dati[6][30].

Guardando gli esempi sul CVI l'unica opzione che ci assomiglia è "%s>%s[t59]" dove si estrae fino al carattere ";".

Questo funziona solamente per il primo campo

Scan (buf, "%s>%s[t59]%s>%s[t59]%s>%s[t59]%s>%s[t59]%s>%s[t59]%s>%s[t59]", dati[0], dati[1], dati[2], dati[3], dati[4], dati[5]);

Ho provato varie combinazioni sul format string;

"%s[t59]%s[t59]%s[t59]%s[t59]%s[t59]%s[t59]"

"%s;%s;%s;%s;%s;%s"

ma non funziona.

Qualcuno riesce ad aiutarmi ?

 

0 Kudos
Messaggio 1 di 3
3.052Visualizzazioni
Soluzione
Accettato da autore argomento Luca1975

Questo perchè non hai aggiunto il carattere 'x' per scartare il punto e virgola. Il corretto format string è "%s[xt59]%s[xt59]%s[xt59]%s[xt59]%s[xt59]%s[xt59]": messo questo, Scan elabora un campo, si ferma al punto e virgola, lo scarta e prosegue con il campo successivo. Senza la 'x' la funzione elabora il primo campo e si ferma al punto e virgola, poi continua a cercare di estrarre dati dalla stringa, ma siccome il puntatore è già su un punto e virgola non estrae nulla.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
Messaggio 2 di 3
3.017Visualizzazioni

Perfetto funziona 🙂 ... grazie 1000 per l'aiuto

0 Kudos
Messaggio 3 di 3
3.002Visualizzazioni