小编ric*_*fox的帖子

用awk替换两个字符串

我想,以取代@@与^和¤¤用在文件中的换行符.为此,我编写了下面的代码,但感觉有一个更优雅的解决方案,然后两次调用gawk.任何人都可以告诉我是否有一个?

cat test.txt | gawk '{ gsub("@@", "^"); print }' | gawk '{ gsub("¤¤", "\r\n"); print }'
Run Code Online (Sandbox Code Playgroud)

awk gawk

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

获取.NET中非托管dll导出的char*的值

我试图获取由非托管DLL导出的字符串的值.

dll中的字符串声明为

extern "C" __declspec(dllexport) const char* _Version = "0.1";
Run Code Online (Sandbox Code Playgroud)

我用来获取值的代码如下.我从调用中获取变量的地址GetProcAddress但Marshal.PtrToStringAuto返回垃圾...

怎么了?

    public string GetDllVersion()
    {
            IntPtr lib = LoadLibrary(@"some.dll");
            if(lib == IntPtr.Zero)
                    throw new Win32Exception(Marshal.GetLastWin32Error());

            IntPtr procAddress = GetProcAddress(lib, "_Version");
            var ver2 = Marshal.PtrToStringAuto(procAddress);

            if(!FreeLibrary(lib))
                    throw new Win32Exception(Marshal.GetLastWin32Error());
            return ver2;
    }

    [DllImport("kernel32", SetLastError = true, CharSet = CharSet.Unicode)]
    static extern IntPtr LoadLibrary(string lpFileName);

    [DllImport("kernel32", CharSet = CharSet.Ansi, ExactSpelling = true, SetLastError = true)]
    static extern IntPtr GetProcAddress(IntPtr hModule, string procName);

    [DllImport("kernel32.dll", SetLastError = true)]
    [return: …
Run Code Online (Sandbox Code Playgroud)

.net c# pinvoke

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

Bison奇怪的C代码(yyerror)

我正在使用Bison创建一个简单的解析器,并且在理解下面的C代码时遇到一些麻烦.对我而言,它看起来不像是一个有效的语句,但gcc整齐地复制它,并且块中的代码在解析错误时执行.

我真的很想知道这实际意味着什么.

我引用的代码来自http://dinosaur.compilertools.net/bison/bison_7.html#SEC66:

yyerror (s) 
     char *s;
{
  // Some code here
}
Run Code Online (Sandbox Code Playgroud)

c bison

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

创建可按列排序的数据库表的最佳方法

我有一个包含未排序行的表,并希望使它们可以按列排序。我希望表可以按列排序,因此我创建了一个 sort_by 列。

该表现在如下所示:

ID  Data   sort_by
--  -----  -------
27  Blahh  1  
54  Blahh  2  
57  Blahh  3  
1   Blahh  4
Run Code Online (Sandbox Code Playgroud)

现在我想在第二个位置插入一行(sort_by = 2)。然后我必须使用 sort_by += 1 更新所有> 2 行的 sort_by 。如果我有几百万行,那么这将是大量更新。

那么,有没有一种规范的方法可以做到这一点?当然,我可以在列之间设置更大的步长,并在间隙中插入新行等,但是有没有一种美观的方式,即不是黑客?

排序由用户手动完成。谷歌搜索的一个好短语=upvote,我尝试的一切都找到了在某些DBMS或某些框架中对表进行排序的方法。:)

sql rdbms

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

获取产品 Episerver Commerce

按照本教程http://world.episerver.com/documentation/commerce/get-started-with-commerce/3--creating-a-start-page/开始使用 episerver 商务。将 url 写入特定问题时,它工作正常。

但是说我有以下树。

目录根 -> testcatalog -> testlevel -> testproduct 1 和 2

在 testevel 上时(如果查看教程,有模型 MyNode),我如何获得所有子“产品”,testproduct 1 和 2?似乎有 100 种方法可以做到这一点。

使用最新的外延服务器和外延服务器商务 (9)。

c# asp.net-mvc episerver episerver-commerce

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

使用Ramda转换对象无点样式

鉴于下面的功能,我如何将其转换为无点样式?会是不错的使用Ramda的prop和path并跳过数据的说法,但我就是无法找出正确的语法.

const mapToOtherFormat = (data) => (
    {
        'Name': data.Name
        'Email': data.User.Email,
        'Foo': data.Foo[0].Bar
    });
Run Code Online (Sandbox Code Playgroud)

ramda.js

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

Monadic IO与ramda和ramda-fantasy

试图弄清楚IO monad是如何工作的.

使用下面的代码,我阅读filenames.txt并使用结果重命名目录中的文件testfiles.这显然是未完成的,所以不是实际重命名我记录到控制台的任何东西.:)

我的问题是:

  1. 我打了runIO两次电话,但感觉它应该只调用一次,最后呢?
  2. 我想用renameIO而renaneDirect不是找不到合适的语法.

任何其他建议也很感激,我是FP的新手!

    var R = require('ramda');
    var IO = require('ramda-fantasy').IO
    var fs = require('fs');

    const safeReadDirSync = dir => IO(() => fs.readdirSync(dir));
    const safeReadFileSync = file => IO(() => fs.readFileSync(file, 'utf-8'));

    const renameIO = (file, name) => IO(() => console.log('Renaming file ' + file + ' to ' + name + '\n'));
    const renameDirect = (file, name) => console.log('Renaming file ' + file + ' …
Run Code Online (Sandbox Code Playgroud)

functional-programming node.js ramda.js ramda-fantasy

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

Robolectric中的getSystemService返回具有空上下文的对象

在我的活动中,onCreate我有:

AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
Run Code Online (Sandbox Code Playgroud)

使用Robolectric测试活动时,我使用

ActivityController<MainActivity> controller = Robolectric.buildActivity(MainActivity.class);
MainActivity activity = controller.attach().create().get();
Run Code Online (Sandbox Code Playgroud)

在AudioManager随后创建,但与mContext = null这导致了NullPointerException时调用registerMediaButtonEventReceiver它,因为该框架方法使用上下文内部。

有什么方法可以确保AudioManager使用工作方式创建Context?

android robolectric

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

预期类型“Iterable”(匹配泛型类型“Iterable[SupportsLessThanT]”)

@dataclass(frozen=True, eq=True, order=True)
class C:
    x: int

l = [C(1), C(2), C(1)]
print(sorted(l))
Run Code Online (Sandbox Code Playgroud)

上面的代码可以工作,但会发出警告: Expected type 'Iterable' (matched generic type 'Iterable[SupportsLessThanT]'), got 'list[C]' instead。

我认为order=True传递给的参数@dataclass应该导致生成__lt__等,从而确认SupportsLessThanT?

显式实现可以__lt__使警告静音,但是如果不这样做,我该如何使其静音呢?

python python-typing

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

在我的应用中使用图标包

我的应用程序包含一个功能,用于列出用户设备上安装的所有应用程序,并附带图标.现在,用户在此列表中请求图标包支持.

目前我列出已安装的应用程序:

final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

final List<ResolveInfo> rgRi = pm.queryIntentActivities( mainIntent, 0);
Run Code Online (Sandbox Code Playgroud)

然后为每个加载图标ResolveInfo:

.loadIcon(application.getPackageManager());
Run Code Online (Sandbox Code Playgroud)

这给了我应用程序的图标,但不是图标包,而是默认图标.

如果应用程序可用,如何访问应用程序的图标包图标?

android android-launcher

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

创建一个元组pointfree

createTuple下面的函数可以无表情地表达吗?

let createTuple = fun v -> (v, v*2)

createTuple 2 |> printfn "%A" // (2,4)
Run Code Online (Sandbox Code Playgroud)

f# pointfree

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

生成时间表 - 需要良好的算法

昨天在试图入睡时我开始考虑如何解决下面的问题,并意识到我无法想出一个好的算法.这不是学校作业,即使它看起来像一个,我只是想找到答案.:)

基本上让我们想象一下商店员工的工作时间表.该计划应根据一系列要求生成计划建议.

要求是:

  • 任何一周只有一名员工工作.
  • 员工连续两周无法工作.
  • 应该有一种方法可以防止员工安排工作一周(假期).
  • 分配应该尽可能均匀,即如果我们有雇员A,B和C,他们应该得到大约相同的休息周数,这些周应尽可能均匀分布.

什么是解决这个问题的最佳方法?也许函数式编程更适合解决这个问题?

编辑:现在我知道这种类型的问题被称为"资源约束调度".由于"调度"通常指的是诸如计划任务或线程之类的事情,因此对此有点困难.对于那些仍然认为我要求提供家庭作业解决方案的人(尽管我上面另有明确说法),你可以查看我以前的问题,我认为他们清楚地表明我不是学生......

c# algorithm f#

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