我正在写一个文本编辑器,需要提供一个实时字数.现在我正在使用这个扩展方法:
public static int WordCount(this string s)
{
s = s.TrimEnd();
if (String.IsNullOrEmpty(s)) return 0;
int count = 0;
bool lastWasWordChar = false;
foreach (char c in s)
{
if (Char.IsLetterOrDigit(c) || c == '_' || c == '\'' || c == '-')
{
lastWasWordChar = true;
continue;
}
if (lastWasWordChar)
{
lastWasWordChar = false;
count++;
}
}
if (!lastWasWordChar) count--;
return count + 1;
}
Run Code Online (Sandbox Code Playgroud)
我设置它使得单词count在每十分之一秒运行在richtextbox的文本上(如果选择开始不同于上次方法运行时).问题是当处理很长的文件时,字数会变慢.为了解决这个问题,我正在考虑只在当前段落上运行单词count,每次记录单词计数,并将其与上次单词计数运行时的单词计数进行比较.然后它会将两者之间的差异添加到总字数中.这样做会导致许多复杂情况(如果用户粘贴,如果用户删除了一个段落,等等.)这是一种合理的方法来改善我的字数吗?或者有哪些我不知道哪些会让它变得更好?
编辑:它可以在不同的线程上运行字数吗?我不太了解线程,会研究.
我使用的示例文本:
我正在编写一段c#代码,用于启动安装程序并在继续执行其他操作之前等待它返回.
我遇到某些安装程序出现问题,这些安装程序在安装实际完成之前返回原始进程的其他进程.有什么方法可以等到所有过程完成后?
为了澄清这里我遇到麻烦的情况:
这是我目前正在使用的代码:
// launch installer
Process process = windowsApplicationLauncher.LaunchApplication(_localFilePath);
// wait for process to return
do
{
if (!process.HasExited)
{
}
}
while (!process.WaitForExit(1000));
if (process.ExitCode == 0)
{
_fileService.MoveFile(_localFilePath, _postInstallFilePath);
_notification.SetComplete(false);
return true;
}
return false;
Run Code Online (Sandbox Code Playgroud) 我想在JavaScript中创建一个XML文档,然后出现一个保存对话框.
到目前为止,我看到的唯一想法是将XML保存到iframe并保存该文档 - 但似乎你只能在IE中执行此操作?此外,我可以构建一个数据URI并将其放在一个链接中.我担心的是它只会在窗口中打开XML文件,而不是提示用户保存它.
我知道如果我要求JavaScript是本地的,我可以提高权限并直接保存文件(或者希望导致出现保存对话框).但是,我更喜欢一个我不需要提升权限的解决方案(即使只有Firefox 3.6解决方案).
如果这会冒犯任何人的敏感性(例如,不支持每个浏览器),我会道歉.我基本上想要编写一个离线应用程序,考虑到需求的复杂性和可用的时间,Javascript/HTML/CSS似乎是最佳候选者.但是,我有这个能够保存必须克服的数据的单一要求,然后才能选择这条开发线.
如果我使用PHP Web框架(如CodeIgniter)编写一个hello world应用程序,然后我编译它并使用HipHop运行它.它会比我在django或rails中编写相同的hello world应用程序运行得更快吗?
请不要打我的脸!我知道这在好的设计面前飞得很快,但我只是在写一个测试页来展示一些东西.我们的webapp模块(正确)无法直接访问我们的域类.我不想在JSP之外创建一个完整的类,因为该页面仅用于演示目的,并且我不想出于同样的原因编写大量无关的代码.我试图在JSP中以通常的方式定义一个类,但这不起作用(抛出了很多编译时错误).这是一个快速肮脏的,一次性的交易(一旦我完成,我将摆脱它).我想知道这是否可行.如果没有,那么我将走很长的路.
<%
public class Person {
private int id;
private int age;
private String name;
/*
... ctor and getters and setters
*/
}
%>
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
convert-jsp-to-java:
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
An error occurred at line: 57 in the generated java file
Syntax error on token "class", invalid VariableDeclarator
An error occurred at line: 73 in the generated java file
The return type is incompatible with Object.getClass()
An error occurred at line: 74 in the generated java …Run Code Online (Sandbox Code Playgroud) 我意识到这可能是主观的,所以会问一个具体的问题,但首先,背景:
我一直是一名嵌入式软件工程师,但通常在OSI堆栈的第3层或第2层.我不是一个硬件家伙.我一般都经常使用电信产品,通常是手机/手机,这通常意味着像ARM 7处理器.
现在我发现自己处于一个更通用的嵌入式世界中,在一个小型的初创公司中,我可能会转向"不那么强大"的处理器(这是主观位) - 我无法预测哪个.
我已经阅读了很多关于嵌入式系统中C++异常处理的争论,并没有明确的答案.有一些关于可移植性的小担忧和一些关于运行时的担忧,但它似乎主要归结为代码大小(或者我正在阅读错误的辩论?).
现在我必须决定是否使用或放弃异常处理 - 对于整个公司,永远(它将进入一些非常核心的s/w).
这可能听起来像"一根绳子有多长",但有人可能会回答"如果你的琴弦是8051,那就不要.如果,OTOH,那就是......".
我跳哪个方向?超级安全,失去一个好的功能,或特殊的代码,可能会在以后遇到问题?
我刚刚在Amazon RDS服务上创建了我的第一个数据库实例.我在想...
1)有没有办法让Amazon自动备份我的数据,即使实例被删除也会持续存在?
2)是否可以跨多个实例共享表?
3)当我第一次连接到实例时,我发现有三个数据库:我专门创建的数据库,innob和mysql.我应该继续使用我创建的那个还是其他一个?有成本影响吗?
谢谢.
我原本以为我在整个视图控制器模型上实际上有一个很好的处理,但对我来说似乎没有什么意义.我的主要问题是添加自定义UIView子类作为UIViewController子类的属性.
每当我将UIView子类的有效实例分配给该属性时,没有任何反应或代码崩溃.
这是一个快速概述:
addSubview:ivar等将这个UIView子类添加到主控制器中.那里没有问题...但是...如果我想将这个自定义UIView作为ViewController 的属性,那似乎不起作用.任何人都能解释一下吗?
这是一个代码摘要:
@interface CustomUIView : UIView { }
Run Code Online (Sandbox Code Playgroud)
.
@interface MainViewController : UIViewController {
CustomUIView *someOtherView;
}
@property (nonatomic, copy) CustomUIView *someOtherView;
Run Code Online (Sandbox Code Playgroud)
...
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor greenColor]; // the default controller view
CustomUIView *tmpView = [[CustomUIView alloc] initWithFrame:CGRectMake(0,0,320,480)];
[self.view addSubview:tmpView]; // this works
self.someOtherView = tmpView; // this does NOT work and
self.view = self.someOtherView; // ultimately, this is what i'm after
[tmpView …Run Code Online (Sandbox Code Playgroud) 我一直是一名嵌入式软件工程师,但通常在OSI堆栈的第3层或第2层.我不是一个硬件家伙.我一般都经常使用电信产品,通常是手机/手机,这通常意味着像ARM 7处理器.
现在我发现自己处于一个更通用的嵌入式世界中,在一个小型的初创公司中,我可能会转向"不那么强大"的处理器(这是主观位) - 我无法预测哪个.
我已经阅读了很多关于在嵌入式系统中使用C++在C++中的争论,而且没有明确的答案.有一些关于可移植性的小担忧,还有一些关于代码大小或运行时的问题,但我有两个主要问题:
1 - 异常处理; 我仍然不确定是否使用它(参见嵌入式C++:是否使用异常?)
2 - 我非常不喜欢嵌入式系统中的动态内存分配,因为它可能会引入问题.我通常有一个缓冲池,它在编译时静态分配,只提供固定大小的缓冲区(如果没有缓冲区,系统复位).当然,STL会进行大量的动态分配.
现在我必须决定是否使用或放弃STL - 对于整个公司,永远(它进入一些非常核心的s/w).
我跳哪个方向?超级安全并且失去了很多构成C++的东西(imo,它不仅仅是语言定义),可能会在以后遇到问题,或者现在必须添加大量的异常处理和其他一些代码?
我很想和Boost一起去,但是1)我不确定它是否会移植到我可能想要使用的每个嵌入式处理器上2)在他们的网站上,他们说他们不保证/推荐它的某些部分对于嵌入式系统(尤其是FSM,这似乎很奇怪).如果我选择Boost,我们会在以后发现问题....
c# ×3
c++ ×2
embedded ×2
algorithm ×1
amazon-rds ×1
amazon-s3 ×1
class ×1
exception ×1
frameworks ×1
hiphop ×1
installer ×1
iphone ×1
java ×1
javascript ×1
jsp ×1
objective-c ×1
performance ×1
php ×1
pi ×1
process ×1
properties ×1
richtextbox ×1
save ×1
spawn ×1
stl ×1
uiview ×1
word-count ×1
wpf ×1