【发布时间】:2013-07-29 09:13:44
【问题描述】:
我正在尝试获取 tar 文件中存在的 html 文件的内容(我正在使用 Visual c++ 来完成我的任务)。我的方法是使用流将 tar 存储在缓冲区中,然后将 html 的内容存储在另一个缓冲区中。然后使用缓冲区转到位置缓冲区 [0-100] 的 tar 文件中存在的每个文件的文件名(在此位置我们有文件名)并将文件名存储在“内容”中(在我的情况下)并搜索它是否有 extension.html 文件?
如果文件名中有 .html,则从位置缓冲区存储其内容[PreviousFileSizes +512](按 PreviousFileSizes,我的意思是在此 html 文件之前有一些文件,因此我们必须在缓冲区中添加它们的大小索引到正确的位置 - 我的意思是我不假设 tar 文件中的第一个文件是 html 文件 - 在我的代码中,我用“skip”表示这个 PreviousFileSizes - 这意味着要跳过这么大的大小去我们的 html 文件)。
我实现它的代码是-
int skip=0;
char contents [100];
//char test[1000];
do
{
int SizeOfFile = CreateOctalToInteger(&buffer[skip+124],11);
size_t distance= ((SizeOfFile%512) ? SizeOfFile + 512 - (SizeOfFile%512) : SizeOfFile );
size_t skip= distance +512;
memcpy(contents,&buffer[skip],100);
}
while(strstr(contents,".html") != NULL);
我走对了吗??如果我的逻辑有问题,请纠正我??
【问题讨论】:
-
您是否尝试过使用
tar xf mytarfile myfile.html?这不会容易很多吗? -
这是你在谈论的任何命令吗?如果是,我不必处理命令提示符。只需 c++ 代码即可获取 tar 文件中存在的 html 文件的内容。如果它任何新的和简单的事情请正确解释我“tar xf mytarfile myfile.html”是什么??
-
我的意思是命令提示符工具——如果你选择了这个选项,你上周就已经完成了。只是忍受它是一个命令提示符工具的事实。或者找一个
tar能在GUI中运行的工具,肯定有这样的东西。 -
对不起垫子..我不知道如何做你所说的。请给我一些链接到undersatnd well。但是在前面的代码中,我得到了下一个文件的大小(我的意思是我只是能够滑动第一个文件而不是第二个文件。我认为 do while loopµ 中存在一些问题。你能预测一下是什么问题吗? (我的意思是这个跳过不会重复循环,直到我找不到 .html 文件。它只执行一次,就这样在调试时我可以在 tar 文件中看到第二个文件的文件内容,但之后会出现)跨度>
-
不,我不知道任何链接 - 我确定它们存在,但我确信您可以像我一样使用 google。
标签: c++ html-parsing tar