我正在尝试使用PyObjC的私有框架.到目前为止我有这个:
from AppKit import *
from Foundation import *
import objc
framework="/System/Library/PrivateFrameworks/DSObjCWrappers.framework"
objc.loadBundle("DSObjCWrapper", globals(), framework)
directory = DSoDirectory.alloc()
directory.initWithHost_user_password_("server", "diradmin", "password")
eDSStartsWith = 0x2002
node = directory.findNode_matchType_(u"/LDAPv3", eDSStartsWith)
Run Code Online (Sandbox Code Playgroud)
这很好.现在,我想在我的节点(类DSoNode)上调用一个方法,使用此objective-c签名.
最明显的方法是不知道如何获取字符串并将其传递给char*:
node.hasRecordsOfType_("dsRecTypeStandard:ComputerLists")
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/Users/clinton/<ipython console> in <module>()
ValueError: depythonifying 'char', got 'str' of 31
Run Code Online (Sandbox Code Playgroud)
看起来可以在python看到它时更改签名.我尝试了一些变化:
objc.registerMetaDataForSelector("DSoNode", "hasRecordsOfType_", dict( arguments={ 2+0: dict(type_modifier='n', type='^C') }))
Run Code Online (Sandbox Code Playgroud)
但是 - 坦率地说我不知道registerMetaDataForSelector函数是如何工作的,并且还没有找到文档 - 当我在节点上调用我的选择器时,我仍然会得到相同的错误.如何告诉PyObjC将字符串转换为char*?(或者有更好的方法,因为这些字符串是头文件中的C常量#defined.)
更新:我尝试使用gen_bridge_metadata(如本博文中所述),并在查阅手册页后,尝试如下:
sudo mkdir -p /System/Library/PrivateFrameworks/DSObjCWrappers.framework/Resources/BridgeSupport
sudo gen_bridge_metadata --framework ~/Downloads/DSTools-112.1/build/Deployment/DSObjCWrappers.framework/ …Run Code Online (Sandbox Code Playgroud) 在使用XMLHttpRequest进行AJAX调用时,似乎无法从JavaScript更改大多数请求标头.请注意,request.setRequestHeader必须request.open()在Gecko浏览器中调用后(请参阅http://ajaxpatterns.org/Talk:XMLHttpRequest_Call).当我设置Referer时,它没有设置(我查看了使用Firebug和Tamper Data发送的请求标头).当我设置User-Agent时,它完全搞砸了AJAX调用.但是,设置Accept和Content-Type确实有效.我们是否阻止在Firefox 3中设置Referer和User-Agent?
var request = new XMLHttpRequest();
var path="http://www.yahoo.com";
request.onreadystatechange=state_change;
request.open("GET", path, true);
request.setRequestHeader("Referer", "http://www.google.com");
//request.setRequestHeader("User-Agent", "Mozilla/5.0");
request.setRequestHeader("Accept","text/plain");
request.setRequestHeader("Content-Type","text/plain");
request.send(null);
function state_change()
{
if (request.readyState==4)
{// 4 = "loaded"
if (request.status==200)
{// 200 = OK
// ...our code here...
alert('ok');
}
else
{
alert("Problem retrieving XML data");
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将一些信息写入用户的文档文件夹(例如C:\ Documents and Settings\[userName]),但我似乎无法找到如何以编程方式获取路径.有没有办法做到这一点?C++,不使用.NET.
谢谢!
我从这次访问Windows注册表的尝试中获得了null:
using (RegistryKey registry = Registry.LocalMachine.OpenSubKey(keyPath))
Run Code Online (Sandbox Code Playgroud)
keyPath是 SOFTWARE\\TestKey
关键是在注册表中,为什么它不在Local Machine配置单元下找到它?
我可以使用什么标签将代码示例放在.NET ///XML注释中?
我正在使用JQuery UI(旋转标签),我想知道如何在其中一个导航标签上发生onclick事件时停止循环.
$(document).ready(function(){
$("#sws_featured > ul").tabs({fx:{opacity: "toggle"}})
.tabs("rotate", 5000,true);
});
Run Code Online (Sandbox Code Playgroud)
我尝试在下面(以及内部.ready)上面的代码添加此代码,但无济于事.我确认下面的这个函数正在接收onClick事件,但旋转没有停止.
$("#sws_featured > ul a").click(function(){
$("#sws_featured > ul").tabs("rotate", 0, false);
});
Run Code Online (Sandbox Code Playgroud)
一定不能正确访问对象......有什么想法吗?
从ASP.NET MVC项目中的Controller查找App_Data文件夹的绝对路径的正确方法是什么?我希望能够临时使用.xml文件,我不想硬编码路径.
这不起作用:
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
string path = VirtualPathUtility.ToAbsolute("~/App_Data/somedata.xml");
//.... do whatever
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
我认为在Web上下文之外VirtualPathUtility.ToAbsolute()不起作用.字符串路径返回"C:\ App_Data\somedata.xml"
我应该在哪里确定MVC应用程序中.xml文件的路径?global.asax并坚持使用应用程序级变量?
//clWebSnow = $FAFAFF; defined in Graphics.pas
Listbox1.Items.Add( ColorToString( clRed ) );
Listbox1.Items.Add( ColorToString( clWebSnow ) );
Run Code Online (Sandbox Code Playgroud)
如何将"WebSnow"作为字符串返回以将颜色显示为WebSnow的颜色常量?
所有我似乎得到的是'$ FAFAFF'作为字符串,其中webcolors存储为字符串,而StandardColors和ExtendedColors返回颜色常量值.
示例:clRed在列表框中显示为红色,并在标签标题中显示为红色.clWebSnow在列表框中显示为"$ FAFAFF",并在标签标题中显示为$ FAFAFF.
法案
我是Python的新手(我也没有任何编程培训),所以在我提问时请记住这一点.
我正在尝试搜索检索到的网页,并使用指定的模式查找所有链接.我已经在其他脚本中成功完成了这项工作,但我收到的错误是
Run Code Online (Sandbox Code Playgroud)raise error, v # invalid expressionsre_constants.error:多次重复
我不得不承认我不知道为什么,但同样,我是Python和正则表达式的新手.但是,即使我不使用模式并使用特定链接(只是为了测试匹配),我也不相信我会返回任何匹配(当我打印match.group(0)时,没有任何内容发送到窗口.链接我测试的是下面评论的.
有任何想法吗?通过示例学习通常更容易,但是您可以给予的任何建议都非常感谢!
獾
import urllib2
from BeautifulSoup import BeautifulSoup
import re
url = "http://forums.epicgames.com/archive/index.php?f-356-p-164.html"
page = urllib2.urlopen(url).read()
soup = BeautifulSoup(page)
pattern = r'<a href="http://forums.epicgames.com/archive/index.php?t-([0-9]+).html">(.?+)</a> <i>((.?+) replies)'
#pattern = r'href="http://forums.epicgames.com/archive/index.php?t-622233.html">Gears of War 2: Horde Gameplay</a> <i>(20 replies)'
for match in re.finditer(pattern, page, re.S):
print match(0)
Run Code Online (Sandbox Code Playgroud) 我写了一个tsql过程,它将一个字符串插入到一个文本文件中,这意味着它需要将所有变量转换为字符串.而不是使用case case语句,是否更容易做到这包括所有情况并强制任何类型的字符串类型?
提前致谢