小编abe*_*nky的帖子

用C#编程阅读PDF

我看到很多关于使用C#生成PDF文件的问题和答案.
我有一个相关但不同的任务.

我已经创建了大量的PDF文件,我想用正则表达式(RegExs)验证内容的某些部分.我想用C#打开PDF,并能够以接近线性的方式读出文本.

如果页眉,页脚,任何侧边栏等被跳过或读取顺序,则无关紧要.我只是追求尽可能多的主体文本.

你能指出我的工具,库,API等,这将使我能够以编程方式阅读PDF文件中的文本吗?

c# pdf

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

C#循环遍历数组

我正在循环一系列字符串,例如(1/12/1992苹果卡车12/10/10橙色自行车).数组的长度总是可以被3整除.我需要循环遍历数组并抓住前3个项目(我要将它们插入到数据库中),然后抓住接下来的3个,依此类推,直到所有他们已经走了.

//iterate the array
for (int i = 0; i < theData.Length; i++)
{
    //grab 3 items at a time and do db insert, continue until all items are gone. 'theData' will always be divisible by 3.
}
Run Code Online (Sandbox Code Playgroud)

c# arrays loops

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

用变量top-end编写一个bash for-loop

我经常使用众所周知的语法在bash中编写for循环:

for i in {1..10}  [...]
Run Code Online (Sandbox Code Playgroud)

现在,我正在尝试编写一个顶部由变量定义的地方:

TOP=10
for i in {1..$TOP} [...]
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的parens,花括号,评估等,并且通常会收到错误的"错误替换".

如何编写for-loop以使限制取决于变量而不是硬编码值?

unix linux bash for-loop

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

你关注多核吗?

这是不可否认的:多核计算机就在这里.

这就是:高效的多核编程非常困难.这不仅仅是了解pthreads的情况.

这是有争议的:"街头开发者"需要关注他/她自己的这些发展.

您在多大程度上担心必须扩展多核技能?您正在编写的软件是并行化的候选者,如果是,您是否正在做任何教育自己的事情(如果您还不知道这些技术)?或者您是否相信操作系统会处理大部分操作系统,语言运行时会做到这一点,您的应用程序将很乐意坐在一个核心上并让其他人做他们的事情?

multicore

13
推荐指数
6
解决办法
2521
查看次数

你能使增量编译器保持常量吗?

虽然听起来荒谬.....

我想要一个Constant,每次使用它时它会增加1

int x;
int y;
x = INCREMENTING_CONSTANT;
y = INCREMENTING_CONSTANT;
Run Code Online (Sandbox Code Playgroud)

其中x == 1; 和y == 2

注意我不希望y = INCREMENTING_CONSTANT + 1类型的解决方案.

基本上我想用它作为编译时唯一ID(通常它不会在代码中使用,例如在另一个宏中)

c

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

带有Visual Studio 10中的库的PDB文件

.LIB在MS Visual Studio 10中使用调试信息构建静态库()时,.PDB始终会命名vc100.pdb.
(而不是构建一个.DLL调试信息的地方[MyProjectName].pdb)

这对我来说是一个问题,因为我正在尝试将几个不同的库(及其调试符号)复制到一个目录中"PublishedLibraries",但所有vc100.pdb名称显然都会发生冲突.

我确信我可以更改每个的名称.PDB以匹配它.LIB,但对我来说更大的问题是为什么 Visual Studio认为vc100.pdb比一个更好的名字projectA.pdb
如果所有名称冲突,我们如何使用多个库中的Debug Info?

c++ visual-studio-2010 debug-symbols

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

评估数学表达式

我正在寻找一种可以用来评估数学表达式的算法.我已经看到了几个关于SO的问题,但是答案是C#/ Delphi或python特有的.我需要用C编写算法:)

我试图解决的问题是给用户输入,如

3*(2*x + 1)/x
Run Code Online (Sandbox Code Playgroud)

我可以评估任何x值的表达式.

有什么算法可以做到这一点?如果您想建议一个已经这样做的库,那么我更喜欢C库

谢谢

c parsing

12
推荐指数
3
解决办法
7371
查看次数

更改StackPanel中的可见性

我有一个看起来像这样的WPF StackPanel :(删除了一些无关紧要的属性)

<StackPanel HorizontalAlignment="Center" Name="PICStack">
        <Label Name="PICName"  MouseDoubleClick="PICName_MouseDoubleClick" />
        <TextBox Name="PICData" Width="120" Visibility="Hidden" />
        <Label Name="PICWeight" />
        <Label Name="PICARM"    />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

请注意,TextBox以"隐藏"开头.

当我双击顶部标签时,我交换了可见性:

private void PICName_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    this.PICData.Visibility = Visibility.Visible;
    this.PICName.Visibility = Visibility.Hidden;
}
Run Code Online (Sandbox Code Playgroud)

目的是隐藏标签,并使TextBox显示在其位置.

但是,因为它是StackPanel,所以TextBox占用垂直空间,即使它不可见.然后,当文本框显示时,它上面有空白区域,标签以前是可见的.

有没有一种好方法可以让这两个项目基本上直接相互叠加?那么双击Label会突然变成TextBox吗?

wpf visibility stackpanel

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

触发事件的潜在缺点?

Microsoft的事件教程显示了如何在触发之前检查eventfor null:

protected virtual void OnChanged(EventArgs e) 
{
    if (Changed != null)
    {   // Potential Race-condition at this point!
        Changed(this, e);
    }
}
Run Code Online (Sandbox Code Playgroud)

但这会留下一个竞争条件,正如Eric Lippert的博客中所详述的那样,他写道应该通过本地事件触发事件以避免竞争条件:

protected virtual void OnChanged(EventArgs e) 
{
    ChangedEventHandler temp = Changed;  // Local copy of the EventHandler
    if (temp != null)
    {                                    // Race condition avoided by local variable.
        temp(this, e);
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然这很有效,但它让许多错误的开发人员感到困惑,并且不会把它放在本地范围的事件中.


来自DailyCoding的另一个解决方案是始终将事件初始化为具有一个空处理程序,因此永远不需要进行空检查:

// Set with empty delegate, will never be null
public event ChangedEventHandler Changed …
Run Code Online (Sandbox Code Playgroud)

c# events race-condition

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

关于malloc和sizeof的新手问题

有人可以向我解释为什么我对字符串大小为6的malloc的调用返回4字节的sizeof?事实上,我给malloc的任何整数参数我得到sizeof为4.接下来,我试图复制两个字符串.为什么我复制的字符串输出(NULL)?以下是我的代码:

int main()
{
    char * str = "string";
    char * copy = malloc(sizeof(str) + 1);
    printf("bytes allocated for copy: %d\n", sizeof(copy));
    while(*str != '\0'){
        *copy = *str;
        str++;
        copy++;
    }
    copy = '\0';
    printf("%s\n", copy);
}
Run Code Online (Sandbox Code Playgroud)

c malloc sizeof

10
推荐指数
2
解决办法
6476
查看次数