我在替换字符串中的字符时遇到一个奇怪的问题......
我读了一个包含俄语文本的 .txt 文件,并从俄语到英语的字母列表(ru=en)开始,我循环该列表,我想用英语字符替换俄语字符。
问题是:我可以在调试中看到俄语的正确阅读和英语的正确阅读,但使用的myWord = myWord.Replace(ruChar, enChar)
字符串没有被替换。
我的txt文件是UTF-8编码的。
我有一个irc_sendline
可以像printf
can 一样调用的函数
irc_sendline(s, "A strange game.\nThe only %s is not to play.", "winning move");
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但我对它的实现不满意:
int irc_sendline(irc *iobj, char *msg, ...)
{
char tmp_msg[BUFSIZE], fmsg[BUFSIZE];
va_list args;
int len;
va_start(args, msg);
strncpy(tmp_msg, msg, BUFSIZE);
strncat(tmp_msg, "\r\n", BUFSIZE);
len = vsnprintf(fmsg, BUFSIZE, tmp_msg, args);
len = send(iobj->fd, fmsg, len, 0);
return len;
}
Run Code Online (Sandbox Code Playgroud)
你看,我在这里使用2个"临时"缓冲区,因为我首先必须将原始消息从函数参数复制到临时缓冲区,以便将"\ r \n"附加到它,然后将该临时缓冲区复制到另一个临时缓冲区做函数调用中提供的参数实际的格式化,只有那么我可以在它的途中送东西.
我怎么能让这个更干净,更好?
感谢这里的所有输入,我认为我唯一的问题是那里的混乱,但它实际上是一个滴答作响的定时炸弹!我的新功能如下所示:
int irc_sendline(irc *iobj, char *msg, ...)
{
char buffer[BUFSIZE];
va_list args;
int res_str_len;
int sent; …
Run Code Online (Sandbox Code Playgroud) 我正在尝试自动化第三方 Win32 应用程序,我想在定义的时间间隔捕获特定窗口的图形内容。我处于此的早期阶段,我目前正在尝试通过 C#使用Microsoft UI 自动化API 来完成客户端应用程序和外部应用程序之间的大部分交互。我现在可以让外部应用程序执行我希望它执行的操作,但现在我想从似乎是第三方所有者绘制的控件的特定窗口中捕获图形。我怎样才能做到这一点?我要捕获的窗口是此图像中红色矩形标记的窗口:
我有一个这样的实现,但它依赖于外部应用程序的 UI 位于顶部,这对我来说并不能保证,所以我更愿意找到更通用的东西。
var p = Process.Start("c:\myapp.exe");
var mainForm = AutomationElement.FromHandle(p.MainWindowHandle);
// "workspace" below is the window whose content I want to capture.
var workspace = mainForm.FindFirst(TreeScope.Descendents,
new PropertyCondition(AutomationElement.ClassNameProperty, "AfxFrameOrView70u"));
var rect = (Rect) workspace.GetCurrentPropertyValue(AutomationElement.BoundingRectangleProperty);
using (var bmp = new Bitmap((int)rect.Width, (int)rect.Height))
{
using (var g = Graphics.FromImage(bmp))
{
g.CopyFromScreen((int)rect.Left, (int)rect.Top, 0, 0, new Size((int)rect.Width, (int)rect.Height));
bmp.Save(@"c:\screenshot.png", ImageFormat.Png);
}
}
Run Code Online (Sandbox Code Playgroud)
当自动化应用程序在顶部时,上面的工作足够好,但它只是盲目地复制矩形中的屏幕,所以我的代码受机器上运行的任何东西的支配,并可能覆盖我的应用程序的窗口。
我已经阅读了一些将WM_PRINT
消息发送到窗口的建议。几个月前的这个问题/答案似乎很有希望,但是当我使用此代码时,我只得到一个白色矩形,其中没有控件的实际内容。
var prop = (int)workspace.GetCurrentPropertyValue(AutomationElement.NativeWindowHandleProperty);
var …
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
private static LogLevel? _logLevel = null;
public static LogLevel LogLevel
{
get
{
if (!_logLevel.HasValue)
{
_logLevel = readLogLevelFromFile();
}
return _logLevel.Value;
}
}
private static LogLevel readLogLevelFromFile() { ... }
Run Code Online (Sandbox Code Playgroud)
我在return
关于可能性的声明中得到了ReSharper警告System.InvalidOperationException
,它建议我检查_logLevel
它是否是null
第一个.然而,readLogLevelFromFile
回报LogLevel
,没有LogLevel?
,所以没有办法的return
时候语句可以达成_logLevel
的null
.这只是ReSharper的疏忽,还是我错过了什么?
[我不确定是否有人问这个问题,虽然我已经看了一下.]
我在DIV里面有一个DIV.我希望内部DIV在外部div中具有一定的位置.我在这方面取得了一些成功
position: absolute; top: 0px;right:0px;
但所有其他div都在四处走动.我只想把它float
放在其他东西之上(浮动当然不起作用).
谢谢!
编辑:外部div是相对的,我希望在调整浏览器大小时内部移动它.
编辑:对不起,我已经找到问题(但不是答案):如果我使用右:0px,内部div停止相对于外部div移动并开始相对于浏览器窗口移动.那为什么会这样?
有没有办法在config.php配置文件中隐藏我的数据库访问密码?
做这个的最好方式是什么 ?
我想隐藏给访问者和托管的管理员:)
我试图验证我提出的解决方案,我认为这是一个相当典型的问题.我有一个服务运行,每10分钟应该做一些事情.我最终得到了以下内容:
private AutoResetEvent autoResetEvent = new AutoResetEvent(true);
private bool isRunning = true;
public void Execute()
{
while(isRunning)
{
DoSomething();
if(isRunning)
{
autoResetEvent.WaitOne(new Timespan(0, 10, 0));
}
}
}
public void Stop()
{
isRunning = false;
autoResetEvent.Set();
}
Run Code Online (Sandbox Code Playgroud)
我可以看到的直接潜在问题是,我没有对Stop()中的isRunning修改进行任何类型的锁定,这被另一个线程调用,但我不确定我真的需要吗?我认为最糟糕的情况是它会运行一个额外的周期.
除此之外,这段代码有任何明显的问题吗?有没有更好的方法来解决这个我不知道的问题?
我读了关于整数常量的Microsoft特定后缀"i64".我想做一个UNSLigned转到ULONGLONG.
ULONGLONG bigNum64 = 0x800000000000000i64 >> myval;
在正常的C中,我会使用后缀"U",例如类似的32位操作
ULONG bigNum32 = 0x80000000U >> myval;
我不希望2的补码符号扩展通过高位传播.我想在64位常数上进行UNSIGNED转换.我认为我的第一个声明是要做一个SIGNED右移.
我试过0x800000000000000i64U
,0x800000000000000u64
但有编译器错误.
约20题游戏的一个问题是问在这里:
但是,如果我正确地理解它,答案似乎就是假设每个问题都会从一个分层树上下来.如果游戏是这样的话,二叉树应该可以工作:
因为猫是哺乳动物的一个例子,哺乳动物是动物的一个例子.但如果问题是这样的呢?
你不能用这些问题分枝树,因为有很多掠食者不是哺乳动物.因此,你不能将你的程序缩小到哺乳动物的范围,让捕食者成为哺乳动物的一个子集.
那么有没有办法使用我不理解的二进制搜索树,或者是否存在针对此问题的不同算法?
只是为了澄清,我只使用了20个问题作为例子,所以我的问题一般是关于这种搜索问题,而不是20问题游戏中特别涉及的其他问题.