从文件中获取特定的字节块

时间:2013-01-19 18:43:47

标签: c++

对于作业,我必须通过用base64编码来通过xml发送文件。 我必须分多个部分发送文件。为此我想从该文件中获取一个字节块。 我希望我能用blockize和blocknumber参数做到这一点。

但我不总是得到字节,我猜我做错了什么或只是错过了一些愚蠢的东西。

我创建了以下代码:

// int blocknumber (the blocknumber thats requested)
// int blocksize (by default we want to use 1024)

//Content of the block
ifstream is;
is.open(fullPath.c_str(), ios::binary);

// get length of file:
is.seekg(0, ios::end);
int length = is.tellg();

char* buffer = new char [blocksize];
//test if file is bigger then size
if (length >= blocknumber * blocksize) {
    //skip to relevent part
    is.seekg(blocknumber * blocksize, ios::beg);
    is.read(buffer, blocksize);
}

这是我收到数据时得到的结果

blocknumber 0
GkXfo6NChoEBQveBAULygQRC84EIQoKIbWF0cm9za2FCh4ECQoWBAhhTgGcB

但是使用blocknumber 3我什么都没得到。

1 个答案:

答案 0 :(得分:0)

它解决了......确实非常愚蠢......

除了编码部分之外,问题根本不是代码。

块大小512 第5块 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA =

这将成为历史上最大的面孔标志。

感谢您的支持