zoukankan      html  css  js  c++  java
  • 文件读写--格式转化

    #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] = {''};
            char *q = achar;
            if (a[i] == 1) {
                *q = '"';
                q++;
            }
            while (*p != '' && *p != '	') {
                *q = *p;
                q++;
                p++;
            }
            if (a[i] == 1) {
                *q++ = '"';
            }
            if (i < len - 1) {
                *q = ',';
                q++;
            }
            *q = '';
            string temp = achar;
            res = res.append(temp);
            while (*p == '	') {
                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")
  • 相关阅读:
    自绘标题栏
    显示驱动相关 -- DrvEscape和ExtEscape
    Delphi 直接打印代码(不需要装打印机驱动)
    在TCanvas上画背景透明的矩形
    写作套路中的立功,立言,立德
    python入门(Python和Pycharm安装)
    delphi CxGrid用法总结(63问)
    如何安装inf类型驱动程序 inno
    PHP-SQL Server
    Exchange Tech Issues 参考网站
  • 原文地址:https://www.cnblogs.com/fwdqxl/p/7441027.html
Copyright © 2011-2022 走看看