我认为这段代码可行,但正则表达式与\ r \n不匹配.我已经在十六进制编辑器中查看了我正在阅读的数据并验证了文件中确实存在十六进制D和十六进制A模式.
我也尝试过正则表达式/\xD\xA/m和/\x0D\x0A/m,但它们也不匹配.
这是我现在的代码:
lines2 = lines.gsub( /\r\n/m, "\n" )
if ( lines == lines2 )
print "still the same\n"
else
print "made the change\n"
end
Run Code Online (Sandbox Code Playgroud)
除了替代方案,我很高兴知道我做错了什么(为了方便我学习).:)
我们有一个服务器(用C和C++编写),它当前捕获一个SEGV并将一些内部信息转储到一个文件中.我想生成一个核心文件,并在我们捕获SEGV时将其写入磁盘,因此我们的支持代表和客户不必为ulimit大惊小怪,然后等待崩溃再次发生以获得核心文件.我们过去曾使用过中止功能,但它受到ulimit规则的约束并没有帮助.
我们有一些读取/ proc/pid/map并手动生成核心文件的遗留代码,但它已经过时了,并且看起来不太便携(例如,我猜它在我们的64位中不起作用)编译).在Linux进程中生成和转储核心文件的最佳方法是什么?
我第一次使用Objective-C块和操作队列.我正在加载一些远程数据,而主UI显示一个微调器.我正在使用完成块告诉表重新加载其数据.正如文档中提到的那样,完成块不会在主线程上运行,因此表会重新加载数据,但在主线程上执行某些操作(例如拖动表)之前不会重新绘制视图.
我现在使用的解决方案是一个调度队列,这是从完成块刷新UI的"最佳"方法吗?
// define our block that will execute when the task is finished
void (^jobFinished)(void) = ^{
// We need the view to be reloaded by the main thread
dispatch_async(dispatch_get_main_queue(),^{
[self.tableView reloadData];
});
};
// create the async job
NSBlockOperation *job = [NSBlockOperation blockOperationWithBlock:getTasks];
[job setCompletionBlock:jobFinished];
// put it in the queue for execution
[_jobQueue addOperation:job];
Run Code Online (Sandbox Code Playgroud)
更新 Per @ gcamp的建议,完成块现在使用主操作队列而不是GCD:
// define our block that will execute when the task is finished
void (^jobFinished)(void) = ^{
// …
Run Code Online (Sandbox Code Playgroud) 如果我读取或写入文件并收到33或32错误,我想记录一条消息,其中包含打开文件的其他进程的名称.必须有一个Win32 API,我可以使用它来获取此信息.Process Explorer显示它.当然,Process Explorer也有关于内存中所有进程的信息.我宁愿在没有询问所有过程的情况下找到罪魁祸首.
我在我的第一个iPhone应用程序中使用Core Data并尝试了解NSFetchedResultsController.它在我的根视图中工作得很好.我是否需要在每个视图控制器中实例化一个实例?如果是这样,是否有一个模板可以让它像我的根控制器一样简单(我在创建项目时只是在模板中选中了一个框).当我添加一个新的视图控制器时,我没有看到使用Core Data的选项.
更新:即使我将代码剪切/粘贴到第二个视图中,我花了一些时间才意识到我还需要在切换到新视图之前设置managedObjectContext.在推送导航堆栈上的新视图之前,我将以下行添加到RootViewController:
self.newVC.managedObjectContext = self.managedObjectContext;
Run Code Online (Sandbox Code Playgroud) 在Delphi 2009中将声明为TBytes的字节数组转换为unicode字符串的最佳方法是什么?在我的特定情况下,TBytes数组已经具有UTF-16编码数据(每个字符2个字节).
由于TBytes不存储空终止符,因此只有当数组恰好在与其相邻的内存中具有#0时,以下内容才有效.
MyString := string( myBytes );
Run Code Online (Sandbox Code Playgroud)
如果不是,则字符串结果将在末尾具有随机数据(它还可能导致读取违规,具体取决于在内存中遇到#0所花费的时间).
如果我使用ToBytes函数,则返回't'#0'e'#0''#0't'#0,这不是我想要的.
我正在修改我们的VCL组件,因此最终用户的应用程序链接到我们的dcu文件,而不是每次都构建我们的源代码.我们已经完成了所有工作,但是我希望调试器在引发异常时停止用户代码.首先它会在我们的dcu中停止并打开CPU窗口.我能够通过从dcu文件中删除调试信息来防止这种情况.但现在它仍然不会停留在用户代码中(如DevExpress库和其他人一样).
以下截屏视频是一个简短的例子.我第一次在DevExpress代码中导致异常,并且调试器在我的按钮事件中正确停止.第二次我在我的组件中导致异常,但是调试器在调用堆栈上没有我的按钮事件,并且没有显示问题所在.有什么想法吗?
http://screencast.com/t/NjhlOTRk
目前使用以下选项构建DCU:
-$W+ -$D- -h -w -q
Run Code Online (Sandbox Code Playgroud)
更新:我的组件和按钮事件之间的TDataSet方法似乎导致此行为.如果我改为调用我的表的直接方法,我会得到预期的行为.我猜我没办法解决这个问题,但我仍然很好奇为什么会这样.
当视图加载并保存带有调用内容的NSMutableArray时,我经常调用Web服务.然后在cellForRowAtIndexPath中,我从这个数组中检索行.我使用感觉像黑客来从indexPath获取行索引,但是:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
<snip cell alloc stuff>
// Configure the cell.
unsigned int *indexes = (unsigned int*)calloc( [indexPath length], sizeof( unsigned int ) );
[indexPath getIndexes:indexes];
Tasks *task = [_tasksArray objectAtIndex:indexes[1]];
free( indexes );
cell.textLabel.text = [task getname];
cell.detailTextLabel.text = [NSString stringWithFormat:@"Started: %@", [task getstarted] ? [[task getstarted] description] : @"Not Yet"];
return cell;
}
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
Delphi 2009抱怨E2283错误:[DCC错误] outputcode.pas(466):E2283局部常量太多.使用较短的程序
Delphi 2007编译得很好.我找不到丰富的局部常数,它是一个短(500行)单位.你看到我能解决的任何丰富的常量或文字吗?
procedure TOutputCodeForm.FormCreate(Sender: TObject);
var
poParser : TStringStream;
begin
if ( IsWindowsVista() ) then
begin
SetVistaFonts( self );
end;
poParser := TStringStream.Create( gstrSQLParser );
SQLParser := TSyntaxMemoParser.Create( self );
SQLParser.RegistryKey := '\Software\Advantage Data Architect\SQLSyntaxMemo';
SQLParser.UseRegistry := True;
SQLParser.CompileFromStream( poParser );
FreeAndNil( poParser );
poParser := TStringStream.Create( gstrCPPParser );
cppParser := TSyntaxMemoParser.Create( self );
cppParser.RegistryKey := '\Software\Advantage Data Architect\SQLSyntaxMemo';
cppParser.UseRegistry := True;
cppParser.CompileFromStream( poParser );
FreeAndNil( poParser );
poParser := TStringStream.Create( gstrPasParser );
pasParser := TSyntaxMemoParser.Create( self …
Run Code Online (Sandbox Code Playgroud) 我是否需要编写自己的查找功能以允许用户在页面上查找文本内容,或者是否有一种方式node-webkit可以公开预先存在的webkit查找功能?
delphi ×3
cocoa-touch ×2
ios ×2
api ×1
core-data ×1
delphi-2009 ×1
file ×1
gdb ×1
iphone ×1
linux ×1
node-webkit ×1
objective-c ×1
regex ×1
ruby ×1
unicode ×1
vcl ×1
winapi ×1