虾米的问题

zzsxqzzsxq3000 2003-05-29 06:59:03
关于处理文件,比方说要处理一个*.txt数据文件,怎么把他变成程序中的变量,使程序执行时不在操作磁盘,完全在内存中进行。
...全文
114 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyi999999999 2003-05-31
  • 打赏
  • 举报
回复
我再想了一下你的要求,我觉的你是不是要把你的程序代码和你的数据放在同一个可执行文件
中,当操作系统运行程序时,把你的数据也装入内存,如果是这样的话,我认为如果你的程序只是
用来处理数据,并没有其它特殊的用途,你完全没有必要这样做;这样做缺点太多,抛开编程复杂不说,你这样做并不等于你的程序能提高工作效率,相反,你的程序的效率,灵活性都会降低,而且你的程序存在很严重的安全问题.
flmttm 2003-05-31
  • 打赏
  • 举报
回复
up
cloudtarget 2003-05-31
  • 打赏
  • 举报
回复
#include <fstream.h>
yiyi999999999 2003-05-30
  • 打赏
  • 举报
回复
不明白你的要求,特别是把数据文件理解为程序的变量和操作文件时不要有读文件的目录出现
,我想知道你的程序是用来干什么的?
如果按你说的来看,你的程序是用来处理一个*.txt数据文件,那么无论如何你的程序都要去读文件的.
zzsxqzzsxq3000 2003-05-30
  • 打赏
  • 举报
回复
问题是如果那样的话,运行程序时还是操作了磁盘啊,我的意思是把数据文件理解为程序的变量啊,总不能把整个数据文件全写在程序里吧,晕,那太恐怖了。所有的操作全要在内存中进行,直到最后得到输出的数据文件写到磁盘上。就是操作文件时不要有读文件的目录出现!
不知道我是不是说清楚了,望大虾门指教!
skywarship 2003-05-30
  • 打赏
  • 举报
回复
简单的说,就是自己设置一个缓冲区,把文件中的数据读入到该缓冲区中,再进行处理
sxbobo2002 2003-05-30
  • 打赏
  • 举报
回复
不大清楚你的意思,按我理解的答吧

如果txt文件是由固定格式的一条条记录构成。
你可以在程序设计和它相同的结构,然后每读取一条记录分配一结构空间,存到该空间,直到文件结束.结构之间联系可以用链表来做。
如果文件中信息格式不固定,用一个串来读取,如果开始分配的空间不够用,可以用reclloc再分配.

yiyi999999999 2003-05-30
  • 打赏
  • 举报
回复
char *buf;
long filelen;

fp=fopen("test.txt","rb");
fseek(fp,0L,SEEK_END);
filelen = ftell(fp);

if((buf=(char *)malloc(filelen))==NULL)
{
//无法分配内存
}

rewind(fp);

fread(buf,filelen,1,fp);

fclose(fp);
zzsxqzzsxq3000 2003-05-30
  • 打赏
  • 举报
回复
有没有哪位大虾救助一下小弟啊,这个问题这么难以回答吗?
zzsxqzzsxq3000 2003-05-29
  • 打赏
  • 举报
回复
不好意思,没说清楚,我是要用标准c来处理的。那要怎么做?把数据文件变成程序的一部分。直接运行,不从磁盘上读数据了。
Lymtics 2003-05-29
  • 打赏
  • 举报
回复
使用CArchive和CFile的结合.
xiami-tools 是虾米工具包更新[2015/1/30] 初始化Xiami类时可以加入captcha_handler指定验证码处理函数,该函数需要返回验证码,交互和显示都用户实现的函数内自行处理[2014/8/12] 1.替换掉android接口中[2014/8/2] 增加虾米的淘宝帐号登录. 调用方法 Xiami(username, password, taobao=True). 以及用 cookies 登录的办法 (解决接口不能用的终极方案) Xiami(username, password, cookies=COOKIES字典)提示想要下载自己的收藏歌曲列表登录后比未登录获取的速度快 (接口不同)把虾米的一些接口做成了库方便其他程序调用Xiami.get_stared_song(self, uid=None, full=False) 返回某用户所有收藏曲目列表, uid不写默认为登录用户.Xiami.get_stared_collection(self, uid=None, full=False) 返回某用户所有收藏精选集列表, uid不写默认为登录用户.Xiami.get_stared_album(self, uid=None, full=False) 返回某用户所有收藏专集列表, uid不写默认为登录用户.Xiami.set_320k() 设置当前用户默认下载曲目为高音质Xiami.download_song(self, song_id) 返回编号为 song_id 的曲目的相关信息和下载地址, 详细返回请看范例Xiami.download_album(self, album_id) 返回编号为 album_id 的专辑的相关信息和专辑内曲目下载地址, 详细返回请看范例Xiami.download_playlist(self, col_id) 同上Xiami.star_song(self, songid) 收藏曲目编号为 songid 的歌曲Xiami.get_session(self) 获得当前 Xiami 实例的requests.Session对象Xiami.get_random_songs(self, uid=None, full=False) 不知道干什么用的Xiami.get_artist_topsongs(self, artist_id, full=False) 获得艺术家最热门的一些曲目Xiami.get_artist_albums(self, artist_id, full=False) 获得艺术家的专辑列表get_ 类的函数可以指定 full 参数来确定是否返回详细信息 download_ 类的函数返回一个简略但是足够信息的曲目列表注意 慎用 full 参数, 对于vip会员来说, full 参数可能查询高清音质的地址速度过快而导致需要输入验证码 (当然你可以直接指定你自己喜欢的处理函数 self.captcha_handler = Your handler of captcha 解决这个问题) 标签:xiami

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧