我有一些我称之为的子程序myWrite($fileName, \@data). myWrite()打开文件并以某种方式写出数据.我想修改,myWrite以便我可以像上面那样调用它或者使用文件句柄作为第一个参数.(这种修改的主要原因是将文件的开头委托给调用脚本而不是模块.如果有一个更好的解决方案来告诉IO子程序在哪里写,我很高兴听到它. )
为了做到这一点,我必须测试第一个输入var是否是文件句柄.我通过阅读这个问题想出了如何做到这一点.
现在这是我的问题:我还想测试是否可以写入此文件句柄.我无法弄清楚如何做到这一点.
这就是我想要做的事情:
sub myWrite {
my ($writeTo, $data) = @_;
my $fh;
if (isFilehandle($writeTo)) { # i can do this
die "you're an immoral person\n"
unless (canWriteTo($writeTo)); # but how do I do this?
$fh = $writeTo;
} else {
open $fh, ">", $writeTo;
}
...
}
Run Code Online (Sandbox Code Playgroud)
我需要知道的是,如果我可以写入文件句柄,虽然看到一些通用解决方案可以告诉您是否使用">>"或"<"打开文件句柄,或者如果不是开放等
(请注意,这个问题是相关的,但似乎没有回答我的问题.)
Apple回复了我的一个错误报告,建议我尝试在下一个iOS的测试版中重现该问题.和之前的所有贝塔一样,这个贝塔都有警告
iOS [版本]测试版应仅安装在专门用于iOS [版本] beta测试的设备上.如果您没有专门用于iOS [版本] beta测试的设备,请不要安装此软件.
我没有专门用于beta测试的设备.我想解决这个错误,理想情况下我可以升级,尝试重现问题,然后降级设备,以便我可以继续正常开发.
凭借我有限的谷歌技能,我发现了一些描述使用之前的iOS测试版进行此操作的文章,但它们往往编写得很差,需要运行一些第三方应用程序("RecBoot").
在获得更多信息之前,我不打算完成这个过程.我想听到的是,如果有人在过去这样做过,或者更多地知道它是如何工作的,并且可以肯定地告诉我它是安全的还是危险的.
我正在尝试在Xcode中创建一个框架并且已经成功完成了,但事实证明,Xcode在复制标头构建阶段复制标头时的目录结构变得平坦.我已经尝试将文件添加为文件夹引用而不是组,但它甚至不会将头文件识别为头文件!
那么,在将头文件复制到我的.framework-bundle时,如何告诉Xcode保留目录结构?
我正在尝试使用Grails的内置机制在部署的WAR文件之外加载外部配置文件(*.groovy和*.properties).文档暗示这只是设置的情况下grails.config.locations用适当的classpath:或file:路径.
我已将Config.groovy配置为:
String externalConfigLocation = System.getProperty("SYSTEM_PROPERTY_KEY")
if (!grails.config.locations || !(grails.config.locations instanceof List)) {
grails.config.locations = []
}
if (classpathExternalConfigLocation) {
String pathToResource = "\"file:${basedir}" + File.separator + externalConfigLocation+"\""
print "Loading external configuration file: ${pathToResource}\n"
grails.config.locations << pathToResource
}
Run Code Online (Sandbox Code Playgroud)
但是这没有用,错误消息指示文件"不存在".但是,打印存储的绝对路径grails.config.locations表示它确实存在.我尝试了一些组合:
classpath:configurationFile.propertiesfile:c:\path_to_file\configurationFile.propertiesc:\path_to_file\configurationFile.properties但在所有这些情况下都无法找到该文件.
很奇怪 - 建议赞赏.或者有关如何调试的建议.
我正在努力动态创建一些grails域对象,然后添加一个在另一个grails域对象中声明的SortedSet.我创建了一个Project类,填充了它的值,并检查以确保它是有效的.它是有效的,所以我想将此项目添加到员工.
我的代码基本上是这样的
Employee employee = Employee.get(session.empid)
...
//populate some Project objects
...
//add projects to employee
employee.addToProjects(project)
Run Code Online (Sandbox Code Playgroud)
这可能会出错?如果我执行project.validate(),然后检查错误,那么唯一一个说项目没有与之关联的有效员工 - 但是当我执行employee.addToProjects时,这应该消失.Employee有很多Project对象,它的声明如下:
class Employee implements Comparable
{
static hasMany = [projects:Project]
static constraints =
{
}
static mapping = {
projects cascade:"all,delete-orphan", lazy:false
}
SortedSet<Project> projects = new TreeSet<Project>();
}
public class Project implements Comparable
{
static belongsTo = [employee:Employee]
static hasMany = [roles:Role]
static mapping = {
roles lazy:false, cascade:"all,delete-orphan"
}
@XmlElement
List<Role> roles = new ArrayList<Role>();
/*
* return sorted …Run Code Online (Sandbox Code Playgroud) python manage.py dumpdata modelName > file.json. meder在postgres上为用户创建了一个空数据库meder可以使用数据库settings.py试图,loaddata file.json但它抱怨超级用户不存在或不匹配...
回溯(最近一次调用最后一次):文件"manage.py",第11行,在execute_manager(settings)文件中"/srv/python-environments/saltycrane/lib/python2.5/site-packages/django/core/management/ init .py",第438行,在execute_manager utility.execute()文件"/srv/python-environments/saltycrane/lib/python2.5/site-packages/django/core/management/ init .py",第379行,在执行self.fetch_command(子命令).run_from_argv(self.argv)文件"/srv/python-environments/saltycrane/lib/python2.5/site-packages/django/core/management/base.py",第191行,在run_from_argv self.execute(*ARGS,**选项.字典)文件"/srv/python-environments/saltycrane/lib/python2.5/site-packages/django/core/management/base.py",第220行,执行输出= self.handle(*args,**选项)文件"/srv/python-environments/saltycrane/lib/python2.5/site-packages/django/core/management/commands/loaddata.py",第219行,在handle transaction.com中使用(using = using)文件" /srv/python-environments/saltycrane/lib/python2.5/site-packages/django/db/transaction.py",第199行,在commit connection._commit()文件"/ srv/python-environments/saltycrane/lib /python2.5/site-packages/django/db/backends/ init.com",第32行,在_commit中返回self.connection.commit()psycopg2.IntegrityError:在表上插入或更新"bugs_bug"违反外键约束"poster_id_refs_id_89e0243f"DETAIL:键(poster_id)=(1)不存在于表"auth_user".
我不应该同步syncdb吗?我应该为通用表格转储数据吗?我仍然在MySQL中完整的数据库但是会欣赏任何方向.
SIDENOTE:我确实south安装了.我--initial几天前做了命令.也许我也可以使用南方?
有没有办法从外部应用程序中引发C#中的事件?特别是来自Ruby?我需要在rails应用程序中使C#发生一些事情.
"每个表只能有一个IDENTITY列"
为什么会这样?以车辆的情景为例,存在唯一的登记号码以及唯一的登记号码.要在sql server中描述这种情况,我们需要在列上进行自定义实现.相反,在Oracle中,您可以在表上拥有任意数量的序列.为什么IDENTITY列有限制,有什么具体原因吗?
拥有车辆架构的场景是一个虚构的问题,我在质疑为什么对标识列有限制.
当raw_input在循环中使用时,直到键入某个字符(比如说'a'),如何在此之前以相反的顺序打印所有输入,而不将输入存储在数据结构中?
使用字符串很简单:
def foo():
x = raw_input("Enter character: ")
string = ""
while not (str(x) == "a"):
string = str(x) + "\n" + string
x = raw_input("Enter character: ")
print string.strip()
Run Code Online (Sandbox Code Playgroud)
但是如果没有字符串我怎么能这样做呢?
我使用CEDET(最新的CVS)和几个中等规模的项目(每个几百kLOC,主要是C,但有些C++),有时会遇到长时间停顿,系统几秒钟内完全没有响应.更少见的是,它完全旋转失控,我必须进行混搭C-g并尝试移动光标或切换到不同的缓冲区以获得控制权.
我使用GNU Global为我使用的项目创建标签,但这有时仍然很慢,特别是对于semantic-symref-symbol,有些跳转似乎需要解析大量的头文件和源文件.在某些情况下semantic-ia-fast-jump,semantic-ia--fast-jump-helper: Tag SomeFunction has no buffer information即使gtags-find-tag发现它(在同一个项目中),也可能在过时的位置发现错误; 这可能是一个临时的错误,通常semantic-ia-fast-jump是可靠的.
我很感激有关如何做的任何建议
ede-cpp-root-project.文章http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html中有一些提示,我正在寻找除该文章之外的任何内容.