关于《数据格式修改》的简单应用程序(C语言)

至亲爱的博友:

  大家好,好久不见了。由于博主还是一名大学在校生,不可避免的需要和指导教师共同完成一些项目,因此前一段时间暂时停止了博客的更新。既然回归博客,那我们就闲话少说直接进入正题。

  在平日的项目中,大家有没有遇到过这样的经历:由于项目要求,我们需要处理一批超大数据(通常20GB以上)。但是客户提供的数据格式既不便于直接处理,也不适合输入常用的数据处理软件。这时大家一般是怎样做的呢?类似问题前一段时间就将博主折磨的痛不欲生。

  如果大家和博主的遭遇类似,请认真阅读本博代码并好好利用。

  说到数据处理,当前最常规的方法就是导入数据库进行处理。但是问题的关键是客户提供的数据格式并不适合常用数据库的输入。

例如:

用户提供数据格式:

101010100=北京
101010200=海淀
101010300=朝阳
101010400=顺义
101010500=怀柔
101010600=通州
101010700=昌平
101010800=延庆
101010900=丰台
101011000=石景山
101011100=大兴
101011200=房山
101011300=密云
101011400=门头沟
101011500=平谷
101011600=八达岭
101011700=佛爷顶
101011800=汤河口
101011900=密云上甸子
101012000=斋堂
101012100=霞云岭

对待这样的数据格式我们该怎么办呢?

博主曾经多次使用Xml文件格式进行数据库创建,更新和读出。下面介绍一段代码(C语言)将上面数据格式导成类似Xml文件的数据格式。

输出文件格式.txt,内容形式:

<city><cityid>101010100</cityid><cityname>北京</cityname></city><city><cityid>101010200</cityid><cityname>海淀</cityname></city>
 
<city><cityid>101010300</cityid><cityname>朝阳</cityname></city><city><cityid>101010400</cityid><cityname>顺义</cityname></city>
 
<city><cityid>101010500</cityid><cityname>怀柔</cityname></city><city><cityid>101010600</cityid><cityname>通州</cityname></city>
 
<city><cityid>101010700</cityid><cityname>昌平</cityname></city><city><cityid>101010800</cityid><cityname>延庆</cityname></city>
 
<city><cityid>101010900</cityid><cityname>丰台</cityname></city><city><cityid>101011000</cityid><cityname>石景山</cityname></city>
 
<city><cityid>101011100</cityid><cityname>大兴</cityname></city><city><cityid>101011200</cityid><cityname>房山</cityname></city>
 
<city><cityid>101011300</cityid><cityname>密云</cityname></city><city><cityid>101011400</cityid><cityname>门头沟</cityname></city>
 
<city><cityid>101011500</cityid><cityname>平谷</cityname></city><city><cityid>101011600</cityid><cityname>八达岭</cityname></city>
 
<city><cityid>101011700</cityid><cityname>佛爷顶</cityname></city><city><cityid>101011800</cityid><cityname>汤河口</cityname></city>
 
<city><cityid>101011900</cityid><cityname>密云上甸子</cityname></city><city><cityid>101012000</cityid><cityname>斋堂</cityname></city>
 
<city><cityid>101012100</cityid><cityname>霞云岭</cityname></city>

  

  代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<stdio.h>
int main()
{
    FILE *fin,*fout;
    fin = fopen("input.txt","r");
    fout = fopen("output.txt","w");
 
    char x;
    while (fscanf(fin,"%c",&x) == 1)
    {
        if (x == '\n')
        {
            fprintf(fout,"</cityname></city><city><cityid>");
 
        }
        else if(x == '=')
        {
            fprintf(fout,"</cityid><cityname>");           
        }
        else
        {
            fprintf(fout,"%c",x);
        }
    }
 
    fclose(fin);
    fclose(fout);
    printf("end\n");
    return 0;
}

  得到output文件后仅需少量处理就可以得到优质的Xml文件了,接下来运用数据库所有的问题都将迎刃而解。

关于《数据格式修改》的简单应用程序(C语言)的更多相关文章

  1. android 获取当前版本号/修改自定义的应用程序的版本号

    1.获取当前版本号 PackageManager pm = getPackageManager(); PackageInfo pi = pm.getPackageInfo(getPackageName ...

  2. ACEXML解析XML文件——简单示例程序

    掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...

  3. 用python开发简单ftp程序

    根据alex老师视频开发的简单ftp程序,只能实现简单的get功能 ftp客户端程序: #!/usr/bin/env python #_*_ coding:utf-8 _*_ import socke ...

  4. 关于SIGSLOT的一个简单的程序

    废话少说直接看代码即可,这只是一个简单的程序,可以帮我们简单地明白SIGSLOT是怎么回事.至于深入研究自己去百度吧. #include "sigslot.h" using nam ...

  5. 简单购物车程序(Python)

    #简单购物车程序:money_all=0tag=Trueshop_car=[]shop_info={'apple':10,'tesla':100000,'mac':3000,'lenovo':3000 ...

  6. 基于C语言libvirt API简单小程序

    libvirt API简单小程序 1.程序代码如下 #include<stdio.h> #include<libvirt/libvirt.h> int getDomainInf ...

  7. 图解简单C程序的运行时结构

    程序在内存中的存储分为三个区域,分别是动态数据区.静态数据区和代码区.函数存储在代码区,全局变量以及静态变量存储在静态数据区,而在程序执行的时候才会在动态数据区产生数据.程序执行的本质就是代码区的指令 ...

  8. MFC制作简单通讯录程序

    学习c++和MFC一段时间了,苦于没有项目实战,所以自己写了一个简单的简单通讯录程序,以前用c#写简单很多,例程是这本书上的实例,我的第一个winform程序也是从这本书上学的,总结c#写的话更简单, ...

  9. Kubernetes学习笔记之安装minikube并运行个简单应用程序

    前言:本笔记仅记录学习记录,可能存在错误!!!使用的环境是Ubuntu Desktop 20.04,也有用Windows 10 操作的,根据的文档是minikube的文档教程,链接:https://m ...

随机推荐

  1. Python学习笔记:概要

    1.print不同的互动解释语句输出和输出 在以下示例,我们分配字符串值到可变myString.先用print 要显示一个变量的内容, 其次是变量名,以显示. >>> myStrin ...

  2. Linux下php+mysql+nginx编译搭建(一)

    之前一直都是一键搭建的webserver,可是一键搭建的环境相对来说都是比較老的.假设要用比較新的环境,特别是正式server,就必须自己手动编译搭建了(下面搭建基于linux centos6.5 3 ...

  3. Linux页快速缓存与回写机制分析

    參考 <Linux内核设计与实现> ******************************************* 页快速缓存是linux内核实现的一种主要磁盘缓存,它主要用来降低 ...

  4. td中的值自动换行

    设置td中的值自动换行在<td ></td> 中加上这样一句代码,可以简省设置,使长字符串换行.而不用设置width,height. style="word-wrap ...

  5. tornado settings想到的

    今天有足够多的时间来看看Tornado中RequestHandler和Application这两个类的关系. 昨天想要调用settings中的内容,找了好半天不知道怎么在handler中使用setti ...

  6. - C#编程大幅提高OUTLOOK的邮件搜索能力!

    原文:[原创] - C#编程大幅提高OUTLOOK的邮件搜索能力! 使用OUTLOOK, 你有没有遇到过上图的问题? 多达18419封邮件! 太多了, 每次想找一个邮件都非常耗时, 想办法解决这个问题 ...

  7. UC编程:通过fwrite()和write()比较标准库函数和系统调用的速度

    fwrte是C标准库中提供的函数,是对write函数的扩展与封装,write则是Unix系统提供的函数.按照常理来讲,系统调用肯定比使用库快的多,但是事实正好相反 Why?原因就在于缓冲的问题,fwi ...

  8. 编写高效的jQuery代码

    http://www.css88.com/jqapi-1.9/ 编写高效的jQuery代码 最近写了很多的js,虽然效果都实现了,但是总感觉自己写的js在性能上还能有很大的提升.本文我计划总结一些网上 ...

  9. .Net中批量添加数据的几种实现方法比较

    在.Net中经常会遇到批量添加数据,如将Excel中的数据导入数据库,直接在DataGridView控件中添加数据再保存到数据库等等. 方法一:一条一条循环添加 通常我们的第一反应是采用for或for ...

  10. 【转】Android官方下拉刷新控件 SwipeRefreshLayout

    今天在Google+上看到了SwipeRefreshLayout这个名词,遂搜索了下,发现竟然是刚刚google更新sdk新增加的一个widget,于是赶紧抢先体验学习下. SwipeRefreshL ...