CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

急!在线等...

楼主waynahu(FIRE_BIRD-->涅磐)2004-08-01 21:31:42 在 C/C++ / C语言 提问

media   player9   大家都知道,它可以生成*.wpl   的playlist(播放清单).  
          比方一个例子,用记事本打开后可看到:  
  <?wpl   version="1.0"?>  
  <smil>  
          <head>  
                  <meta   name="Generator"   content="Microsoft   Windows   Media   Player   --   9.0.0.3075"/>  
                  <title>播放列表2</title>  
          </head>  
          <body>  
                  <seq>  
                          <media   src="..\光辉岁月.mp3"/>  
                          <media   src="..\FOLDER2\beyond_真的爱你.mp3"/>  
                          <media   src="..\FOLDER1\情网.mp3"/>  
                          <media   src="..\FOLDER3\十年.wma"/>  
                          <media   src="..\FOLDER3\FOLDER31\FOLDER32\把悲伤留给自己.mp3"/>  
                  </seq>  
          </body>  
  </smil>  
  我想请高手用c语言写一个程序,把这个.wpl里的所有歌曲名(例如"光辉岁月.mp3")找出来,按顺序排列在一个table里.谢谢 问题点数:50、回复次数:12Top

1 楼songyangaaron(千里独行)回复于 2004-08-01 21:53:36 得分 10

说个思路:  
  1.读入每一行  
  2.判断该行是否包含字符串"<media"    
  3.是的话查找最后一个"\"和"\"/>"的位置  
  4.取出中间的字符串Top

2 楼kaphoon(齐柏林飞艇)回复于 2004-08-01 22:44:24 得分 5

好像是蛮简单的  
  就是解析字符串~  
  把要的提取出来Top

3 楼herryhuang(Herry)回复于 2004-08-01 23:32:09 得分 5

这个属于xml文件的解析,有免费的xml处理库可以使用。    
   
  xerces是apache的一个项目,可以处理你这个问题。到www.apache.org可以找到最新的版本。    
   
  如果你对免费的东西不放心,可以使用微软的XMLSDK,到微软的网站上去下好了,微软的这个SDK速度会慢一些。Top

4 楼sunjx119(睿锐)回复于 2004-08-01 23:57:23 得分 0

是XML,有专门的API可用,比自己写的效率不知道要高多少倍!Top

5 楼waynahu(FIRE_BIRD-->涅磐)回复于 2004-08-03 14:24:42 得分 0

谢谢,我实在不会写CODE,还望各位大吓帮帮。。。Top

6 楼tangfulin(雨寒月)回复于 2004-08-03 16:26:13 得分 5

这个其实不用那么麻烦啦,就自己写啊。很简单的一个c代码吗!Top

7 楼qingyuan18(zealot_tang)回复于 2004-08-03 16:59:01 得分 10

#include<stdio.h>  
  #include<string.h>  
  #include<ctype.h>  
   
  int   maxline;  
  int   count;  
  char   temp[20][80]={0};  
  char   key[20]="<media   src="  
  char   table[20][60]={0};  
   
  void   get()  
  {  
      char   *p;  
    int   i=0;  
    FILE   *fp;  
      if((fp=fopen("你的那个.html文件的url","r")==NULL)  
      printf("open   file   error!");  
    else  
      {  
        while(fgets(temp[i],fp)!=NULL)  
        {  
          p=strchr(temp[i],'\n');  
          if(p)   *p=0;  
          i++;  
          }  
        maxline=i;  
        }  
    }  
   
  void   trim()  
  {  
    int   i,j;  
    int   k;  
    int   n=0;  
    for(k=0;k<maxline;k++)  
    {  
      for(i=0;temp[k][i]!=0;i++)  
      {  
          for(j=0;temp[k][i]==key[j];j++,i++);  
          if(j==strlen(key))  
            {  
              while((table[k][n++]=temp[k][i++])!=0);  
            }  
        }  
      }  
      count=n;  
  }  
   
   
  void   print()  
  {  
    int   i;  
    for(i=0;i<n;i++)  
    {  
      printf("歌曲名:\t%s\n",table[i]);  
      }  
  }  
   
  主要的思路就是这些,楼主以后还是尝试着先做做,很多事并不是你想象的那么复杂。Top

8 楼waynahu(FIRE_BIRD-->涅磐)回复于 2004-08-04 09:07:27 得分 0

herryhuang(Herry   )  
  xerces是apache的一个项目,可以处理你这个问题  
  这是什么,能说的明白写吗?  
  xml是什么?Top

9 楼waynahu(FIRE_BIRD-->涅磐)回复于 2004-08-04 09:11:37 得分 0

qingyuan18(zealot_tang)能简要说明你的思路吗,谢谢!Top

10 楼herryhuang(Herry)回复于 2004-08-04 17:27:57 得分 5

waynahu(默默想你)   :  
   
  这个文件的格式是XML,可扩展标记语言,现在很流行,许多公司都有处理这种格式的文件(或字符串)的程序库,但是好的库大都是要钱的。目前微软有xml的处理库msxml,可以在微软的网站上免费下载,但是这个库不完全符合w3c关于xml的标准,而且处理速度较慢。apache是gnu下的一个源代码开发组织,其最著名的项目就是apache   http   server,现在他们有一个xml项目,xerces是apache组织xml项目的一个产品,主要用来处理xml的文档结构,另有一个xalan,可以对xml进行格式化处理。这两个(xerces和xalan)都提供c/c++和java的库,以及所有源代码。  
   
  关于xml网上的讨论很多,随便搜搜救可以找到一大筐。Top

11 楼rorot(rorot)回复于 2004-08-04 20:11:46 得分 5

我觉得使用正则表达式简单  
  regex   e(   "<media   src=\\\"([^\\\"]*\\\\)*([^\\\"]*)\\\">"   );  
  Top

12 楼rorot(rorot)回复于 2004-08-04 20:13:10 得分 5

什么玩意嘛,CSDN过滤了数字键6上面那个字符,在表达式里都显示不出来了...  
  Top

相关问题

  • 急急急,,,,,,,,,,,,,,,在线
  • 在线等,急急!!!
  • 急急!!!!在线等
  • 急救!!!!!!!!!!!!!!!(在线)
  • 急…………在线等。
  • 在线急救!!!
  • 在线急等
  • 急!在线(MSFlexGrid)
  • 急!!!!!!!!!!!!!!!!!!!在线!!!!!
  • 在线急问

关键词

得分解答快速导航

  • 帖主:waynahu
  • songyangaaron
  • kaphoon
  • herryhuang
  • tangfulin
  • qingyuan18
  • herryhuang
  • rorot
  • rorot

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo