小编Pau*_*rth的帖子

删除Redis列表中的所有条目

假设您在Redis中有一个LIST数据类型.你如何删除所有条目?我已经尝试过了:

LTRIM key 0 0
LTRIM key -1 0
Run Code Online (Sandbox Code Playgroud)

这两个都留下了第一个元素.这将留下所有元素:

LTRIM key 0 -1
Run Code Online (Sandbox Code Playgroud)

我没有看到完全清空列表的单独命令.

list redis

72
推荐指数
3
解决办法
5万
查看次数

XSLT/XPath中的当前节点与Context节点?

在XSLT中,"当前节点"和"上下文节点"之间有什么区别?您可以在这里找到这两个术语:http://www.w3.org/TR/xslt.

你什么时候使用其中一个?你怎么参考每一个?

xml xslt xpath

65
推荐指数
2
解决办法
4万
查看次数

Postgres:添加约束(如果它尚不存在)

ALTER TABLE foo ADD CONSTRAINT bar ...如果约束已经存在,Postgres有没有办法说哪个会忽略命令,这样它就不会引发错误?

sql postgresql constraints

58
推荐指数
7
解决办法
4万
查看次数

如果输出到终端,则在C中检测

我正在为OS X和Linux编写一个C程序,我想根据它是否转到终端来调整输出.我知道我们已经介绍了如何在shell脚本中执行此操作,例如:

检测shell脚本的输出流类型

但是我如何在C程序中执行此操作?

c linux macos

21
推荐指数
2
解决办法
5961
查看次数

C#拖放:拖动时显示拖动的项目

我正在使用Windows窗体在C#中构建桌面应用程序.我有一个自定义控件,我希望能够在我的应用程序中拖放它(不在外面).现在我用通常的DoDragDrop/OnDragOver/OnDragDrop方法实现它.是否有任何方法可以连续绘制控件,因为它被拖动 - 有点你用JQuery的拖放看到的?我希望实际控件保持原位,但我想在用户拖动时绘制其外观的副本.理想情况下,副本甚至可以是半透明的,但这更像是"很高兴".

我能想到的唯一方法是将绘图代码放在主窗体的OnPaint方法中,但这似乎是一个不优雅的解决方案.还有其他想法吗?如果Control将自己描绘成一个Bitmap,事情会变得更容易吗?

c#

20
推荐指数
2
解决办法
3万
查看次数

bash:运行命令n分钟,然后SIGHUP它

是否有任何bash/linux命令可以启动长时间运行的命令,然后在n分钟后终止它?我想我可以用perl使用fork和kill来破解一些东西,但是有没有人知道那里已有的东西?

linux bash shell timeout

19
推荐指数
3
解决办法
1万
查看次数

C#:使用透明度将一个位图绘制到另一个位图上

我有两个位图,名为largeBmp和smallBmp.我想将smallBmp绘制到largeBmp上,然后将结果绘制到屏幕上.SmallBmp的白色像素应该是透明的.这是我正在使用的代码:

public Bitmap Superimpose(Bitmap largeBmp, Bitmap smallBmp) {
    Graphics g = Graphics.FromImage(largeBmp);
    g.CompositingMode = CompositingMode.SourceCopy;
    smallBmp.MakeTransparent();
    int margin = 5;
    int x = largeBmp.Width - smallBmp.Width - margin;
    int y = largeBmp.Height - smallBmp.Height - margin;
    g.DrawImage(smallBmp, new Point(x, y));
    return largeBmp;
}
Run Code Online (Sandbox Code Playgroud)

问题是,只要smallBmp透明,结果就会变得透明!我只想看看bigBmp,而不是它背后的内容.

c# graphics drawing

18
推荐指数
1
解决办法
3万
查看次数

C#Lambdas:如何*不*推迟"取消引用"?

我正在尝试使用C#委托实现撤消功能.基本上,我有一个UndoStack,它维护一个实现每个撤消操作的委托列表.当用户选择编辑:撤消时,此堆栈会弹出第一个代理并运行它.每个操作都负责将适当的撤销委托推送到堆栈.假设我有一个名为"SetCashOnHand"的方法.它看起来像这样:

public void SetCashOnHand(int x) {
    int coh = this.cashOnHand;
    undo u = () => this.setCashOnHand(coh);
    this.cashOnHand = x;
    undoStack.Push(u);
}
Run Code Online (Sandbox Code Playgroud)

因此,此方法构造撤消委托,执行操作,并(假设成功)将撤消委托推送到UndoStack.(UndoStack足够智能,如果在撤消的上下文中调用undoStack.Push,则代理会转到重做堆栈.)

我的麻烦是,将this.cashOnHand"缓存"到coh变量中有点烦人.我希望我能写下这个:

undo u = () => this.setCashOnHand(this.cashOnHand);
Run Code Online (Sandbox Code Playgroud)

但当然这不会得到cashOnHand 的值; 它会在调用委托之前推迟查找值,因此代码最终无所事事.有没有什么办法可以在构造委托时"取消引用"cashOnHand,除了将值填充到像coh这样的局部变量中?

我对听到更好的撤销方法并不感兴趣.请将此视为关于代理人的一般性问题,使用撤消只是举例来使问题更加清晰.

c# lambda delegates

9
推荐指数
1
解决办法
603
查看次数

使Rails缓存中的特定模型无效

我正在使用Rails 3和Memcached来缓存一些模型.当模型更改时,我想使该记录的缓存无效.有了视图片段,我只想说expire_fragment("blah").我如何使用我的模型做到这一点?我不想说Rails.cache.clear并丢失整件事.我想要类似的东西Rails.cache.invalidate("/users/5").我怎么做?

memcached caching ruby-on-rails-3

9
推荐指数
1
解决办法
7300
查看次数

C#命令获取struct offset?

假设我有一个像这样的C#结构:

[StructLayout(LayoutKind.Explicit)]
struct IMAGE_DOS_HEADER {
    [FieldOffset(60)] public int e_lfanew;
}
Run Code Online (Sandbox Code Playgroud)

现在假设我从文件中读取数据,如下所示:

byte[] data = new byte[4096];
FileStream f = new FileInfo(filename).Open(FileMode.Open, FileAccess.Read);
int n = f.Read(data, 0, 4096);
Run Code Online (Sandbox Code Playgroud)

现在我想测试n以确保我已经读取了足够的字节来获取值e_lfanew.有没有什么办法可以获得值60(FieldOffset)而无需重新输入?我正在寻找这样的东西:

if (n >= offsetof(IMAGE_DOS_HEADER.e_lfanew) + sizeof(int)) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

有这样的命令吗?在我的实际代码中,我必须进行其中几个测试,并且通过在结构中添加先前字段或通过从FieldOffset属性中复制值来手动输入数字似乎很乏味且容易出错.有没有更好的办法?

c#

8
推荐指数
3
解决办法
8566
查看次数