问题列表 - 第10620页

您可以使用哪种语言动态地重写功能?

我最近有必要动态地在javascript中重写javascript函数.我做的很容易,而且有多么有趣,让我很震惊.

在这里我有一些HTML:

<div id="excelExport1234" 
     onclick="if(somestuff) location.href='http://server/excelExport.aspx?id=56789&something=else'; else alert('not important');"
  >Click here to export to excel</div>
Run Code Online (Sandbox Code Playgroud)

我无法更改输出的HTML,但我需要为该链接添加一个额外的参数.我开始考虑它,并意识到我可以这样做:

excelExport = $('excelExport1234');
if (needParam)
        eval('excelExport.onclick = ' + excelExport.onclick.toString().replace("excelReport.aspx?id", "excelReport.aspx?extraParam=true&id") + ';');
else
        eval('excelExport.onclick = ' + excelExport.onclick.toString().replace("extraParam=true&", "") + ';');
Run Code Online (Sandbox Code Playgroud)

它就像一个冠军!excelExport.onclick返回一个函数对象,我将其转换为字符串,然后执行一些字符串操作.由于它现在采用"function(){...}"的形式,我只需返回并将其分配给dom对象的onclick事件.不得不使用eval有点难看,但是AFAIK没有一个javascript函数构造函数可以接受一串代码并很好地将它变成一个对象.

无论如何,我的观点并不是我非常聪明(我不是),我的观点是这很酷.我知道javascript不是唯一可以做到这一点的语言.我听说过lisp为了这个目的已经有多年的宏了.除了真正的grok宏你需要真正grok lisp,我不会理解它,我只是'得到它'.

所以我的问题是:在其他语言中你能(轻松地)动态地重写函数,你能告诉我一个简单的例子吗? 我想看看你能做到的其他地方,以及它是如何完成的!

(另外,我不知道该怎么标记,所以我随机猜测)

lisp programming-languages dynamic-languages

5
推荐指数
2
解决办法
869
查看次数

如何将套接字动态绑定到一个网络接口?

目前,我执行以下操作来侦听所有接口上的任何可用端口:

// hints struct for the getaddrinfo call
struct addrinfo hints, *res;
memset(&hints, 0, sizeof hints);
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE;

// Fill in addrinfo with getaddrinfo
if (getaddrinfo(NULL, "0", &hints, &res) != 0) {
    cerr << "Couldn't getaddrinfo." << endl;
    exit(-1);
}
Run Code Online (Sandbox Code Playgroud)

我只想动态绑定到一个接口,即系统的非环回接口。

我该怎么做呢?

c c++ sockets bind

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

C程序执行速度

我的考试主题是编程语言的主要问题.我想了很久但我还是不明白这个问题

问题:下面是一个程序C,它在配置为~CPU Intel 1.8GHz,Ram 512MB的PC上的MSVC++ 6.0环境中执行

#define M 10000
#define N 5000
int a[M][N];

void main() {
    int i, j;
    time_t start, stop;

    // Part A
    start = time(0);
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
            a[i][j] = 0;
    stop = time(0);
    printf("%d\n", stop - start);

    // Part B
    start = time(0);
    for (j = 0; j < N; j++)
        for (i = 0; i < M; i++)
            a[i][j] = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ programming-languages

8
推荐指数
4
解决办法
1521
查看次数

删除XSLT字符串中的最后一个字符

在我的CMS中,可以创建新文章,并选择要在该文章上显示的图像.选择图像时,也会自动创建图像的缩略图.

如果上传的图像名为image.jpg,则相应的缩略图将自动命名为image_thumbnail.jpg.

我现在想在提到文章的网站上的任何地方使用缩略图,除了文章本身(应该显示原始大图像).

但是我该怎么做呢?

我想如果我能得到的图像的原始名称,然后后缀(之前它分解.jpg,.png,.jpeg等)和硬编码_thumbnail的名称后,那么这将是足够的.

换句话说,我想获取完整的文件名,并将其分成两部分,以便我可以_thumbnail在两部分之间插入字符串.

也许这会起作用,但如果上传了一个名为image.2horses.jpg(文件名中包含多个点的文件)的图像呢?'.'之前的天真切口.不会在这里工作.

有办法解决这个问题吗?也许通过在最后4(.jpg,.png)或5(.jpeg)字符之前剪切文件名?

xslt image

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

如何判断一条线是否与C#中的多边形相交?

我有一个非常类似的问题:

如何知道一条线是否与C#中的平面相交?

我正在寻找一种方法(在C#中),它告诉一条线是否与任意多边形相交.

我认为Chris Marasti-Georg算法非常有用,但缺少最重要的方法,即线对线交叉.

有没有人知道一个线交叉方法来完成Chris Marasti-Georg的代码或有类似的东西?

在C#中是否有内置代码?

此方法适用于使用禁区功能增强的Bing Maps算法.生成的路径不得通过禁区(任意多边形).

c# geometry 2d bing-maps computational-geometry

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

如何剥离Oracle中的前导空格?

我需要从Oracle中的列中删除前导空格.我用谷歌搜索但没有找到任何答案,除了写我自己的功能,我想避免.

最简单的方法是什么?

sql oracle

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

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

如何停止ContextMenuStrip中的项目特别处理&符号?

我有一个ContextMenuStrip显示可由用户命名的项目; 允许用户提供包含&符号的项目名称.当ContextMenuStrip显示时,项目'将&符号视为转义序列,并为下一个字符加下划线.

在设置项目Text成员之前,我可以将所有&符号加倍,但该成员在代码中的其他地方使用,所以如果可能的话,我想停止ContextMenuStrip特别处理&符号.有没有办法扭转这种行为?

c# contextmenustrip winforms

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

我无法删除Windows上的本地svn工作目录

我想删除我的本地工作副本(没有服务器更改),我收到以下错误:

无法删除dir-prop-base:访问被拒绝

确保磁盘未满或写保护,并且该文件当前未在使用中.

我尝试过使用Unlocker,但是它说没有进程可以处理这个问题,当我从解锁器中选择"删除"操作时,没有任何反应.

有什么建议?

svn tortoisesvn

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

学习您不会使用的语言的好处

我已经读了很多时间,学习Haskell,Lisp或Smalltalk等语言会以某种方式让你成为一个更好的程序员,而你用其他语言编程.

这个说法不仅仅是轶事证据吗?或者它是人们合理化花费大量时间学习他们永远不会使用的编程语言的方式?

programming-languages

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