考虑一个class Book带有stl容器的class Page.每个Page都有一个截图,就像page10.jpg原始vector<char>形式一样.
Book打开A ,其中包含zip,rar或包含这些屏幕截图的目录的路径,并使用提取原始数据的相应方法,如ifstream inFile.read(buffer, size);,或unzReadCurrentFile(zipFile, buffer, size).然后它调用Page(const char* stream, int filesize)构造函数.
现在,很明显原始数据被复制了两次.一次提取到Book的本地buffer,第二次在Pagector中Page::vector<char>.有没有办法在摆脱中间人缓冲区的同时保持封装?
我已经找到了每页的最大网页数量:
可自定义 - 在web.config文件中, <configuration><SharePoint><WebPartLimits MaxZoneParts="XX" />
50(默认) - http://technet.microsoft.com/en-us/library/cc262787.aspx
100(建议最大值) - http://technet.microsoft.com/en-us/library/cc287743.aspx
但是,我一直无法找到:
每个Web部件区域的最大Web部件数
每页的最大Web部件区域数
感谢那些帮助我解决上一个问题的人(链接仅供参考).
我可以将文件fileTypeTest.cpp,libmagic.a以及magic在一个目录下,我可以编译g++ -lmagic fileTypeTest.cpp fileTypeTest.稍后,我将测试它是否在使用MinGW编译的Windows中运行.
我打算在一个小的GUI应用程序中使用libmagic,我想静态编译它以便分发.我的问题是libmagic似乎需要外部文件magic.(我实际上正在使用我自己的缩短和编译版本,magic_short.mgc,但我离题了.)
一个hacky解决方案是将文件编码到应用程序中,根据需要创建(和删除)外部文件.我怎么能避免这个?
为清晰起见添加:
magic是一个描述不同文件类型属性的文本文件.当要求识别文件时,libmagic搜索magic.有一个编译版本,magic.mgc工作得更快.我的应用程序只需要确定一些文件类型,然后再决定如何处理它们,所以我将使用自己的magic_short文件来创建magic_short.mgc.
美好的一天 !
我需要在excel中执行日志数据项的导出版本. 遗憾的是,这个解决方案无法使用,因为我来自俄罗斯,解决方案只支持拉丁字母.所以我最需要学习从单个项目列表的版本历史中提取数据.
请帮忙.怎么做的?
我正在使用一些运行SQL查询的旧代码作为参考.
在某些时候,它会变成如下:
sqlDataAdapter.Fill(dataSet);
DataRow dataRow = dataSet.Tables[0].Rows[0];
Object obj = dataRow[fieldName];
Run Code Online (Sandbox Code Playgroud)
旧代码确实:
string output;
if (!string.IsNullOrEmpty(obj.ToString())) { output = obj.ToString(); }
else { output = "Not Available"; }
Run Code Online (Sandbox Code Playgroud)
我改为:
output = obj as string ?? "Not Available"
Run Code Online (Sandbox Code Playgroud)
但有时,它破了.正如我所怀疑的那样,当条目是一个时,它正在发生int.int在那些案件中铸造解决了这个问题.
然后,当没有obj[fieldName] int类型的条目时,出现了另一个问题.当我走过调试器时,我惊讶地发现那obj不是null.在VS中,鼠标移除显示它有一个价值{}.
到底是{}什么?我如何对它进行布尔测试?
(在旧代码中,它会在这种情况下.ToString()返回""并按预期工作.)
使用http://www.cppreference.com/wiki/stl/deque/insert作为参考,我在某些位置将值插入到双端队列中.
例如,如果deque A是:
a, b, d, e, g
Run Code Online (Sandbox Code Playgroud)
使用指向d的迭代器,我可以:
A.insert(iter, c); // insert val c before loc iter
//deque is now a, b, c, d, e, g
Run Code Online (Sandbox Code Playgroud)
并且iter仍然指向d.但是,当iter指向g时,最后一个元素:
A.insert(iter, f);
//deque is now a, b, c, d, e, f, g
Run Code Online (Sandbox Code Playgroud)
但它现在指向f !!
我目前的解决方法是:
iter = A.insert(loc, val); // point iterator to element that was inserted before loc
iter++; // point iter back to loc
Run Code Online (Sandbox Code Playgroud)
我没有再测试过这个或者任何东西,花了这么多时间跟踪一个错误,只是为了发现插入()在所有地方的stl中的不一致行为很烦人.
与其他任何位置相比,为什么insert()在最后表现不同?还是我做错了什么?
private void QuestionAnswer_Load(object sender, EventArgs e)
{
txtQuestion.Enabled = false;
txtQuestion.BackColor = Color.White;
grpMultipleChoice.Enabled = false;
grpSingleChoice.Enabled = false;
btnCheckAnswer.Enabled = false;
btnNext.Enabled = false;
btnQuit.Enabled = false;
//force student to enter registration details
if (txtStudentName.Text == "" && txtStudentNumber.Text == "" && txtModuleNumber.Text == "")
{
btnStart.Enabled = false;
MessageBox.Show("You must enter your registration details at the upper right corner");
}
//declare a list
lstNumbers = new ArrayList();
//create a random number generator
Random rndNumber = new Random();
//generate …Run Code Online (Sandbox Code Playgroud) 在一个文件中,例如:
self.phrase
self.phrases
self.phrase.lower()
self.phrase_lowered
self.phrases[self.phrase]
Run Code Online (Sandbox Code Playgroud)
我想更换所有self.phrase有self._phrase,除了self.phrases可以得到:
self._phrase
self.phrases
self._phrase.lower()
self._phrase_lowered
self.phrases[self._phrase]
Run Code Online (Sandbox Code Playgroud)
在我试过的正则表达式中,第一个(我认为可行的正则表达式)是:
:%s/self\.phrase[^s]/self\._phrase\1/gc
Run Code Online (Sandbox Code Playgroud)
但它没有用.