有一个文本文件里面的数据是从MSSQL2000导出来的 格式如下:
5,0,0,"zdonghai","问题","管理员:请问选择部门和选择职员这两项是什么意思?是否发表的信息将只送达至某个人?"6,5,5,"laomie","回复","如今选择部门与选择个人是为了方便浏览,不久将加入针对个人的讨论"21,0,0,"islandman","征集标语(空)",""22,18,12,"lxy","先做本地资源是毫无疑义的",""23,22,12,"lgz","先做本地资源真是毫无疑义?","目前电子商务受几方面因素制约,即受人流、信息流、物流、资金流的影响,海商网以本地资源为主,我认为最大程度上会受到人流因素的制约,而做为一个全开放形的商务信息网站,人流因素会进而影响到信息流,这客观上使得该网站如要做到信息的及时与丰富,就必须投入较大的信息收集成本。否则信息的不丰富性和不及时性会反过来进一步影响到人流因素,最终的结果大家就可想而知了!"我现在要用程序来读这个文本文件中的内容,然后进行分割出来  我想要的几个字段内容。
因为这个是一个贴子的,所以需要组织的格式如下:
        帖子ID:
帖子标题:
帖子发表时间:
帖子作者(用户表的[User_Name]):
    帖子内容: 回复标题:
回复时间:
回复作者:
回复内容:
 比如说第二条记录就是第一条记录的回复了。其中数据表的结构如下:
CREATE TABLE [dbo].[bbs] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[Parent_ID] [smallint] NOT NULL ,
[Root_ID] [smallint] NOT NULL ,
[User_Name] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[Topic] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Content] [text] COLLATE Chinese_PRC_CI_AS NULL ,
[Publish_Time] [datetime] NOT NULL ,
[Hits] [smallint] NOT NULL ,
[Renum] [smallint] NOT NULL ,
[Text_Len] [int] NOT NULL ,
[From_Url] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[Department] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Discuss] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[Update_Time] [datetime] NULL ,
[forum_type] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
以Parent_ID作为关联的一个字段信息。这个程序应该如何写呢?在线等。非常感谢了

解决方案 »

  1.   

    这个...可能把它们导回数据库,直接对数据库查询读取更方便
    MSSQL,ORACLE都支持以豆号分隔的文本文件导入。
      

  2.   

    我现在正在导入呢.不过我用MSSQL2005 操作的,导入有问题。总是报错啊
      

  3.   

    [ID] [int] IDENTITY (1, 1) NOT NULL , 
    [Parent_ID] [smallint] NOT NULL , 
    [Root_ID] [smallint] NOT NULL , 
    [User_Name] [char] (20) COLLATE Chinese_PRC_CI_AS NULL , 
    [Topic] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL , 
    [Content] [text] COLLATE Chinese_PRC_CI_AS NULL , 
    [Publish_Time] [datetime] NOT NULL , 
    [Hits] [smallint] NOT NULL , 
    [Renum] [smallint] NOT NULL , 
    [Text_Len] [int] NOT NULL , 可以看出,文本文件用,作为分隔符的6个字段是对应数据库表的前面6个字段的。
    但是数据库的第7-10个字段Publish_Time等是不能为空的,所以导入时就报错了。你可以自己写一段代码,给这4个字段加上缺省值(Text_Len“文本长度”是用Content计算得到的),再往数据库写就可以了
      

  4.   

    用string.split(",")先分隔成几部分,再将第一部分string[0].split(",")分隔成6 5 5,再将后面的去除"""就行了吧。