我正在尝试将字符数组与字符串进行比较,如下所示:
const char *var1 = " ";
var1 = getenv("myEnvVar");
if(var1 == "dev")
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
这个if语句永远不会被验证为真......当我输出var1时它是"dev",我想也许它与空终止字符串有关,但是"dev"和var1的strlen是相等的...我也可能认为var1 =="dev"将"dev"与var1的内存位置进行比较而不是值.*var1 =="dev"导致错误....尝试了很多东西,可能是saavy c ++开发人员的简单解决方案(我没有在一段时间内编写c ++).
编辑:我们试过了
if(strcmp(var1, "dev") == 0)
Run Code Online (Sandbox Code Playgroud)
和
if(strncmp(var1, "dev", 3) == 0)
Run Code Online (Sandbox Code Playgroud)
谢谢
编辑:在家测试后,我只是建议我的同事将数据类型更改为字符串.我相信他正在将一个大字母的char数组与一个字符串进行比较.我把一个输出sizeof,strlen等的程序放在一起,以帮助我们完成它.感谢大家的帮助.
我有3个模型,用户,发布,评论和定义如下
class Post < ActiveRecord::Base
belongs_to :user
has_many :comments
def self.find_other_user_posts
?
end
end
class User < ActiveRecord::Base
has_many :posts
has_many :comments
has_many :posts_commented_on, :through => :comments, :source => :posts
end
class Comment< ActiveRecord::Base
belongs_to :post
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
用户可以有很多帖子和很多评论,问题是我想在Post模型中制作返回帖子集合的方法.该方法将查找不属于当前用户的帖子和评论.例如,有
Post: A have Comment: A1
Post: B have Comment: B1, B2, B3, B4
Post: C have Comment: C1, C2
Post: D have Comment: nil
Post: E have Comment: nil
Post: F have Comment: F1, F2, F3
Run Code Online (Sandbox Code Playgroud)
当前用户自己的帖子A,E和评论A1,B2,所以呼叫:
@posts = Post.find_other_user_posts …Run Code Online (Sandbox Code Playgroud) 我对以下代码有一些疑问:
using System;
namespace ConsoleApplication2
{
public struct Disposable : IDisposable
{
public void Dispose() { }
}
class Program
{
static void Main(string[] args)
{
using (Test()) { }
}
static Disposable Test()
{
return new Disposable();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
Disposable结构进行操作的using语句是否会从Test()结构框中返回?为了试图找出自己,我检查了上面代码生成的IL,这里是Main(...)方法的IL :
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
.maxstack 1
.locals init (
[0] valuetype ConsoleApplication2.Disposable CS$3$0000)
L_0000: call valuetype ConsoleApplication2.Disposable ConsoleApplication2.Program::Test()
L_0005: stloc.0
L_0006: …Run Code Online (Sandbox Code Playgroud) 我有
$("#myForm").validate({
....
rules: {
phone1: {
required: {
depends: "!#pri_noPhone:checked"
},
number: true,
minlength:3,
}
Run Code Online (Sandbox Code Playgroud)
它不会引发错误,但仍会尝试验证电话号码.
我什么时候应该使用volatile/Thread.MemoryBarrier()来保证线程安全?
我对这类事情没有经验,所以我甚至不确定关键字(因此标题).基本上我需要一个双向功能
encrypt(w,x,y) = z
decrypt(z) = w, x, y
Where w = integer
x = string (username)
y = unix timestamp
Run Code Online (Sandbox Code Playgroud)
和z =是一个8位数字(可能包括字母,规格还没有.)
我希望z不容易猜测并且易于验证.速度不是一个大问题,安全也不是.跟踪一对一关系是主要要求.任何资源或方向将不胜感激.
编辑
谢谢你的答案,学到了很多东西.因此,为了澄清,8个字符是唯一的硬性要求,以及链接W < - > Z的能力.用户名(Y)和时间戳(Z)将被认为是锦上添花.
如果可能的话,我想以数学的方式做这个,而不是做一些数据库查找.
如果我今晚必须完成这个,我可以找到一个合适的哈希算法并使用一个查找表.我只是想扩大我对这类事物的理解,看看我是否可以用数学方法做到这一点.
我只想使用PowerShell列出当前工作目录下的所有目录.这很容易来自Bash shell:
ls -d */
Run Code Online (Sandbox Code Playgroud)
或Windows中的cmd.exe:
dir /a:d
Run Code Online (Sandbox Code Playgroud)
然而,使用PowerShell,我似乎无法使用单个命令来执行此操作.相反,我发现的唯一作品是:
ls | ? {$_Mode -like "d*"}
Run Code Online (Sandbox Code Playgroud)
这似乎过于冗长和涉及,我怀疑我不需要在那里单独的Where子句.Get-ChildItem的帮助并不清楚如何过滤模式.任何人都可以开导我吗?
我有几个DNN模块,我希望使用从单独的应用程序(在这种情况下是Windows服务)调用的门户网站的内置模块升级工具进行静默更新.通过修改关键区域中的DNN源以允许DotNetNuke.dll在Web应用程序之外运行,我能够使用门户版本4.3完成所有工作.我现在正试图用4.9.0源代码做同样的事情,我遇到了问题.
在DNN尝试从数据库中读取之前,一切正常.我在一个VS解决方案中加载了我的Windows服务项目,DNN库项目和其他几个相关项目(其他项目与DNN源提供的主解决方案文件中的项目相同).我在我的服务中调用PaInstaller.Install来更新每个模块.执行转到reflection.vb,然后尝试根据类型名称创建一个DotNetNuke.Data.SqlDataProvider对象.它在调用System.Web.Compilation.BuildManager.GetType时引发异常.例外说:
无法从程序集'System.Web,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'加载类型'DotNetNuke.Data.SqlDataProvider'
我读到这意味着它无法找到DotNetNuke.SqlDataProvider.dll程序集.奇怪的是程序集位于DNN库项目的Bin文件夹中,我也将它放在运行Windows服务的文件夹中.实际的SqlDataProvider项目也会加载到解决方案中.我不能为我的生活理解为什么运行时环境无法定位程序集.
有没有人尝试过这样的事情,或者知道什么可能导致在通过DNN源时找不到程序集?我最好使用BuildManager.GetType以外的东西来获取SQL提供程序类型的实例吗?
c# ×2
.net ×1
algorithm ×1
asp.net ×1
attachment ×1
boxing ×1
c++ ×1
clr ×1
directory ×1
dotnetnuke ×1
email ×1
encryption ×1
hash ×1
idisposable ×1
jquery ×1
php ×1
powershell ×1
scripting ×1
string ×1
struct ×1
using ×1
validation ×1
vb.net ×1
volatile ×1