问题列表 - 第26876页

.NET 字符串将俄语替换为英语

我在替换字符串中的字符时遇到一个奇怪的问题......

我读了一个包含俄语文本的 .txt 文件,并从俄语到英语的字母列表(ru=en)开始,我循环该列表,我想用英语字符替换俄语字符。

问题是:我可以在调试中看到俄语的正确阅读和英语的正确阅读,但使用的myWord = myWord.Replace(ruChar, enChar) 字符串没有被替换

我的txt文件是UTF-8编码的。

c# string replace utf-8

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

C变量参数重构

我有一个irc_sendline可以像printfcan 一样调用的函数

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)

c refactoring function

6
推荐指数
1
解决办法
243
查看次数

.NET SSH端口转发

我正在尝试将SSH端口转发到我正在编写的.net应用程序中.

我尝试过使用sharpSSH,但它要求用户每次都输入密码,我不希望这样.我将处理存储密码.

我已经下载了Granados,但基本上没有文档.当我筛选Granados源代码时,是否有人知道如何使用Granados或任何其他.NET 免费 SSH库完成端口转发?

.net c# ssh networking portforwarding

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

我可以在另一个应用程序进程中获取任意窗口的位图吗?

我正在尝试自动化第三方 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)

gdi+ sendmessage microsoft-ui-automation

4
推荐指数
1
解决办法
2590
查看次数

可空类型和ReSharper警告

我有以下代码:

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时候语句可以达成_logLevelnull.这只是ReSharper的疏忽,还是我错过了什么?

c# resharper null nullable

7
推荐指数
1
解决办法
2123
查看次数

相对于包含DIV的位置DIV而不移动其他东西

[我不确定是否有人问这个问题,虽然我已经看了一下.]

我在DIV里面有一个DIV.我希望内部DIV在外部div中具有一定的位置.我在这方面取得了一些成功

position: absolute; top: 0px;right:0px;

但所有其他div都在四处走动.我只想把它float放在其他东西之上(浮动当然不起作用).

谢谢!

编辑:外部div是相对的,我希望在调整浏览器大小时内部移动它.

编辑:对不起,我已经找到问题(但不是答案):如果我使用右:0px,内部div停止相对于外部div移动并开始相对于浏览器窗口移动.那为什么会这样?

html css

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

如何在配置文件中隐藏密码

有没有办法在config.php配置文件中隐藏我的数据库访问密码?

做这个的最好方式是什么 ?

我想隐藏给访问者和托管的管理员:)

php passwords

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

如何处理重复执行?

我试图验证我提出的解决方案,我认为这是一个相当典型的问题.我有一个服务运行,每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修改进行任何类型的锁定,这被另一个线程调用,但我不确定我真的需要吗?我认为最糟糕的情况是它会运行一个额外的周期.

除此之外,这段代码有任何明显的问题吗?有没有更好的方法来解决这个我不知道的问题?

c# multithreading recurring

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

如何在VS2008中指定64位无符号int const 0x8000000000000000?

我读了关于整数常量的Microsoft特定后缀"i64".我想做一个UNSLigned转到ULONGLONG.
ULONGLONG bigNum64 = 0x800000000000000i64 >> myval;

在正常的C中,我会使用后缀"U",例如类似的32位操作
ULONG bigNum32 = 0x80000000U >> myval;

我不希望2的补码符号扩展通过高位传播.我想在64位常数上进行UNSIGNED转换.我认为我的第一个声明是要做一个SIGNED右移.

我试过0x800000000000000i64U,0x800000000000000u64但有编译器错误.

c c++ visual-studio

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

是否有一种算法可以找到与某些属性相匹配的项目,比如20个问题的游戏?

约20题游戏的一个问题是问在这里:

但是,如果我正确地理解它,答案似乎就是假设每个问题都会从一个分层树上下来.如果游戏是这样的话,二叉树应该可以工作:

  1. 它是动物吗?是.
  2. 它是哺乳动物吗?是.
  3. 它是猫吗?是.

因为猫是哺乳动物的一个例子,哺乳动物是动物的一个例子.但如果问题是这样的呢?

  1. 它是哺乳动物吗?是.
  2. 它是捕食者吗?是.
  3. 它有长鼻子吗?没有.

你不能用这些问题分枝树,因为有很多掠食者不是哺乳动物.因此,你不能将你的程序缩小到哺乳动物的范围,让捕食者成为哺乳动物的一个子集.

那么有没有办法使用我不理解的二进制搜索树,或者是否存在针对此问题的不同算法?

只是为了澄清,我只使用了20个问题作为例子,所以我的问题一般是关于这种搜索问题,而不是20问题游戏中特别涉及的其他问题.

search binary-tree artificial-intelligence

5
推荐指数
1
解决办法
350
查看次数