小编Nic*_*son的帖子

如何在调试时查看DataTable

我刚刚开始使用ADO.NET和DataSet和DataTables.我遇到的一个问题是,在尝试调试时,似乎很难分辨数据表中的值.

有哪些最简单的方法可以快速查看DataTable中保存的值?有没有在调试时看到Visual Studio中的内容,或者是将数据写入文件的唯一选项?

我创建了一个小实用程序函数,它将DataTable写入CSV文件.然而,生成的CSV文件被切断了.应该是写出System.Guid中间最后一行的大约3行,文件就停止了.我无法判断这是我的CSV转换方法或DataTable的原始填充的问题.

更新

忘掉最后一部分,我忘了冲洗我的流作家.

csv debugging datatable ado.net dataset

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

在Vim中替换字符串周围的引号?

我有类似的东西<Foobar Name='Hello There'/>,需要将单引号更改为双引号.我尝试了:s/\'.*\'/\"\0\"但它最终产生了<Foobar Name="'Hello There'"/>.更换\0\1只生产双引号中一个空字符串-是有一些特殊的语法我失踪,我需要做的只是发现的字符串("你好")里面的引号分配\1

vi vim replace surround

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

Prolog - 列表的不寻常利弊语法

我在Lee Naish的论文"Prolog中的高阶逻辑编程"中遇到了一些不熟悉的Prolog语法.以下是本文的第一个代码示例:

% insertion sort (simple version)
isort([], []).
isort(A.As, Bs) :-
    isort(As, Bs1),
    isort(A, Bs1, Bs).

% insert number into sorted list
insert(N, [], [N]).
insert(N, H.L, N.H.L) :-
    N =< H.
insert(N, H.LO, H.L) :-
    N > H,
    insert(N, LO, L).
Run Code Online (Sandbox Code Playgroud)

我的困惑是A.Asisort(A.As, Bs) :-.从上下文来看,它似乎是列表的替代cons语法,相当于isort([A|As], Bs) :-.

N.H.L似乎是一个更方便的方式来表达[N|[H|L]].

但SWI Prolog不接受这种不寻常的语法(除非我做错了).

有谁认出来了吗?我的假设是正确的吗?哪个Prolog解释器接受它作为有效语法?

prolog iso-prolog

27
推荐指数
3
解决办法
4295
查看次数

如何在utf-8中正确设置vim进行编辑

我遇到过几次问题因为vim的编码默认设置为latin1而我没有注意到并且假设它使用的是utf-8.现在我有了,我想设置vim,以便在所有明显的情况下都能做正确的事情,并默认使用utf-8.

我想避免的:

  • 在我的更改打开为utf-8 之前强制保存在其他编码的文件导致乱码.
  • 强制不支持多字节字符的终端(如Windows XP)终端尝试显示它们,导致乱码.
  • 与其他程序的读取或编辑文件的能力干扰(因为我在这混乱其他程序了怎么可能不清楚我有一个(也许是不合理的)讨厌使用BOM默认).
  • 其他我不太了解的问题(但希望你这样做!)

到目前为止我得到了什么:

if has("multi_byte")
  if &termencoding == ""
    let &termencoding = &encoding
  endif
  set encoding=utf-8                     " better default than latin1
  setglobal fileencoding=utf-8           " change default file encoding when writing new files
  "setglobal bomb                        " use a BOM when writing new files
  set fileencodings=ucs-bom,utf-8,latin1 " order to check for encodings when reading files
endif
Run Code Online (Sandbox Code Playgroud)

这是从vim wiki中采取并略微修改的.我搬到了bomb来自setglobal fileencoding其自身的陈述,因为否则它实际上并没有正常工作.由于我对物料清单的不确定性,我也评论了这条线.

我在找什么:

  • 避免我错过的可能陷阱
  • 现有代码存在问题
  • 链接到已经讨论/列出的任何地方

最后,我想这导致没有深思熟虑的需要复制/粘贴片段,将设立VIM为UTF-8的默认,将跨平台工作. …

unicode vim encoding utf-8

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

Bash子串与管道和标准输入

我的目标是将命令的输出减少到任意数量的字符(让我们使用6).我希望能够将此命令附加到管道的末尾,因此它应该能够只使用stdin.

echo "1234567890" | your command here 
# desired output: 123456
Run Code Online (Sandbox Code Playgroud)

我检查了一下awk,我也注意到bash有一个substr命令,但我提出的两个解决方案看起来都比他们需要的时间长,而且我无法摆脱我错过更容易的感觉.

我将发布我找到的两个解决方案作为答案,我欢迎任何批评和新解决方案!


找到解决方案,谢谢所有回复的人!

jcollado和Mithrandir之间很接近 - 我将来最终可能会同时使用它们.Mithrandir的答案是一个实际的子字符串,更容易查看结果,但jcollado的答案让我把它管道到剪贴板,没有EOL字符.

bash

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

用"."重复环绕.VIM中的命令

有没有人得到surround.vimrepeat.vim一起工作?

这应该使您能够使用"."重复环绕插件提供的任何命令.命令.

我认为surround.vim应该已经内置了对重复插件的支持,所以它应该开箱即用,但我不能让它工作.

vim surround

12
推荐指数
2
解决办法
2922
查看次数

如何在vim中用<code>标签包围两个单词,这样我可以用点运算符重复操作?

我正在使用vim-surround插件和这个HTML(其中*是我的光标):

<li class="sample" style="border-color: #005462;">*#005462</li>
Run Code Online (Sandbox Code Playgroud)

我想把#005462包围起来,<code>所以看起来像这样<code>#005462</code>.我可以用可视模式做到这一点,但我想做一些我可以用点运算符重复的事情.有什么建议?

vim surround

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

Plugin (vim-latex) crashing gVim on startup

I'm trying to use vim-latex with gVim on Windows XP, but as soon as I open a .tex file (or as soon as I set ft=tex) gVim crashes with no error messages visible. The crash doesn't occur in console vim.

I've followed the setup instructions to a T (as far as I can tell), and I've tried disabling all other plugins and stripping my .vimrc as well.

I tried running gvim -V9log.txt file.tex, but the output didn't help …

vim latex

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

reduce的同义词综合列表

通常称为高阶函数reduce在各种语言中具有许多同义词.

在我的脑海中,我可以想到:

  • foldr,foldl(又名右折和左折)(Haskell)
  • inject (Smalltalk,Ruby,Groovy)
  • Aggregate (LINQ)
  • accumulate(维基百科)
  • compress(维基百科)

是否有这个功能的所有不同名称的综合列表?如果没有,让我们在这里做一个.知道这将是有用的.

我对从每种语言中获取库函数名称不太感兴趣,我正在寻找更多的口语,"如何在句子中使用"类型引用.

language-agnostic programming-languages functional-programming fold

9
推荐指数
3
解决办法
383
查看次数

如何在C中获取结构的地址?

我是C的绝对新手所以这可能是一个愚蠢的问题,警告!

它的灵感来自于学习困难之路中的练习16的额外学分,如果有人想知道背景的话.

假设这些进口:

#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
Run Code Online (Sandbox Code Playgroud)

给出一个像这样的简单结构:

struct Point {
    int x;
    int y;
};
Run Code Online (Sandbox Code Playgroud)

如果我在堆上创建它的实例:

struct Point *center = malloc(sizeof(Point));
assert(center != NULL);
center->x = 0;
center->y = 0;
Run Code Online (Sandbox Code Playgroud)

然后我知道我可以在内存中打印结构的位置,如下所示:

printf("Location: %p\n", (void*)center);
Run Code Online (Sandbox Code Playgroud)

但是如果我在堆栈上创建它呢?

struct Point offCenter = { 1, 1 };
Run Code Online (Sandbox Code Playgroud)

位于堆栈中的值仍然在内存中的某个位置.那么我如何获得这些信息呢?我是否需要创建指向我的新on-the-stack-struct的指针然后使用它?

编辑:哎呀,猜测这有点显而易见.感谢Daniel和Clifford!为了完整性,这里的打印示例使用&:

printf("Location: %p\n", (void*)&center);
Run Code Online (Sandbox Code Playgroud)

c memory

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