小编Joh*_*ohn的帖子

C#vs C - 性能差异很大

我发现C anc C#中类似代码之间存在巨大的性能差异.

C代码是:

#include <stdio.h>
#include <time.h>
#include <math.h>

main()
{
    int i;
    double root;

    clock_t start = clock();
    for (i = 0 ; i <= 100000000; i++){
        root = sqrt(i);
    }
    printf("Time elapsed: %f\n", ((double)clock() - start) / CLOCKS_PER_SEC);   

}
Run Code Online (Sandbox Code Playgroud)

而C#(控制台应用程序)是:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime startTime = DateTime.Now;
            double root;
            for (int i = 0; i <= 100000000; i++)
            {
                root = Math.Sqrt(i);
            } …
Run Code Online (Sandbox Code Playgroud)

c c# performance

92
推荐指数
10
解决办法
8万
查看次数

如何使用带有cURL的响应头文件名保存文件

此问题与cURL的命令行版本有关.

我正在尝试从cgi脚本下载文件.

HTTP://someserver/perl/dl.pl ID = 2

使用浏览器,文件名为'remotefilename.gz'cURL想要将文件保存为'dl.pl?ID=2'

如何让cURL保存到响应头中带有文件名的文件?

curl

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

SQL SUBSTRING vs RIGHT - 最佳实践

我正在尝试从字符串的开头删除字符时找出最佳做法.

在某些语言中,您可以使用不带长度参数的MID,但是在TSQL中需要长度.

考虑以下代码,最佳做法是什么?(十六进制字符串是可变长度)

DECLARE @sHex VARCHAR(66)
SET @sHex = '0x7E260F3DA734AD4BD816B88F485CE501D843DF067C8EDCB8AC7DAD331852E04D'

PRINT RIGHT(@sHex,LEN(@sHex) -2)
PRINT SUBSTRING(@sHex,3,LEN(@sHex) -2)
PRINT SUBSTRING(@sHex,3,65535)
Run Code Online (Sandbox Code Playgroud)

sql t-sql string

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

计算3D中两条线(线段)之间的最短距离

我有两个线段:X1,Y1,Z1 - X2,Y2,Z2和X3,Y3,Z3 - X4,Y4,Z4

我试图找到两个段之间的最短距离.

我一直在寻找一个解决方案几个小时,但所有这些解决方案似乎都使​​用线条而不是线段.

任何想法如何去做,或任何来源的furmulae?

algorithm geometry

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

MS Access中是否有回车符,换行符?

一个简单的问题,我的头脑......

我有一个大型访问数据库来清理.

Access中的换行符是否有系统常量(如VB的VBCrLf)?

如果没有,我想我只需要使用Chr(13)+ Chr(10)

ms-access

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

我将如何实施此算法?

不久前,我试图强行发送一个12位二进制"密钥"的遥控器.

我制作的设备工作,但速度非常慢,因为它以每秒约50位的速度尝试每个组合(4096个代码= 49152位= ~16分钟)

我打开接收器,发现它使用移位寄存器检查代码,尝试之间不需要延迟.这意味着接收器只是查看要接收的最后12位,看它们是否与密钥匹配.

这意味着如果流111111111111000000000000被发送,它已经有效地尝试了所有这些代码.

111111111111    111111111110    111111111100    111111111000
111111110000    111111100000    111111000000    111110000000
111100000000    111000000000    110000000000    100000000000
000000000000
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我使用了24位来尝试13个12位组合(> 90%压缩).

有没有人知道一种算法可以通过利用这个来减少我发送的49152位?

compression algorithm brute-force

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

EPS在C中意味着什么?

我有以下代码片段:

if (ABS(p43.x)  < EPS && ABS(p43.y)  < EPS && ABS(p43.z)  < EPS) return(FALSE);
Run Code Online (Sandbox Code Playgroud)

我正在尝试转换为C#."EPS"是什么意思?

此代码来自http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline3d/

c eps

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

谷歌Chrome textareas包装和添加换行符

我在谷歌Chrome中遇到了textarea的问题.我使用的是经典的ASP,但这并不重要,因为Chrome实际上错误地发布了数据.

问题在于文本区域.一旦文本字符串太长而无法容纳文本区域的一行,它就会换行到下一行(就像它应该的那样).

我的问题是,提交时,表单数据在文本包装的每个位置包含CarriageReturn和LineFeed,以及用户生成的回车/返回事件 - 我甚至无法分辨两者之间的区别.

有谁知道如何解决这一问题?可能是文本区域中的一个选项还是什么?所有其他浏览器只添加最终用户实际放入的CarriageReturns和LineFeeds.

textarea google-chrome

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

C#中结构中的多维数组

我正在尝试将以下内容(缩短为了可读性)转换为C#并遇到问题

#define DISTMAX 10
struct Distort {
  int    a_order;
  double a[DISTMAX][DISTMAX];
};
Run Code Online (Sandbox Code Playgroud)

我认为在结构中这是一个使用"固定"的简单情况,但我仍然遇到问题.

这就是我所拥有的(在页面上方定义更高):

const int DISTMAX = 10;
struct Distort
{
        int a_order;
        fixed double a[DISTMAX,DISTMAX];
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是语法错误,而且[由于我期望的是单个维度数组的限制,因此是预期的.

有没有解决的办法?

c# arrays multidimensional-array

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

NSIS CreateShortcut坚持使用%ProgramFiles%作为图标路径

我有以下NSIS代码

Function CreateDesktopSC
    ;Creates Desktop Shortcut
    SetShellVarContext current
    SetOutPath "$DOCUMENTS\Foo\"
    SetShellVarContext all
    detailprint "Icon path: $INSTDIR\Bar\icon.ico"
    CreateShortCut "$DESKTOP\${productName}.lnk" "$INSTDIR\Bar\binary.exe" "" "$INSTDIR\Bar\icon.ico" 0
FunctionEnd
Run Code Online (Sandbox Code Playgroud)

安装日志显示以下内容(来自detailprint命令)图标路径:C:\ Program Files(x86)\ Bar\icon.ico

创建快捷方式,但使用可执行文件中的图标.

如果我打开lnk文件或右键单击快捷方式并单击"更改图标...",我收到错误"Windows无法找到文件%ProgramFiles%\ Bar\icon.ico".

如果我浏览到%ProgramFiles%,它会转到c:\ Program Files,而不是详细打印命令中显示的x86版本.图标文件存在,但在x86文件夹中.

似乎NSIS或Windows正在用"%ProgramFiles%"替换"C:\ Program Files(x86)\",它不指向x86版本.

可执行文件的实际路径是正确的,它只是图标链接不正确.

有任何想法吗?

icons nsis filepath

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

在基于时间的线图上绘制布尔值

我正在绘制一个基于时间的线图,并想向其中添加一个布尔数据系列。

是否可以让布尔数据突出显示值为 true 的图形画布的整个高度?

绘图文件:

set datafile separator ","
set terminal pngcairo size 800,400
set title "Solar charge monitor"
set yrange [0:]
set ylabel "V"
set y2range [0:]
set y2label "A"
set y2tics
set xlabel "Date"
set xdata time
set timefmt "%Y-%m-%dT%H:%M:%SZ"
set key left top
set grid
set output "samplePlot.png"
plot "sampleData.csv" using 1:2 with lines lw 2 title 'Batt (V)', \
     "sampleData.csv" using 1:3 with lines lw 2 title 'Solar (V)', \
     "sampleData.csv" using 1:4 with lines lw …
Run Code Online (Sandbox Code Playgroud)

gnuplot

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

在T-SQL OPENJSON查询中转义字符

我有以下JSON数据

DECLARE @jsonData NVARCHAR(MAX)
SET @jsonData =
'{  
   "insertions":[  
      {  
         "id":"58735A79-DEA8-462B-B3EB-C2797CA9D44E",
         "last-modified":"2017-08-08 13:07:32",
         "label":"HelloWorld1"
      },
      {  
         "id":"00565BCD-4240-46CF-A48F-849CB5A8114F",
         "last-modified":"2017-08-08 13:11:38",
         "label":"HelloWorld12"
      }
   ]
}'
Run Code Online (Sandbox Code Playgroud)

并尝试从中执行选择:

SELECT
    *
FROM
    OPENJSON(JSON_QUERY(@jsonData,'$.insertions'))
WITH
    (uuid UNIQUEIDENTIFIER '$.id',
    modified DATETIME '$.last-modified',
    Label NVARCHAR(128) '$.label'
    )
Run Code Online (Sandbox Code Playgroud)

它不喜欢最后修改字段中的破折号.

消息13607,级别16,状态4,行18
JSON路径格式不正确.在位置6处找到意外的字符" - ".

有没有办法逃避查询中的破折号?如果没有破折号,一切正常.

根据需要支持JSON,我使用兼容级别= 130的SQL Server 2016

sql t-sql json escaping sql-server-2016

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

使用提升的凭据安装Tortoise SVN

我正在尝试在用户不是管理员的Windows PC上安装TortoiseSVN(Ver:1.6.1.16129).

安装程序是一个msi文件,默认情况下,没有"运行方式"选项.

我试过了两个:

msiexec /a "{PATH}\TortoiseSVN-1.6.1.16129-win32-svn-1.6.1.msi"
Run Code Online (Sandbox Code Playgroud)

runas /user:username "msiexec /a {PATH}\TortoiseSVN-1.6.1.16129-win32-svn-1.6.1.msi"
Run Code Online (Sandbox Code Playgroud)

在安装程序启动时运行以上任一结果,然后第一个对话框有一个神秘的消息:"请指定Tortoise SVN 1.6的服务器映像的网络位置...."

当管理员用户运行相同的msi文件时,安装程​​序将按预期进行.

有没有其他人有这个问题?你找到了解决方法吗?

svn tortoisesvn elevated-privileges

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