文件读写--格式转化
#include <fstream> #include <iostream> using namespace std; string txtToSql(string infile, string outfile) { cout << infile; ifstream in(infile); ofstream out(outfile); string lineIn, lineOut, sqlresult; //0:数字 1:字符串 if (in) // 有该文件 { int flag = 0, FL[100], length = 0; while (getline(in, lineIn)) // line中不包括每行的换行符 { cout << "line read" << endl; if (flag == 0) { for (int j = 0; j < lineIn.length(); j++) { FL[j] = lineIn[j] - '0'; length++; } lineOut = ""; flag++; continue; } flag++; lineOut = swtichToSql(lineIn, FL, length); if (flag > 2) { lineOut = "," + lineOut; } sqlresult = sqlresult + lineOut; cout << lineIn << endl; cout << lineOut << endl; out << lineOut << endl; // 输入到2.txt中 } } else // 没有该文件 { cout << "no such file" << endl; } cout << sqlresult << endl; return sqlresult; } //对每一行的文本进行处理:字符串加引号,各单元之间加逗号,整行用括号包起来 string swtichToSql(string str, int a[], int len) { string res = "("; const char *p = str.c_str(); for (int i = 0; i < len; i++) { char achar[100] = {'\0'}; char *q = achar; if (a[i] == 1) { *q = '"'; q++; } while (*p != '\0' && *p != '\t') { *q = *p; q++; p++; } if (a[i] == 1) { *q++ = '"'; } if (i < len - 1) { *q = ','; q++; } *q = '\0'; string temp = achar; res = res.append(temp); while (*p == '\t') { p++; } } res = res.append(")"); return res; } int main() { string infile = "/Users/fangwendong/work/test.txt", outfile = "/Users/fangwendong/work/result.sql", sqlresult = ""; //txt ===> sql sqlresult = txtToSql(infile, outfile); return 0; }
测试文本test.txt
0010011 109 2704608 4bf12945 83 83 FAILED 2017-08-08 109 2718426 5e9598ee 83 83 FAILED 2017-08-08 109 2726917 8a8ab27f 83 83 FAILED 2017-08-08 109 2040471 47a332c7 83 83 FAILED 2017-08-15 109 2263489 a36309f5 83 83 FAILED 2017-08-15 109 2409650 e210bff6 83 83 FAILED 2017-08-11 109 2409711 34cbff54 83 83 FAILED 2017-08-11 109 2636838 f57a56e6 83 83 FAILED 2017-08-11 109 2725817 aff10c26 83 83 FAILED 2017-08-15 109 2729543 dc4bece7 83 83 FAILED 2017-08-15 109 2753012 fb1f0ef0 83 83 FAILED 2017-08-15 109 2353175 e161bf8e 83 83 FAILED 2017-08-20 109 2363029 4d41ebc8 83 83 FAILED 2017-08-20 109 2363047 82712ba3 83 83 FAILED 2017-08-20 109 2386423 09ef5056 83 83 FAILED 2017-08-20 109 2388536 c2238139 83 83 FAILED 2017-08-20 109 2405661 1d01dcb2 83 83 FAILED 2017-08-20 109 2406788 6dc6838d 83 83 FAILED 2017-08-20 109 2409285 05c1c6b1 83 83 FAILED 2017-08-20 109 2409356 9800a7df 83 83 FAILED 2017-08-20 109 2412893 16c7b6b7 83 83 FAILED 2017-08-20 109 2412970 05bf815e 83 83 FAILED 2017-08-20 109 2421705 66150707 83 83 FAILED 2017-08-20 109 2457426 1fe8b55e 83 83 FAILED 2017-08-20 109 2482453 0f19b58d 83 83 FAILED 2017-08-20
实验结果result.sql
(109,2704608,"4bf12945",83,83,"FAILED","2017-08-08") ,(109,2718426,"5e9598ee",83,83,"FAILED","2017-08-08") ,(109,2726917,"8a8ab27f",83,83,"FAILED","2017-08-08") ,(109,2040471,"47a332c7",83,83,"FAILED","2017-08-15") ,(109,2263489,"a36309f5",83,83,"FAILED","2017-08-15") ,(109,2409650,"e210bff6",83,83,"FAILED","2017-08-11") ,(109,2409711,"34cbff54",83,83,"FAILED","2017-08-11") ,(109,2636838,"f57a56e6",83,83,"FAILED","2017-08-11") ,(109,2725817,"aff10c26",83,83,"FAILED","2017-08-15") ,(109,2729543,"dc4bece7",83,83,"FAILED","2017-08-15") ,(109,2753012,"fb1f0ef0",83,83,"FAILED","2017-08-15") ,(109,2353175,"e161bf8e",83,83,"FAILED","2017-08-20") ,(109,2363029,"4d41ebc8",83,83,"FAILED","2017-08-20") ,(109,2363047,"82712ba3",83,83,"FAILED","2017-08-20") ,(109,2386423,"09ef5056",83,83,"FAILED","2017-08-20") ,(109,2388536,"c2238139",83,83,"FAILED","2017-08-20") ,(109,2405661,"1d01dcb2",83,83,"FAILED","2017-08-20") ,(109,2406788,"6dc6838d",83,83,"FAILED","2017-08-20") ,(109,2409285,"05c1c6b1",83,83,"FAILED","2017-08-20") ,(109,2409356,"9800a7df",83,83,"FAILED","2017-08-20") ,(109,2412893,"16c7b6b7",83,83,"FAILED","2017-08-20") ,(109,2412970,"05bf815e",83,83,"FAILED","2017-08-20") ,(109,2421705,"66150707",83,83,"FAILED","2017-08-20") ,(109,2457426,"1fe8b55e",83,83,"FAILED","2017-08-20") ,(109,2482453,"0f19b58d",83,83,"FAILED","2017-08-20")