社区
网络及通讯开发
帖子详情
网页存在于本地硬盘上,这么用程序的方法实现修该它的title内容?
ghiewa
2003-06-08 03:52:55
如题
...全文
92
25
打赏
收藏
网页存在于本地硬盘上,这么用程序的方法实现修该它的title内容?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ghiewa
2003-06-11
打赏
举报
回复
好结账了!!
woainihaha
2003-06-10
打赏
举报
回复
不行呀,非对称在Title中一般比较少(几乎是不会出现的),如果要处理的话就得分析语法,太复杂了.你先用用,有什么问题再说吧.
woainihaha
2003-06-10
打赏
举报
回复
以上代码有些问题,在Title中有非对称标记时出错,我再改改.
woainihaha
2003-06-10
打赏
举报
回复
TStringList *htmfile = new TStringList;
AnsiString KeyWordBegin = "<TiTLE>";
AnsiString KeyWordEnd = "</TITLE>";
htmfile->LoadFromFile("1.htm");
AnsiString text = htmfile->Text;
delete htmfile;
int beginnum = 1;
int beginpos = 0;
int endnum = 1;
int endpos = 0;
for (int i=1; i<text.Length(); i++)
{
char tempchar = text[i];
if (beginnum == KeyWordBegin.Length())
{
beginpos = i + 1;
beginnum = 1;
}
int temp = tempchar - KeyWordBegin[beginnum];
if ((temp==0)||(temp==-32)||(temp==32)) beginnum++;
else beginnum=1;
if (endnum == KeyWordEnd.Length())
{
endpos = i-KeyWordEnd.Length()+1;
endnum = 1;
}
temp = tempchar - KeyWordEnd[endnum];
if ((temp==0)||(temp==-32)||(temp==32)) endnum++;
else endnum=1;
}
if ((endpos == 0) || (beginpos == 0))
{
ShowMessage("你所查找的文件没有你所要的关键字。");
return;
}
if (endpos < beginpos)
{
ShowMessage("你所查找的文件格式错误或已损坏。");
return;
}
if (endpos == beginpos)
{
ShowMessage("你所查找的文件关键字为空。");
return;
}
AnsiString theTitle = "";
for (int i=beginpos; i<endpos; i++)
theTitle = theTitle + text[i];
AnsiString lasttitle = "";
bool copyit = true;
bool tagBegin = false;
for (int i=1; i<=theTitle.Length(); i++)
{
char tempchar = theTitle[i];
if (tempchar == '<')
{
copyit = false;
}
if ((copyit)&&(!tagBegin)) lasttitle = lasttitle + tempchar;
if (tempchar == '>')
{
copyit = true;
tagBegin = ! tagBegin;
}
}
ghiewa
2003-06-10
打赏
举报
回复
不行不行,小弟太菜了 等待 Borland C++Builder版的
ghiewa
2003-06-10
打赏
举报
回复
我先试试,然后结账
叶子哟
2003-06-10
打赏
举报
回复
void CMyHtmlView::OnDesignMode()
{
// TODO: Add your command handler code here
HRESULT hr;
IHTMLDocument2* piDoc = 0;
IWebBrowser2* piWeb = 0;
IDispatch* piDisp = 0;
IUnknown* piUnk = m_wndBrowser.GetControlUnknown();
hr = piUnk->QueryInterface(IID_IWebBrowser2, (void**)&piWeb);
if(FAILED(hr))
{
AfxMessageBox("QueryInterface for IWebBrowser2");
return;
}
hr = piWeb->get_Document(&piDisp);
if(SUCCEEDED(hr))
{
hr = piDisp->QueryInterface(IID_IHTMLDocument2, (void**)&piDoc);
if(SUCCEEDED(hr))
{
if(m_MyClientSite.m_bDocDesignMode)
piDoc->put_designMode(L"Inherit");
else
piDoc->put_designMode(L"On");
m_MyClientSite.m_bDocDesignMode = !m_MyClientSite.m_bDocDesignMode;
piDoc->Release();
}
else
AfxMessageBox("QueryInterface doc");
piDisp->Release();
}
else
AfxMessageBox("get_Document");
}
void CMyHtmlView::OnSaveToFile()
{
// TODO: Add your command handler code here
CFileDialog dlg(FALSE, NULL, NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
NULL, NULL);
if(dlg.DoModal()==IDCANCEL)
return;
_bstr_t path=dlg.GetPathName();
HRESULT hr;
IWebBrowser2* piWeb = 0;
IDispatch* piDisp = 0;
IPersistFile* piPF = 0;
IUnknown* piUnk = m_wndBrowser.GetControlUnknown();
hr = piUnk->QueryInterface(IID_IWebBrowser2, (void**)&piWeb);
if(FAILED(hr))
{
AfxMessageBox("QueryInterface for IWebBrowser2");
return;
}
hr = piWeb->get_Document(&piDisp);
if(SUCCEEDED(hr))
{
hr = piDisp->QueryInterface(IID_IPersistFile, (void**)&piPF);
if(SUCCEEDED(hr))
{
piPF->Save(path, TRUE);
piPF->Release();
}
piDisp->Release();
}
}
void CMyHtmlView::OnModifyBody()
{
// TODO: Add your command handler code here
HRESULT hr;
IHTMLDocument2* piDoc = 0;
IWebBrowser2* piWeb = 0;
IDispatch* piDisp = 0;
IHTMLElement* piElem = 0;
IHTMLBodyElement* piBody = 0;
IUnknown* piUnk = m_wndBrowser.GetControlUnknown();
hr = piUnk->QueryInterface(IID_IWebBrowser2, (void**)&piWeb);
if(FAILED(hr))
{
AfxMessageBox("QueryInterface for IWebBrowser2");
return;
}
hr = piWeb->get_Document(&piDisp);
if(SUCCEEDED(hr))
{
hr = piDisp->QueryInterface(IID_IHTMLDocument2, (void**)&piDoc);
if(SUCCEEDED(hr))
{
hr = piDoc->get_body(&piElem);
if(SUCCEEDED(hr))
{
hr = piElem->QueryInterface(IID_IHTMLBodyElement, (void**)&piBody);
if(SUCCEEDED(hr))
{
VARIANT v;
piBody->get_bgColor(&v);
_bstr_t bstr=v;
// AfxMessageBox((char*)bstr);
v.vt=VT_BSTR;
v.bstrVal = ::SysAllocString(OLESTR("#00FF00"));
piBody->put_bgColor(v);
::SysFreeString(v.bstrVal);
piBody->Release();
}
else
AfxMessageBox("QueryInterface body");
piElem->Release();
}
else
AfxMessageBox("get_body");
piDoc->Release();
}
else
AfxMessageBox("QueryInterface doc");
piDisp->Release();
}
else
AfxMessageBox("get_Document");
}
其中m_MyClientSite.m_bDocDesignMode是当前状态。
叶子哟
2003-06-10
打赏
举报
回复
你在显示时不用置设计模式呀!如果你要保存的话,才需要!
if(document->put_title((BSTR)L"sdhsjsj")!=S_OK )//加一个L就可了
实际你只要注意数据类型,vc的代码也可以用的
ghiewa
2003-06-10
打赏
举报
回复
matq2008(叶子.net) :帮我看看吧
brw->Navigate(WideString("C:\\Documents and Settings\\LiuJH\\桌面\\CSDN_近三年高级程序员试题知识点比较.htm"));
IHTMLDocument2 *document;
BSTR title,source,content;
IDispatch *WebDocument=static_cast<IDispatch*>(brw->Document);
document=static_cast<IHTMLDocument2*>(WebDocument);
BSTR pp;
document->put_designMode(BSTR("On"));
if(document->put_title((BSTR)("sdhsjsj"))!=S_OK )
ShowMessage("error");
//document->put_title(BSTR("sohagfhlashg"));
//document->get_title(&pp);
if(document) document->Release();
//Caption=AnsiString(pp);
叶子哟
2003-06-09
打赏
举报
回复
还有,如果你想保存修改后的网页,得首先修改designmode
叶子哟
2003-06-09
打赏
举报
回复
呵呵!
参照如下cookie的写法:
if(document->put_cookie((BSTR)L"mycati=1111;")!=S_OK )
主要是参数类型不对
pp616
2003-06-09
打赏
举报
回复
html本就是文本。你自己修改标记中间的字符不就好了吗。
ghiewa
2003-06-09
打赏
举报
回复
自己Up一下
ghiewa
2003-06-09
打赏
举报
回复
to netsys2(来电):
这个方法我已经实现了,我想有没有API来作这个事情呢,就象上面的那个
document->put_title(title);
netsys2
2003-06-09
打赏
举报
回复
自己编写文件读写函数啦,
打开源文件和目标文件,
读一段,写一段,
读到<title>和</title>之间的换成你自己的
ghiewa
2003-06-09
打赏
举报
回复
TCppWebBrowser* brw =new TCppWebBrowser();
brw->Visible=false;
brw->Navigate(WideString(path));
IHTMLDocument2 *document;
BSTR title,source,content;
IDispatch *WebDocument=static_cast<IDispatch*>(brw->Document);
document=static_cast<IHTMLDocument2*>(WebDocument);
BSTR pp;
document->put_title(title);
if(document) document->Release();
delete brw;
问什么里面的 document->put_title(title);
没有起作用啊?
ghiewa
2003-06-09
打赏
举报
回复
to woainihaha(笨笨):
你想要多少分
叶子哟
2003-06-09
打赏
举报
回复
搜一下vc的html版,有较详细的如何保存修改后的网页内容
woainihaha
2003-06-09
打赏
举报
回复
呵呵,我给你写,你给多少分?:)
ghiewa
2003-06-09
打赏
举报
回复
to alenwelkin(苍穹) :如果 <title></title>里面有javascrip脚本呢?
加载更多回复(5)
CMD命令速查手册 ,pdf版
一些常用CMD命令,文件不大,方便存储与使用
3步教你轻松
实现
网页
调用本机C#
程序
,你还在等什么?
通过以上介绍,相信你现在应该清楚了如何在
网页
上调用本机C#
程序
的基本思路和实践
方法
。记住,一个好的设计不仅要考虑功能性,还要注重安全性和用户体验。希望今天的分享对你有所启发,也期待你在未来的项目中大胆尝试并不断创新!怎么样?这篇文章是不是既专业又有趣呢?期待未来能看到更多精彩的创作诞生在你们手中。祝你好运,加油吧,未来的软件大师们!
如何在微信小
程序
中使用本地存储
点击"保存数据"按钮可以将数据保
存在
本地存储中,然后点击"读取数据"按钮可以从本地存储中获取数据,并在页面中显示出来。通过上述步骤,你可以了解如何在微信小
程序
中使用本地存储来保存和读取数据。1.首先,在微信小
程序
项目中创建一个新的页面,比如"storage"。2.在storage.json文件中,配置页面的标题和窗口样式。6.在app.json文件中,将storage页面添加到pages数组中。3.在storage.wxml文件中,编写页面的布局。5.在storage.js文件中,编写页面的逻辑代码。
2025年最新
网页
集成EXE桌面应用
程序
方案
Type需要指定浏览器类型时,可先通过TestWrl.txt文档中的接口Wrl_BrowserInfo获取到当前浏览器的类型Type、浏览器主窗口句柄BrowserWnd、浏览器绘制窗口句柄DrawWnd及当前
网页
标题
Title
,通过判断
Title
是否为当前
网页
需要内嵌决定是否继续启动,如果继续启动,把获取到的参数Type、BrowserWnd、DrawWnd设置到当前请求参数里,可以加快启动速度。Url:加载小
程序
所在的
网页
实际地址,在
网页
中指定小
程序
的显示位置和大小,不建议使用了,建议改用Web参数。
python下载网站文件到本地,python下载网站所有
网页
爬虫就是自动获取
网页
内容
的
程序
,例如搜索引擎,Google,Baidu 等,每天都运行着庞大的爬虫系统,从全世界的网站中爬虫数据,供用户检索时使用。爬虫流程其实把网络爬虫抽象开来看,它无外乎包含如下几个步骤模拟请求
网页
。模拟浏览器,打开目标网站。获取数据。打开网站之后,就可以自动化的获取我们所需要的网站数据。保存数据。拿到数据之后,需要持久化到本地文件或者数据库等存储设备中。那么我们该如何使用 Python 来编写自己的爬虫
程序
呢,在这里我要重点介绍一个 Python 库:Requests。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章