我有一个程序,我需要在*nix和windows下运行.因为程序从文件中获取文件路径,所以问题是如何处理\vs /问题.
我目前的想法是放入一个正则表达式,根据我所使用的系统将错误的一个转换为正确的正则表达式.这将使任一类型在任一系统上都起作用.除了现在我有两个问题,有没有人看到任何其他问题?
(其他更好的解决方案非常受欢迎)
编辑:主要问题是让Windows路径在unix上运行而不是相反.
我的问题很像这个问题.但是我在MySQL上,我正在寻找能找到的"最低技术"解决方案.
情况是我有2个数据库应该有相同的数据,但它们主要是在它们无法相互联系时更新的.我怀疑有某种聚类或主/从的东西可以很好地同步它们.然而在我的情况下,这是一个主要的矫枉过正,因为这只是我自己使用的临时数据库.
有什么好办法呢?
我目前的方法是在其中一个上安装一个Federated表,并且经常通过插入/选择将数据通过线路填充到另一个.尝试处理主键有什么问题.(insert ignore似乎无法正常工作)
ps我可以轻松地构建一个选择要传输的行的查询.
我喜欢这样做:
UPDATE table SET blobCol = HTTPGET(urlCol) WHERE whatever LIMIT n;
Run Code Online (Sandbox Code Playgroud)
有代码可以这样做吗?我知道这应该是可能的,因为MySQL Docs包含添加执行DNS查找的功能的示例.
MySQL/windows /最好不用编译东西,但我可以.
(如果你还没有听说过这样的事情,但是如果它确实存在的话,你会期望你会有这样的事情,"原则上不是"会很好.)
编辑:我知道这将打开一个完整的can-o-worms安全性,但在我的情况下,唯一访问数据库是通过mysql控制台应用程序.它不是一个世界可访问的系统.它不是网络后端.它只是一个本地数据记录系统
我知道我可以遍历字符串或构建正则表达式或反转集合(毕竟ASCII不是那么大)并搜索第一个实例,但是Yuck.
我正在寻找的是一个漂亮的衬垫.
更少的功能更好,LINQ出局了(对我来说,不要问,这是一个长篇故事)
我要去的解决方案(除非我看到更好的东西)
static int FirstNotMeta(int i, string str)
{
for(; i < str.Length; i++)
switch(str[i])
{
case '\\':
case '/':
case '.':
continue;
default:
return i;
}
return -1;
}
Run Code Online (Sandbox Code Playgroud)
好吧,我作弊,我事先知道我关心的是什么char.
注意:原始问题没有实际意义,但扫描到底部是否有相关内容.
我有一个我想要优化的查询,看起来像这样:
select cols from tbl where col = "some run time value" limit 1;
Run Code Online (Sandbox Code Playgroud)
我想知道正在使用什么键,但无论我传递什么来解释,它都能够将where子句优化为什么("Impossible WHERE注意到......"),因为我给它一个常量.
编辑:EXPLAIN似乎是给我一个由常量值产生的查询计划.由于查询是存储过程的一部分(并且sproc中的IIRC查询计划在调用之前生成),这对我没有好处,因为该值不是常量.我想要的是找出优化器在不知道实际值是什么时将生成什么查询计划.
我错过了吗?
编辑2:在其他地方询问,似乎MySQL总是重新生成查询计划,除非你不遗余力地重新使用它们.即使在存储过程中.从这看起来我的问题似乎没有实际意义.
然而,这并没有使我真正想知道的事情没有实际意义: 如何优化包含在任何特定查询中不变的值的查询,但我,程序员,事先不知道将使用什么值?- 例如,假设我的客户端代码正在生成一个带有其where子句中的数字的查询.有时这个数字会导致一个不可能的where子句,否则它将不会.如何使用explain来检查查询的优化程度?
我现在看到的最好的方法是EXPLAIN在其上运行存在/不存在的情况的完整矩阵.真的,这不是一个非常好的解决方案,因为手动操作既困难又容易出错.
给定一个表X和一个视图Y(与X具有相同的结构)有一种方法可以将X重命名为Z,将Y重命名为X,这样任何查询都不会看到任何名为X的内容吗?重命名X并创建视图也是有效的.
重点是,作为模式迁移计划的一部分,将旧表替换为模拟新版本旧版本的视图,以便两组客户端代码可以同时运行.
MySQL是我的选择,但其他人的信息也很有用.
例如:
http://stackoverflow.com/questions/698627/ms-access-properties
Run Code Online (Sandbox Code Playgroud)
该数字是URL的一部分,但是是Web应用程序的参数,而不是其他选项,例如:
http://www.google.com/firefox?client=firefox-a&rls=org.mozilla:en-US:official
Run Code Online (Sandbox Code Playgroud)
所有的args都在' ?'之后.我之前使用过第二种形式,我只是想了解第一种形式.
我相信一旦我知道了什么,我就能找到我需要的东西,所以我可以谷歌.
我有一个对象数组.对象中有一个布尔值,我想用它作为一个键来对数组进行排序(所有对象都带有true,所有对象都在false之前),但在其他方面保留相同的顺序.
有一个简单的,就地的O(n)解决方案吗?也许是基数排序的一些变种?
我想要做的是:
class Ba { }
class Da : public Ba {}
class Db : public Ba {}
class Bb // abstract base class that must not be a template.
{
void Process()
{
list<Ba*>::iterator pos;
// I known the derived class will also derive
// from list<Dx*> where Dx derives from Ba
for(pos = this->begin(); pos < this->end(); pos++)
something(*pos);
}
}
template<T> class L : public Bb , list<T*> // T is always derived from Ba
{
}
Run Code Online (Sandbox Code Playgroud)
但那是无效的. …
我找到了这个python插件列表,但我想我会问是否有人对那里列出的任何东西有任何经验?
如果有任何不同,我对python和动态编程语言都是全新的.