小编Ale*_*x B的帖子

帮助简化COBOL程序员到.Net.你有什么建议?

我有许多正在转向.NET的COBOL程序员.我发现很多人都在努力采用/理解OO编程原理.我没有任何COBOL经验,所以我找到几个相似之处的能力非常有限.

我不想说"忘记你二十年的经验.这都是全新的",但我没有类比和工具可以做得更好.

您有什么建议我帮助他们了解.NET世界?

.net oop cobol

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

Web应用程序框架和内容管理系统之间的区别?

这两个概念完全不同吗?或者它们的含义是否有重叠?

说Web框架用于创建前端,而CMS用于后端是否正确?

如果是,那么Web框架应该使用与CMS相同的技术吗?例如,Ruby on Rails可以与Drupal结合使用吗?或者根本没有任何意义?

drupal content-management-system

8
推荐指数
2
解决办法
6721
查看次数

如何使用WinAPI锁定内存中的页面?

我需要阻止应用程序的内存页面在Windows上换出RAM.是否有一个等同于POSIX的WinAPI函数mlockall()来实现它?

c windows winapi real-time

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

在Clojure中从XML拉链构建自定义结构的惯用方法

说,我正在解析RSS提要,并希望从中提取信息的子集.

(def feed (-> "http://..." clojure.zip/xml-zip clojure.xml/parse))
Run Code Online (Sandbox Code Playgroud)

我可以分别获得链接和标题:

(xml-> feed :channel :item :link text)
(xml-> feed :channel :item :title text)
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何在不经过拉链的情况下同时提取它们的方法,例如

(let [feed (-> "http://..." clojure.zip/xml-zip clojure.xml/parse)]
    (zipmap 
        (xml-> feed :channel :item :link text)
        (xml-> feed :channel :item :title text)))
Run Code Online (Sandbox Code Playgroud)

......或其变体,包括将多个序列映射到一个函数,该函数例如用增量方式构建一个映射assoc.

不仅我必须多次遍历序列,序列也有不同的状态,所以元素必须"对齐",可以这么说.也就是说,在比RSS更复杂的情况下,特定元素中可能缺少子元素,使得一个序列缩短一个(没有间隙).所以结果可能实际上是不正确的.

有没有更好的办法或者是吧,其实,你做Clojure中呢?

xml clojure

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

SQLite的案例不敏感的UTF-8字符串排序规则(C/C++)

我正在寻找一种方法,以不区分大小写的方式比较和排序C++中的UTF-8字符串,以便在SQLite中的自定义排序规则函数中使用它.

  1. 理想情况下,该方法应与区域设置无关.然而,我不会屏住呼吸,据我所知,校对是非常依赖于语言的,所以任何适用于英语以外语言的东西都可以,即使这意味着切换语言环境.
  2. 选项包括使用标准C或C++库或小型(适用于嵌入式系统)和非GPL(适用于专有系统)第三方库.

到目前为止我所拥有的:

  1. strcoll使用C语言环境和std::collate/ std::collate_byname区分大小写.(这些是否有不区分大小写的版本?)
  2. 我试图使用POSIX strcasecmp,但它似乎没有为除以外的语言环境定义"POSIX"

    在POSIX语言环境中,strcasecmp()和strncasecmp()执行从上到下的转换,然后执行字节比较.结果未在其他语言环境中指定.

    事实上,strcasecmpLinux与GLIBC上的语言环境之间的结果并没有改变.

    #include <clocale>
    #include <cstdio>
    #include <cassert>
    #include <cstring>
    
    const static char *s1 = "Äaa";
    const static char *s2 = "äaa";
    
    int main() {
        printf("strcasecmp('%s', '%s') == %d\n", s1, s2, strcasecmp(s1, s2));
        printf("strcoll('%s', '%s') == %d\n", s1, s2, strcoll(s1, s2));
        assert(setlocale(LC_ALL, "en_AU.UTF-8"));
        printf("strcasecmp('%s', '%s') == %d\n", s1, s2, strcasecmp(s1, s2));
        printf("strcoll('%s', '%s') …
    Run Code Online (Sandbox Code Playgroud)

c++ sqlite unicode utf-8 internationalization

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

Visual Studio中的复杂构建

我有一些我无法找到在Visual Studio中执行的好方法:

  1. 预构建步骤调用代码生成器,该代码生成器生成稍后编译的一些源文件.这可以通过向项目添加空白文件(稍后用实际生成的文件替换)在有限的范围内解决,但如果我不知道名称和/或自动生成的源文件的数量,它就不起作用.我可以在GNU make使用中轻松解决它$(wildcard generated/*.c).如何使用Visual Studio执行类似操作?

  2. 如果不需要修改文件("make"行为),我可以阻止预构建/后构建事件运行吗?目前的解决方法是编写一个包装器脚本,它将检查我的时间戳,这有效,但有点笨拙.

  3. 找到VS外部安装的外部库和头文件的好方法是什么?在*nix的情况下,它们通常会安装在系统路径中,或者位于系统路径中autoconf.我想我可以在项目设置中使用用户定义的宏指定路径,但是放置这些宏的好地方在哪里可以轻松找到并调整它们?

为了清楚起见,我知道存在更好的Windows构建系统(CMake,SCons),但它们通常自己生成VS项目文件,我需要将这个项目集成到现有的VS构建系统中,所以我希望我只是简单的VS项目文件,而不是生成的文件.

c c++ windows build visual-studio

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

什么时候可以在Linux上调用时间(NULL)失败

根据此文档http://www.cplusplus.com/reference/clibrary/ctime/time/

for time(NULL)"如果函数无法检索日历时间,则返回-1值."

这是我应该在我的代码中检查的内容吗?如果时间(NULL)没有检索时间,肯定会出现一些错误.

c time

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

如何在C++中获得无符号等价的整数类型?

有没有办法在C++中获得有符号整数类型的无符号等价(相同大小)?我在想:

template<typename T>
struct get_unsigned { };

template<>
struct get_unsigned<int> {
    typedef unsigned int type;
};

...

template<typename T>
void myfunc(T val) {
    get_unsigned<T>::type u = std::abs(val);
    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找标准库或Boost中的现有解决方案,除非它是少数几行,否则我不想自己动手.

c++ templates

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

Boost:取消引用模板参数,如果它是指针

如果模板参数是指针(或智能指针),我可以使用什么来取消引用模板参数,如果不是,则将其保留为原样?

template<class T> void subf(const T& item)
{
    item.foo();
}

template<class T> void f(const T& item)
{
    subf(magic_dereference_function(item));
}
Run Code Online (Sandbox Code Playgroud)

Boost中的任何东西都是一种选择.

c++ templates

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

解组异构结构的JSON数组

我想反序列化包含某个接口数组的对象Entity:

type Result struct {
    Foo int;
    Bar []Entity;
};
Run Code Online (Sandbox Code Playgroud)

Entity是一个由许多结构类型实现的接口.JSON数据标识每个实体中具有"类型"字段的结构类型.例如

{"type":"t1","field1":1}
{"type":"t2","field2":2,"field3":3}
Run Code Online (Sandbox Code Playgroud)

我将如何以Result正确填充数组的方式对类型进行反序列化.从我所看到的,我必须:

  1. 实施UnmarshalJSONResult.
  2. 解析Bar[]*json.RawMessage.
  3. 将每条原始邮件解析为map[string]interface{}.
  4. 检查原始邮件中的"类型"字段.
  5. 创建适当类型的结构.
  6. 再次解析原始消息,这次是刚创建的结构.

这一切听起来都很乏味和无聊.有一个更好的方法吗?或者我是否向后做,并且有一种更规范的方法来处理异构对象的数组?

json go

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