找出在真实浏览器中选择的内容非常简单:
var range = {
start: textbox.selectionStart,
end: textbox.selectionEnd
}
Run Code Online (Sandbox Code Playgroud)
但IE像往常一样,不明白.什么是最好的跨浏览器方式?
我似乎无法在Linux的gcc上找到_findfirst/findfirst,_findnext/findnext API,如果它包含在那里,实际上更愿意使用标准模板库(STL).
有谁知道在Linux for C++(gcc)下的目录中列出文件的API是什么?
Python对环境变量的访问并不能准确反映操作系统对进程环境的看法.
在特定情况下,os.getenv和os.environ没有按预期运行.
有没有办法正确地获得正在运行的进程环境?
为了证明我的意思,拿两个大致相同的程序(第一个在C中,另一个在python中):
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char *argv[]){
char *env;
for(;;){
env = getenv("SOME_VARIABLE");
if(env)
puts(env);
sleep(5);
}
}
Run Code Online (Sandbox Code Playgroud)
import os
import time
while True:
env = os.getenv("SOME_VARIABLE")
if env is not None:
print env
time.sleep(5)
Run Code Online (Sandbox Code Playgroud)
现在,如果我们运行C程序并使用gdb附加到正在运行的进程并通过执行以下操作强制更改引擎环境:
(gdb) print setenv("SOME_VARIABLE", "my value", 1)
[Switching to Thread -1208600896 (LWP 16163)]
$1 = 0
(gdb) print (char *)getenv("SOME_VARIABLE")
$2 = 0x8293126 "my value"
Run Code Online (Sandbox Code Playgroud)
那么前面提到的C程序将每5秒开始喷出一次"我的价值".然而,前面提到的python程序不会.
在这种情况下,有没有办法让python程序像C程序一样运行?
(是的,我意识到这是一个在运行过程中执行的非常模糊且可能具有破坏性的操作)
此外,我目前正在使用python 2.4,这可能已在更高版本的python中修复.
给出以下文件:
department=value1
location=valueA
location=valueB
department=value2
Run Code Online (Sandbox Code Playgroud)
我使用以下内容将文件加载到Perl哈希:
use File::Slurp;
use Data::Dumper;
my %hash = map {
s/#.*//;
s/^\s+//;
s/\s+$//;
m/(.*?)\s*=\s*(.*)/;
} read_file($file);
print Dumper(\%hash);
Run Code Online (Sandbox Code Playgroud)
但结果如下:
$VAR1 = {
'location' => 'valueB',
'department' => 'value2'
};
Run Code Online (Sandbox Code Playgroud)
如何将上述文件加载到哈希中,比方说,
$VAR1 = {
'location' => 'valueA,valueB',
'department' => 'value1,value2'
};
Run Code Online (Sandbox Code Playgroud)
谢谢.
我觉得我在Vim中做80列指示的方式不正确:set columns=80.有时我也是,set textwidth但我希望能够看到并预测线路溢出的set columns替代方案.
这有一些不幸的副作用 - 我不能set number因为害怕在具有不同行号顺序的文件之间进行拆分; 即<100行文件和> = 100行文件将需要两个不同的set columns值,因为附加数字显示使用了额外的列.我也开始新的(g)Vim会话而不是垂直分割窗口,这迫使我使用窗口管理器的剪贴板 - 每次打开或关闭窗格时都vsplit强制我这样做set columns,所以开始一个新的会话就不那么麻烦了.
当你想要set numbers,垂直分割等时,你如何处理80个字符的指示?
string [] files = new string[2];
files[0] = "ThinkFarAhead.Example.Settings.Configuration_Local.xml";
files[1] = "ThinkFarAhead.Example.Settings.Configuration_Global.xml";
//Resharper complains this is an "access to modified closure"
for (int i = 0; i < files.Length; i++ )
{
// Resharper disable AccessToModifiedClosure
if(Array.Exists(Assembly.GetExecutingAssembly().GetManifestResourceNames(),
delegate(string name) { return name.Equals(files[i]); }))
return Assembly.GetExecutingAssembly().GetManifestResourceStream(files[i]);
// ReSharper restore AccessToModifiedClosure
}
Run Code Online (Sandbox Code Playgroud)
虽然ReSharper抱怨这是"访问修改后的闭包",但上述情况似乎工作正常.任何人都可以阐明这一点吗?
(这个主题在这里继续)
对于我正在使用的GAE应用程序,我想知道实现我自己的会话(更多用于练习而不是其他任何事情)......起初我正在考虑使用数据存储来存储会话数据.但是,每次需要将某些内容添加到会话"存储桶"时,都需要保存到数据存储区.显然这很糟糕,因为我们希望最小化写入.然后我想到使用memcache ......似乎是一个好主意,但后来我们面临着由于memcache被"内存压力驱逐"而导致会话损坏的问题.那么这是否意味着我们只剩下以下选项:
有没有其他想法?
使用PHP验证crontab条目的最佳方法是什么?我应该使用正则表达式还是外部库?我有一个PHP脚本,用于添加/删除crontab文件中的条目,但希望能够通过某种方式验证时间间隔部分是否为有效格式.