自从微软停止支持嵌入式Visual C++ 4.0(eVC 4)以来,它已经有一段时间了,并且它们不允许您使用带有VS 2008的Express版本的Windows Mobile SDK.现在,我很好,因为我获得了MSDN许可证通过工作(包括VS 2008专业版),但我想开展几个开源项目,并不是所有其他贡献开发人员都如此幸运.结果,他们坚持使用eVC,即使它在Vista上根本不运行.
这里有(免费!)共同点吗?一个IDE,它将构建在XP和Vista上运行的MFC(和/或.NET!)应用程序?它本身并不一定是花哨的,但它拥有的VS级别的细节越多,我认为我们都会更喜欢它.
对于廉价商品的建议也是受欢迎的,当然最好的选择是开源,特别是跨平台.我认为MS正在通过阻止这样的开发对WM OS造成严重损害.
我想一次一行地遍历一个文本文件,对内容进行操作,并将结果流式传输到一个单独的文件中。的教科书案例BufferedReader.readLine()
。
但是:我需要用换行符将我的行粘在一起,如果原始文件没有适用于我的平台的“正确”换行符(Linux 上的 DOS 文件,反之亦然)怎么办?我想我可以在流中提前阅读一下,看看我找到了什么样的行尾,即使那真的很糟糕。
但是:假设我的输入文件没有尾随换行符。我想让事情保持原样。现在我需要在阅读每一行之前先看下一行结尾。在这一点上,为什么我要使用一个完全给我的readLine()
课程?
这似乎应该是一个已解决的问题。是否有一个库(或者甚至更好的核心 Java7 类!)可以让我调用一个类似于readLine()
从流中返回一行文本的方法,并且EOL 字符完好无损?
我想捕获一个函数的编译时参数结构,该结构可以在具有相似签名的多个函数定义中重用。我认为这可能是沿着线的这个TS问题也许更具体的这一个,但我不知道我的使用情况不一定行了这些提案,所以它可能是可能做到这一点在目前的打字稿。我想做的是这样的:
type FooArgs = ?{x: string, y: number}?; // syntax?
class MyEmitter extends EventEmitter {
on(event: "foo", (...args: ...FooArgs) => void): this;
emit(event: "foo", ...args: ...FooArgs): boolean;
}
Run Code Online (Sandbox Code Playgroud)
这可能不是最明智的方法。我也很高兴学习将“一种方法”的参数列表“复制”到另一种方法的其他方法:
class MyEmitter extends EventEmitter {
emit(event: "foo", x: string, y: number): boolean;
on(event: "foo", (argumentsof(MyEmitter.emit)) => void): this;
}
Run Code Online (Sandbox Code Playgroud)
但我认为不存在任何此类关键字/内置关键字。
顺便说一句,我尝试了一种类似于本文早期示例的方法,但是即使使用了稍后描述的所有复杂类型操作,该方法也只允许发出零个或一个参数的事件。我希望对于这种有限的用例,可能会有更聪明的方法。
我有一个已minlength
定义的文本输入。当用户输入文本时,输入的validity
状态会立即更新。如果我更改代码中的值,则有效性状态将重置为有效——即使违反了约束,validity.valid
也是如此。
const input = document.getElementById("input");
const label = document.getElementById("label");
document.getElementById("rightButton").addEventListener("click", evt => {
input.value = "ABCDE";
});
document.getElementById("wrongButton").addEventListener("click", evt => {
input.value = "AB";
});
setInterval(() => label.innerHTML = input.validity.valid, 250);
Run Code Online (Sandbox Code Playgroud)
<input type="text" id="input" minlength="4">
<span id="label"></span>
<hr/>
<button id="rightButton">Make It Right</button>
<button id="wrongButton">Make It Wrong</button>
Run Code Online (Sandbox Code Playgroud)
为什么在分配给 时不运行自动有效性检查input.value
?这是在某处记录的吗?有没有我可以调用的方法来触发浏览器的内部验证过程,而不必自己进行检查和调用setCustomValidity
?
我问了另一个关于角色和权限的问题,这些问题主要是为了揭示我的无知.另一个结果是建议人们通常应该远离对"公共"角色的权限.
好的,很好,但是如果我已经这样做并且想要为自定义/"灵活"角色重新分配相同的权限,那么最好的方法是什么?到目前为止我所做的是运行Scripting向导,并告诉它在没有CREATE或DROP的情况下编写脚本对象权限,然后运行一个find-replace以便最终结束"GRANT DELETE on [dbo.tablename] TO [newRole]"
.它完成了工作,但我觉得它可以更漂亮/更容易.任何"最佳实践"建议?
我有一个在系统启动时运行的应用程序需要与本地SQL Server 2005安装进行通信.我正在使用ServiceController类来等待它进入"运行"状态,并且大多数情况下这都可以正常工作.但是,有时在冷启动时,我的第一个查询失败,说它无法登录当前用户.
这听起来像一个竞争条件,但我认为我的WaitForStatus调用应该解决它.
有没有更好的方法来确保它真正真正运行?我应该多加一点睡眠并假设它足够长吗?
MySQL 手册说我可以使用 打印用于定义存储过程的代码SHOW CREATE PROCEDURE
,但显然只有当您 a) 对表具有选择权限mysql.proc
,或 b) 拥有该过程时,这才有效。
有问题的数据库是由一位已经离职的同事维护的,所以我应该是所有曾经属于“他的”的东西的所有者。唯一的问题是,我似乎找不到任何有关如何更改数据库中所有者的文档- 大多数 Google 搜索都指向如何更改文件所有权(这当然是基本的通用系统管理任务)。
指出了一个地方sp_changeobjectownership
,但看起来他们可能不小心尝试使用 MS SQL Server 存储过程。有没有简单的方法可以说“将 [user1] 拥有的 [database] 中的所有对象更改为 [user2] 拥有”?如果做不到这一点,我将采取命令来更改单个对象的所有者......
我想在Ruby模块中放置一个方法,以便可以使用简单的语法从类方法或实例方法调用它:
module MyMod
def fmt *args
args.map { | a | "You said #{a}" }
end
end
class MyClass
include MyMod
def inst
puts fmt 1,2,3
end
def self.cls
puts fmt 4,5,6
end
end
Run Code Online (Sandbox Code Playgroud)
上面的方法不起作用,因为类method(cls
)无法看到实例方法fmt.如果我将定义更改为self.fmt
,则实例方法必须将其作为调用MyMod.fmt
.
我希望能够fmt (some stuff)
从这两种方法中调用.这样做有"ruby-ish"方式吗?我可以将模块定义为
module MyMod
def self.fmt *args
args.map { | a | "You said #{a}" }
end
def fmt *args
MyMod.fmt args
end
end
Run Code Online (Sandbox Code Playgroud)
但那不是很干,是吗?有更简单的方法吗?
我想将base64编码的数据写入文件,即时解码.我有
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(
new Base64OutputStream(
new FileOutputStream(myFile, false)));
Run Code Online (Sandbox Code Playgroud)
我认为这是有效的,在我的finally
块中我调用bw.close()
- 也就是说,关闭最外面的包装器.这还不够,还是一些匿名的中间对象会泄漏?
我尝试查看代码但是我遇到了Sun的OutputStreamWriter编码处理程序的专有实现.它似乎也没有在文档中明确说明.
我有一个 Angular 服务,它使用另一个服务在页面加载之间保留一些数据:
@Service({providedIn: "root"})
class PersistenceService {
save(key: string, value: string) { ... }
load(key: string): string { ... }
}
@Service({providedIn: "root"})
class DataService {
user?: string;
constructor(private persistence: PersistenceService) {}
init() { this.user = this.persistence.load("user"); }
setUser(str: string) {
this.user = str;
this.persistence.save("user", str);
}
}
Run Code Online (Sandbox Code Playgroud)
当我想测试时DataService
,我注入一个已存根的 Spy 以PersistenceService
使用 AngularTestBed
类:
beforeEach(() => {
fakeValues = {};
persistence = jasmine.createSpyObj("PersistenceService", ["save", "load"]);
persistence.load.and.callFake(key => fakeValues[key]);
TestBed.configureTestingModule({
providers: [
DataService,
{provide: PersistenceService, useValue: …
Run Code Online (Sandbox Code Playgroud) java ×2
sql-server ×2
angular ×1
c# ×1
html ×1
ide ×1
inputstream ×1
javascript ×1
line-endings ×1
mixins ×1
module ×1
mysql ×1
open-source ×1
ownership ×1
permissions ×1
ruby ×1
scripting ×1
service ×1
stream ×1
typescript ×1
unit-testing ×1
validation ×1