免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: sandy_23678
打印 上一主题 下一主题

文件的读写问题----读 [复制链接]

论坛徽章:
0
31 [报告]
发表于 2003-06-16 17:02 |只看该作者

文件的读写问题----读

原帖由 "zhanglw" 发表:
当数据库的一条记录的长度大于255时,这样每次读255个字符为一行会有问题吗?
如果一条记录超过255,就会变成2行,这样就读错了吧?

对呀,我的一行有900多个字符,该怎么办?

论坛徽章:
0
32 [报告]
发表于 2003-06-16 17:13 |只看该作者

文件的读写问题----读

我的里面没有不可见字符,空格倒是很多

论坛徽章:
0
33 [报告]
发表于 2003-06-16 17:20 |只看该作者

文件的读写问题----读

那你在Linux下做一个试试,应该方法就这样!

论坛徽章:
0
34 [报告]
发表于 2003-06-16 17:21 |只看该作者

文件的读写问题----读

那你在Linux下做一个试试,应该方法就这样!

论坛徽章:
0
35 [报告]
发表于 2003-06-16 17:25 |只看该作者

文件的读写问题----读

我的文本只能读不能写,是从远程服务器下载下来的,所以不能改,
    不过我还有一个地方很疑惑,为什么在while之外就不能printf出buf2呢,既然我已经把文件内容存储到缓冲区buf2,在哪也是可以printf出的呀

论坛徽章:
0
36 [报告]
发表于 2003-06-16 17:27 |只看该作者

文件的读写问题----读

那是不是你最后有一个空行!

论坛徽章:
0
37 [报告]
发表于 2003-06-16 17:31 |只看该作者

文件的读写问题----读

对,以为我最后的内容长度是给了10,而实际长度只有5,
    空了5个格子后才回车换行的,也就是0x0d,0x0a

论坛徽章:
0
38 [报告]
发表于 2003-06-16 18:37 |只看该作者

文件的读写问题----读

while(!feof(fp)){

......

}

论坛徽章:
0
39 [报告]
发表于 2003-06-17 10:12 |只看该作者

文件的读写问题----读

我昨天发的帖子被吃了?我写了代码呢

下面是伪码:
#include <stdio.h>;
#include <string.h>;

int rd()
{
File *fp;

char buf[4];

  while(!feof(fp))
  {
    memset(buf, 0, sizeof(buf));
    if((read(buf, 4, 1, fp)) <= 0)
        break;
    buf[4] = '\0';
    printf*"buf = [%s]\n", buf);
   
    for(;
   {
      if(fgetc(fp) == '\n')
      {
         printf("read end of this line\n";
         break;
       }
   }
  }
   return 0;
}

大致是这样,我已经试过了,当一行过长变成2行仍然是对的。(我是用MAXLEN = 88试的)

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
40 [报告]
发表于 2003-06-17 10:49 |只看该作者

文件的读写问题----读

回楼主:
在 ms sql server 7.0 中导入格式文本到数据库中的方法。( ms sql 2000 ) 我没有环境,不过想来应该是差不多的。

本方法仅适用于“格式文本”,所谓格式文本是指,在不同的行中,相同的字段值相对于行首的偏移应该是恒定的,或者每个字段之间用固定的分隔符格开的文本文件。

假设:
你的计算机已经安装了下面将要使用的所有工具、驱动。

具体操作:
1,点击“开始”->;“程序”->;“Microsoft SQL Server 7.0”->; “Import and Export Data”,出现一个对话框“DTS Wizard”,
2,点击“下一步”。
3,选择 Source 为“Text File”。并且指定你要导入的文件。点击“下一步”。
4,最上面有一个选项,花开两路,各表一支,现在先说选择“Delimited”的情况,选择 File type 为“ANSI”,Skip 是指每行行首需要跳过的无效字符,比如记录号等等。Row 是你的行分割符,这个你应该比我清楚。
5,点击下一步,你将会看到已经有一个预览效果,如果不满意,可以上一步重来。注意这里还有一个分割符的设置。
6,如果没有问题的话,点击“下一步”,出现选择目标服务器的对话框。
选择 Destination 为“Microsoft ODBC Driver for SQL Server”,Server 当然就是你的 SQL Server 名称啦。登录方式随便,只要能登录上 SQL 就行了。Database 就是数据库名称,如果登录成功的话,就可以选择了,选择你要的目的数据库名。点击“下一步”。
7,选择目标表名称,默认是文本文件的名称。再点两次“下一步”。
8,确认所有信息。无误则点击“完成”,开始导入数据。
9,如果无误,会提示成功,否则当提示失败后,按“上一步”重导。
10,如果实在搞不定,欢迎咨询 QQ:116544783。     

如果在第四步选择 Fixed field  的话,点击下一步到第五步的时候,就不用选择分割符了,而是要手工选择每一列的位置。     

另:你要编的程序已经有人替你编好了,这个程序就是大名鼎鼎的 BCP
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP