淘口令微信网站怎么做旅游类作业网站
web/
2025/9/26 7:15:33/
文章来源:
淘口令微信网站怎么做,旅游类作业网站,电商设计师岗位职责,网站的配置标题今天需要解决一个问题#xff0c;将影像瓦片#xff08;一堆jpg文件#xff09;分别进行读取#xff0c;并将所有数据以文件流的方式存入一个.db的文件中#xff0c; 同时将每个jpg数据在db文件中的位置保存下来#xff0c;作为index存在.idx文件中。 其中部分代码如下将影像瓦片一堆jpg文件分别进行读取并将所有数据以文件流的方式存入一个.db的文件中 同时将每个jpg数据在db文件中的位置保存下来作为index存在.idx文件中。 其中部分代码如下没有copy fopen和fclose的部分 1 char buf[256]; for (int i 0; i levels; i)2 for (int x 0; x imageLevels[i][0]; x)//纵向3 for (int y 0; y imageLevels[i][1]; y)//横向4 {5 jpgpath info.tilespath CPLSPrintf(image\\pyramid\\level%d\\x%03d_y%03d.jpg,i,x,y);6 if ((fp fopen(jpgpath,rb)) ! NULL)//jpg file pointer7 {8 while((hr fread(buf,sizeof(char),256,fp)) ! 0)9 {
10 fwrite(buf,sizeof(char),256,fdb);
11 }
12 fseek(fp,0,SEEK_END);
13
14 //seek到文件结尾 将该位置tell出来 即为文件大小
15 fwrite(jpgIndex,sizeof(jpgIndex),1,fidx);
16 //fprintf(fidx,%I64d,jpgIndex);
17 jpgIndex jpgIndex ftell(fp);
18 fclose(fp);
19
20 // struct _stat finfo;
21 // _stat(jpgpath,finfo);
22 // int s finfo.st_size;
23 // int ls9;
24 }
25 else
26 continue;
27 } 这段代码有没有错误 或许你一眼就看出来了可是当局者迷当时我调试很久才发现具体错误后面再说。 先总结一个技巧如何获取文件大小 这里介绍几种办法 1、通过fseek函数 fseek(fp,0,SEEK_END);
size_t size ftell(fp); 2、使用_stat()函数需要包含头文件sys\stat.h 1 struct _stat finfo;
2 _stat(jpgpath,finfo);
3 int s finfo.st_size; 3、利用filelength函数 1 FILE* file fopen(filepath, rb);
2 if (file)
3 {
4 int size filelength(fileno(file));
5 fclose(file);
6 } 4、利用CFile类的函数 CFile cfile;
if (cfile.Open(filepath, CFile::modeRead))
{ int size cfile.GetLength();
} 5、利用句柄和CreateFile函数 HANDLE handle CreateFile(filepath, FILE_READ_EA, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
if (handle ! INVALID_HANDLE_VALUE)
{ int size GetFileSize(handle, NULL); CloseHandle(handle);
} 个人比较偏爱前两种方法。 好了 该说说我的错误了。看看的第一段代码的第十行第三个参数。懂了吧其实是很简单的错误但是体现出我对于函数变量的了解和控制能力欠缺火候。 fwrite(buf,sizeof(char),hr,fdb); 问题虽然很小但是编程的时候很多问题和这种类似我是用二进制文件查看写出来的文件很久之后才发现位置有偏移。 开始我怀疑是windows写入时候做了优化将文件偏移到每个block的开头位置可是我的结果文件只有一个.db文件不应该会被优化。 后来才发现自己的疏忽mark~ 转载于:https://www.cnblogs.com/bigbigtree/p/3487044.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82065.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!