美文网首页
文本解析

文本解析

作者: Zz鱼丸 | 来源:发表于2018-02-26 17:24 被阅读0次

常使用文本来保存配置文件,因此需要按一定规则来解析
分享两种方法

  • 自己写的函数
by: ZeFan Yu
vector<string> split(string str, string pattern)
{
    string::size_type pos;
    vector<string> result;
    str += pattern;//扩展字符串以方便操作
    int size = str.size();

    for (int i = 0; i<size; i++)
    {
        pos = str.find(pattern, i);
        if (pos<size)
        {
            string s = str.substr(i, pos - i);
            result.push_back(s);
            i = pos + pattern.size() - 1;
        }
    }
    return result;
}
Sample:
ifstream Txt(".\\zh_list.txt");
string TxtLine;
while (getline(Txt, TxtLine))// line中不包括每行的换行符
{
    vector<string> result = split(TxtLine, " ");
}
  • fscanf()函数
    fscanf能正确操作的txt文件编码方式为ANSI,以下编码方式均不能使函数正常执行:UTF-8,Unicode,Unicode big endian
    fscanf()函数(有点像正则表达式)
    int fscanf(FILE *stream, char *format,[argument...]);
    int fscanf(文件指针,格式字符串,输入列表);

for example:
  FILE *fp;
  char a[10];
  int b;
  double c;
  fscanf(fp,"%s%d%lf",a,&b,&c)
  返回值:整型,数值等于[argument...]的个数

用法:
首先我有一个data。txt的文件里面的数据格式如下:

2,50,41,w,20.585828

4,52,51,r,52.012547

.........................

许多条类似的记录,都是以“,”来分隔的

我实现的功能就是把上面文件中的数据的五个字段赋值给相应的五个变量,并且输出这些变量的值。实现的程序如下:

#include<stdio.h>
#include<stdlib.h>


int main()
{
  int fd;
  long dev;
  long offset;
  long length;
  char ch;
  double ts=0.000000;
  if((fd=fopen("/home/haixian/ceshi/data.txt","r"))<0)
   {
     printf("open the file is error!\n");
     exit(0);
   }
  lseek(fd,0,SEEK_SET);
  
  
  while(5==fscanf(fd,"%ld,%ld,%ld,%c,%lf\n",&dev,&offset,&length,&ch,&ts))
  {在这里就是第二个参数指定分隔参数的格式,在这里使用的是,来分隔。这样就很容易的获取了记录的各个字段的值并不需要自己编写函数来进行解析什么的。
     printf("%ld,%ld,%ld,%c,%lf\n",dev,offset,length,ch,ts);
  }
close(fd);
return 0;
}

相关文章

  • 和转义字符

    所有 XML 文档中的文本均会被解析器解析。只有 CDATA 区段(CDATA section)中的文本会被解析器...

  • 【Python入门】31.常用内置模块之 XML & 抓

    摘要:XML的介绍;如何用SAX解析XML文本;XML文本生成;通过解析Yahoo的XML格式文本获取其天气预报信...

  • pg解析json

    json文本: postgresql 解析json

  • 文本解析

    常使用文本来保存配置文件,因此需要按一定规则来解析分享两种方法 自己写的函数 fscanf()函数fscanf能正...

  • Node.js字幕解析器,支持typescript,支持LRC、

    字幕解析器 简介 可以解析字幕文本的解析器 特性 你可以获得具体的秒和毫秒 它支持两种类型的文本:LRC、SRT ...

  • jQuery操作标签内容

    (1)、打点调用html()可以解析文本内容中出现的标签 (2)、打点调用text()不可以解析文本内容中出现的标签

  • 简书文章爬虫解析

    核心解析 解析过滤简书自定义标签,文章再用其他富文本逆向解析即可 用vue quill editor解析 完整代码

  • v-html中使用v-viewer

    v-html解析后端返回的富文本,需求:解析后富文本中图片可点击放大查看 代码如下: 注: 这也算是 v-view...

  • macOS SwiftUI 实战项目SRT转文本之01 实现文本

    实战需求 macOS SwiftUI 实战项目SRT转文本之01 实现文本打开和文本解析 本文价值与收获 看完本文...

  • python总结-BeautifulSoup

    1、解析数据 bs对象 = BeautifulSoup(要解析的文本,“解析器”)note:在括号中,要输入两个参...

网友评论

      本文标题:文本解析

      本文链接:https://www.haomeiwen.com/subject/txwyxftx.html