我在wix中创建了一个自定义对话框页面,它有一个文本框.如果文本框为空,我想禁用安装程序的下一个按钮如果用户键入了值,则启用它.以下代码部分工作.它不会禁用下一个按钮,但除非您填写该值,否则它不会导航到下一页.我遇到的问题是,当您在编辑文本框中键入值时,不会更新下一个按钮的状态.如果我从编辑文本框中删除该值,然后单击返回上一个屏幕,然后单击下一步,则禁用下一个按钮.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<UI>
<Dialog Id="MyCustomDialog" Width="370" Height="270" Title="Custom Dialog Options">
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
<Condition Action="disable">USERNAME1 = ""</Condition>
<Condition Action="enable">NOT(USERNAME1 = "")</Condition>
<Publish Event="NewDialog" Value="VerifyReadyDlg">NOT(USERNAME1 = "")</Publish>
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
<Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Transparent="yes" NoPrefix="yes" Text="Please type the value" />
<Control Id="UserNameText" Type="Text" …Run Code Online (Sandbox Code Playgroud) 在我的java应用程序中,我有很多条件决定只有一个动作.我的问题是如何使它看起来很好(我使用NetBeans所以我更喜欢不会被其代码格式化功能破坏的解决方案).我也希望尽可能减少if/else语句的数量,因为我认为它会使它更快.
我的原始代码很乱,所以我制作了一个动作图:
.如果你想玩它,请复制一份.请记住,关于UML 语法的图表并不完美,部分原因是我使用谷歌文档制作它.
这是代码:
if (!config.get("checkForSpecials") || event.isNotSpecial()) {
if (config.get("filterMode").equals("blacklist")) {
if (!itemFilter.contains(event.getItem().getName())) {
item.process();
}
} else if (config.get("filterMode").equals("whitelist")) {
if (itemFilter.contains(event.getItem().getName())) {
item.process();
}
} else {
item.process();
}
}
Run Code Online (Sandbox Code Playgroud)
有两件事我不喜欢它 - 条件不太清楚(特别是当我展开完整的方法名称和配置字符串时),以及进程方法调用有三次这样的事实.
为什么ng-if在这个例子中对我不起作用,但ng-show确实是JSFiddle:
<div ng-if="false">text</div>
<div ng-show="false">text2</div>
Run Code Online (Sandbox Code Playgroud)
以及如何解决这个问题?
使用有什么区别:
if (NULL == pointer)
Run Code Online (Sandbox Code Playgroud)
和使用:
if (pointer == NULL)
Run Code Online (Sandbox Code Playgroud)
我的教授说使用前者而不是后者,但我看不出两者之间的区别.
我认为这实际上是一个非常简单的问题.我必须将此汇编代码反向工程为c代码.我还会提供我认为正在发生的事情,这样你就可以指出我哪里出错了,现在我可以从错误中吸取教训.
.LFBO
pushq %rbp
movq %rsp,%rbp
movl %edi,-4(%rbp)
movl %esi,-8(%rbp)
movl -4(%rbp),%eax
compl -8(%rbp),%eax
jg .L2
movl -8(%rbp),%eax
jmp .L3
.L2:
movl -4(%rbp),%eax
.L3:
popq %rbp
ret
Run Code Online (Sandbox Code Playgroud)
所以这就是我认为正在发生的事情:.LFBO之后的前两行:
pushq %rbp
movq %rsp,%rbp
Run Code Online (Sandbox Code Playgroud)
只是为即将执行的执行设置堆栈.
movl %edi,-4(%rbp)
Run Code Online (Sandbox Code Playgroud)
抓住第一个变量,称之为x
movl %esi,-8(%rbp)
Run Code Online (Sandbox Code Playgroud)
抓住第二个变量称之为y
movl -4(%rbp),%eax
Run Code Online (Sandbox Code Playgroud)
抓住x在下一行进行比较
compl -8(%rbp),%eax
Run Code Online (Sandbox Code Playgroud)
通过计算xy来比较变量x和y
jg .L2
Run Code Online (Sandbox Code Playgroud)
如果x> y,则跳转到.L2
如果x <= y则计算下一行而不跳转到.L2
movl -8(%rbp),%eax
Run Code Online (Sandbox Code Playgroud)
复制x = y
jmp .L3
Run Code Online (Sandbox Code Playgroud)
跳到.L3
如果x> y在jg行,那么你跳转到.L2:并完成这一行
movl -4(%rbp),%eax
Run Code Online (Sandbox Code Playgroud)
这是我意识到我真的很困惑的地方.在我看来,你正在将x复制到x然后.L3已经完成,我想x是返回的
c assembly reverse-engineering x86-64 conditional-statements
我有一个可以为null的属性(一个Java对象)知道如何将自己转换为String,如果这个表示不为空,我想用它做一些事情.在Java中,这看起来像:
MyObject obj = ...
if (obj != null) {
String representation = obj.toString();
if (!StringUtils.isBlank(representation)) {
doSomethingWith(representation);
}
}
Run Code Online (Sandbox Code Playgroud)
我正在努力寻找将此转换为Kotlin的最惯用的方式,我有:
with(obj?.toString()) {
if (!isNullOrBlank()) {
doSomethingWith(representation)
}
}
Run Code Online (Sandbox Code Playgroud)
但对于这样一个简单的操作,它仍然感觉太多了.我有这种感觉,结合let,when和with我可以苗条下来的东西有点短.
步骤是:
我试过了:
when(where?.toString()) {
isNullOrBlank() -> builder.append(this)
}
Run Code Online (Sandbox Code Playgroud)
但是(1)它失败了:
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch: @InlineOnly public inline fun
CharSequence?.isNullOrBlank(): Boolean defined in kotlin.text @InlineOnly public inline fun CharSequence?.isNullOrBlank(): Boolean defined in
kotlin.text …Run Code Online (Sandbox Code Playgroud) 我需要使用 $cond 来组合不同的列,我需要写的一个 $cond 如下:
create_widget: {
$sum:{
$cond:[{$and: [ {$eq: ['$Method', 'POST']},
{Url:{$regex: /.*\/widgets$/}} ]}, 1, 0]
}
}
Run Code Online (Sandbox Code Playgroud)
而且这段代码不对,好像正则表达式不能放在这里。有没有其他方法可以做到这一点?我想匹配 Url 和正则表达式并将代码放在 $cond 下。
示例数据看起来像
{"BrandId":"a","SessionId":"a1","Method":"POST","Url":"/sample/widgets"}
{"BrandId":"a","SessionId":"a2","Method":"POST","Url":"/sample/blog"}
{"BrandId":"b","SessionId":"b1","Method":"PUT","Url":"/sample/widgets"}
Run Code Online (Sandbox Code Playgroud)
我写的整个代码如下:
db.tmpAll.aggregate([
{$group: {
_id: {BrandId:'$BrandId'},
SessionId: {$addToSet: '$SessionId'},
create_widget: {
$sum:{
$cond:[{$and: [ {$eq: ['$Method', 'POST']},
{} ]}, 1, 0]
}
}
}},
{$group: {
_id: '$_id.BrandId',
distinct_session: {$sum: {$size: '$SessionId'}},
create_widget: {$sum: '$create_widget'}
}}
]);
Run Code Online (Sandbox Code Playgroud)
示例代码的预期结果是
{ "_id" : "a", "distinct_session" : 2, "create_widget" : 1 }
{ "_id" …Run Code Online (Sandbox Code Playgroud) 我有一个包含两列 ID 和活动的数据框。活动为 0 或 1。我想要一个包含自上次活动为 1 以来递增数字的新列。但是,计数应仅在一个组 (ID) 内。如果活动为 1,则计数列应重置为 0,然后重新开始计数。
所以,我有一个包含以下内容的数据框:
想要的是这个:
有人能帮我吗?
我有这样的桌子
Table1
ID | Val | Val2 |
606541 |3175031503131004|3175032612900004|
606542 |3175031503131004|3175032612900004|
677315 |3175031503131004|3175032612980004|
222222 |1111111111111111|8888888888888888|
231233 |1111111111111111|3175032612900004|
111111 |9999992222211111|1111111111111111|
57 |3173012102121018|3173015101870020|
59 |3173012102121018|3173021107460002|
2 |900 |7000 |
4 |900 |7001 |
Run Code Online (Sandbox Code Playgroud)
我有两个条件列Val和Val2。显示结果,如果Val:
例如 :
示例 1
ID | Val | Val2 |
606541 |3175031503131004|3175032612900004|
606542 |3175031503131004|3175032612900004|
677315 |3175031503131004|3175032612980004|
False, because even the Val column
had two or more duplicate but the Val2
had dulicate value (ID 606541 and …Run Code Online (Sandbox Code Playgroud) 我有一些加速度数据,我试图计算给定一组条件的序列长度。在这种情况下,我想计算一个序列的长度,当加速度moves > 2.78然后回落到0.
一个例子是
[-1.1, -1, 0, 1.2, 1.8, 2, 2.88, 2.86, 2.53, 1.98, 1.21, 0.89, 0.11, -0.21]
Run Code Online (Sandbox Code Playgroud)
这里的返回结果将是 7 (2.88, 2.86, 2.53, 1.98, 1.21, 0.89, 0.11)
我以前这样做是为了使用以下代码确定严格> 2.78 的序列长度。我需要以此为基础来提供使用 0 作为端点的长度。
def get_Accel_lengths( array ) :
s = ''.join( ['0' if i < 2.78 else '1' for i in resultsQ4['AccelInt']] )
parts = s.split('0')
return [len(p) for p in parts if len(p) > 0]
Q4Accel = get_Accel_lengths(resultsQ4['AccelInt'])
Q4Accel = pd.DataFrame(Q4Accel)
Q4Accel
Run Code Online (Sandbox Code Playgroud)
使用上面的示例,此代码的结果将是2( 2.88 …