2012/07/02 09:17, 2515.0, 2515.8, 2515.0, 2515.8, 10.00, 2586.00
2012/07/02 09:18, 2515.4, 2515.4, 2515.0, 2515.0, 4.00, 2590.00
2012/07/02 09:19, 2514.0, 2514.0, 2514.0, 2514.0, 4.00, 2593.00
2012/07/02 09:20, 2515.8, 2515.8, 2515.8, 2515.8, 1.00, 2594.00
2012/07/02 09:21, 2515.8, 2515.8, 2515.8, 2515.8, 0.00, 2594.00
2012/07/02 09:22, 2515.8, 2515.8, 2515.8, 2515.8, 0.00, 2594.00
CodePudding user response:
Read the variable, then assigned to the structureCodePudding user response:
O code ah, kissCodePudding user response:
Char * STR="2012/07/02 09:16, 2518.8, 2518.8, 2511.2, 2514.2, 8.00, 2577.00";
Typedef struct __myData
{
Char date [16].
Char time [12].
Double data [6].
} myData.
MyData md;
If (==8 sscanf (STR, "% [^ 'and'], % [^ 'and'], lf, % % lf, lf, % % lf, lf, % % lf", md., date, md., time, & amp; Md. Data [0], & amp; Md. Data [1], & amp; Md. Data [2], & amp; Md. Data [3], & amp; Md. Data [4], & amp; Md. Data [5]))
{
//parsing success
}
The else
{
//parse error
}
CodePudding user response:
Read from file...
# include & lt; Stdio. H>
# include & lt; Fstream>
using namespace std;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Typedef struct __myData
{
Char date [16].
Char time [12].
Double data [6].
} myData.
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Bool readRec (const char * STR, myData & amp; Md, int count)
{
If (count==sscanf (STR, "% [^ 'and'], % [^ 'and'], lf, % % lf, lf, % % lf, lf, % % lf",
Md. Date, md., time, & amp; Md. Data [0], & amp; Md. Data [1],
& Md. Data [2], & amp; Md. Data [3], & amp; Md. Data [4], & amp; Md. Data [5]))
{
//parsing success
return true;
}
The else
{
//parse error
return false;
}
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TForm1: : Button1Click (TObject * Sender)
{
Char * dbFileName="z: \ \ test. TXT";
Ifstream in (dbFileName);
String s;
MyData md;
While (getline (in s))
{
If (readRec (s.c _str (), md, 8))
{
//successfully parsed line
}
}
in.close();
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --