菜问:CFile分段复制文件问题和FileWrite问题

ocean1004 2008-03-28 03:42:27

#include "afx.h"
#include <string>
#include <iostream>
using namespace std;
int main()
{
CFile myfile1,myfile2;
int mf1Length,mf2Length;
char *data=new char[1024];//memset
memset(data,'0',1024);

myfile1.Open("C:\\oc.rar",CFile::modeRead | CFile::typeBinary);
myfile2.Open("C:\\temp\\cfielg.rar",CFile::modeCreate | CFile::modeWrite);

mf1Length=myfile1.GetLength();
cout<<mf1Length<<endl;
for(int i=0;i<mf1Length/1024+1;i++)
{
cout<<i<<"\t";
myfile1.Read(data,1024);
myfile2.Write(&mf2Length,mf1Length);
}
}

如果按我上面的形式写,应该怎么改?

下面这段程序是已经能复制文件了的,但是我有点看不懂,所以问问


while (1) {
if (!ReadFile(hFileRead, buff, BUFF_SIZE, &filesize, NULL)) {
/* error */
break;
}

if (!WriteFile(hFileWrite, buff, filesize, &filesize, NULL))

ReadFile和WriteFile的第三个参数表示“要读入的字节数”,第四个参数表示“已经读入的字节数”。但是ReadFile和WriteFile的第三个参数应该一样的啊,为什么不一样了?
ReadFile和WriteFile的第四个参数为什么是地址?表示什么?
...全文
135 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tccqs 2008-03-29
  • 打赏
  • 举报
回复
up and mark,,
ocean1004 2008-03-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sangermax 的回复:]
C/C++ code
#include "afx.h"
#include <string>
#include <iostream>
using namespace std;
int main()
{
CFile myfile1,myfile2;
int mf1Length,mf2Length;
char *data=new char[1024];//memset
memset(data,'0',1024);

myfile1.Open("C:\\oc.rar",CFile::modeRead | CFile::typeBinary);
myfile2.Open("C:\\temp\\cfielg.rar",CFile::modeCreate | CFile::modeWrite);

mf1Lengt…
[/Quote]

这个代码只能复制64K的东西,如果要复制100MB的东西,要申请100MB的内存,很浪费,不知道有没有分成1MB一块来复制的方法。
就是想用read和write来实现。
mr.zhoux 2008-03-28
  • 打赏
  • 举报
回复

#include "afx.h"
#include <string>
#include <iostream>
using namespace std;
int main()
{
CFile myfile1,myfile2;
int mf1Length,mf2Length;
char *data=new char[1024];//memset
memset(data,'0',1024);

myfile1.Open("C:\\oc.rar",CFile::modeRead | CFile::typeBinary);
myfile2.Open("C:\\temp\\cfielg.rar",CFile::modeCreate | CFile::modeWrite);

mf1Length=myfile1.GetLength();
cout<<mf1Length<<endl;
char *pBuffer = new char[mf1Length];
memset(pBuffer,0,mf1Length);
myfile1.Read(pBuffer,mf1Length);
myfile2.Write(pBuffer,mf1Length);
}


大概写的,没调试.复制文件可以直接用API的 CopyFile
ocean1004 2008-03-28
  • 打赏
  • 举报
回复
等待。。。。。。。。。。。
代码转载自:https://pan.quark.cn/s/a4b39357ea24 LA 1010 逻辑分析仪被视作一种效能卓越的数字信号分析设备,其核心功能在于对数字通信协议,例如I²C,进行检测与解构。本资源将集中阐述LA 1010的操作流程以及如何借助该设备对I²C协议的波形展开分析。 确保逻辑分析仪被正确地连接至目标系统是极为关键的环节。在运用LA 1010的过程中,必须将分析仪的通道0与通道1分别对应连接至目标装置的SCL(时钟)与SDA(数据)线路。务必保证连接的稳固性且无任何干扰因素,以此确保数据采集的精确度。 随后,需要设定采样参数。采样频率对于能否成功捕捉到信号具有决定性的作用。针对I²C协议,通常选用的采样频率范围介于100kHz到400kHz之间,这一范围的选择取决于实际应用场景中I²C总线的运行速度。然而,LA 1010所能达到的最高采样速率可能高达500MHz,因此需要根据具体需求进行相应的调整。此外,还必须精心挑选适配目标设备工作电压的电压等级,例如3.3V、5V或1.8V。 在软件操作层面,需要选取恰当的通道与协议种类,即I²C。一旦启动采样,逻辑分析仪便开始记录相关数据。软件界面通常会实时展示波形图,为观察与分析提供便利。 关于I²C协议波形的解读,我们可以遵循以下步骤: 1. 总线处于空闲状态时:SCL与SDA均维持在高电平位置,这表明总线当前未进行数据传输。 2. 传输起始信号:当SCL处于高电平期间,SDA线从高电平转换至低电平,此动作标志着数据传输的开始。 3. 地址、数据及应答的识别:在每一个SCL高电平脉冲的持续时间内,SDA线上的电平状态代表了数据位。地址与数据的传输均为双向过程,而读写标识则由SDA线上的电平来...
内容概要:本文介绍了一种基于有限元分析(FEA)获取的磁通链接图来构建高精度永磁同步电机(PMSM)数学模型的方法,并在Simulink环境中实现仿真。该方法通过有限元软件提取电机在不同工况下的非线性磁通特性数据,建立精确的磁链-电流-转子位置映射关系,有效克服了传统线性模型在反映铁芯饱和、交叉耦合等非线性效应方面的局限性。所构建的模型能够更真实地模拟PMSM的实际电磁行为,适用于高性能控制算法(如矢量控制、直接转矩控制、模型预测控制等)的研发与验证,显著提升了控制系统在动态响应、效率优化和稳定性方面的仿真准确性。; 适合人群:具备电机控制理论基础、熟悉有限元分析与Simulink仿真的研究生、科研人员及从事电机设计与驱动系统开发的工程技术人员。; 使用场景及目标:①用于高精度永磁同步电机控制系统的设计、仿真与性能评估;②支持先进控制策略(如MPC、滑模控制、自适应控制)在非线性电机模型上的验证与优化;③为电机参数敏感性分析、能效优化、故障诊断与容错控制研究提供可靠的仿真平台; 阅读建议:建议读者结合ANSYS Maxwell、JMAG等有限元工具与Matlab/Simulink进行联合仿真,掌握从电磁场建模、数据提取、查表插值到控制系统集成的完整流程,并参考文中模型架构与数据处理方法,逐步复现、验证并拓展适用于特定电机结构的高保真仿真模型。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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