问题列表 - 第29665页

编程默认不可变的语言?

是否存在默认情况下"变量"是不可变的(const,final等)的编程语言?

并且,为了使其变量,您需要声明一个额外的不可变限定符?

programming-languages

21
推荐指数
5
解决办法
6165
查看次数

如何计算文档中的行?

我有这样的线条,我想知道我实际上有多少行......

09:16:39 AM  all    2.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   94.00
09:16:40 AM  all    5.00    0.00    0.00    4.00    0.00    0.00    0.00    0.00   91.00
09:16:41 AM  all    0.00    0.00    4.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:42 AM  all    3.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   96.00
09:16:43 AM  all    0.00    0.00    1.00    0.00    1.00    0.00    0.00    0.00   98.00
09:16:44 AM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
09:16:45 AM  all    2.00    0.00    6.00    0.00 …
Run Code Online (Sandbox Code Playgroud)

linux bash scripting command-line

994
推荐指数
15
解决办法
125万
查看次数

git push,源代码隐藏在哪里?

我试图在我的ror应用程序的同一台机器上设置git服务器和部署服务器.我使用以下命令将项目从本地计算机推送到git服务器/部署服务器:

git remote add origin path_to_git_server
git push origin master
Run Code Online (Sandbox Code Playgroud)

然后,在git服务器上,我找到了"master"文件~/git/log.git/ref/heads,但是我找不到所有的源代码.我需要指向源文件夹,以便它可以在Apache Web服务器上运行.我在这做错了什么?谢谢.

git

3
推荐指数
1
解决办法
2396
查看次数

检查字符串是否是有效的Windows目录(文件夹)路径

我试图确定用户输入的字符串是否有效表示文件夹的路径.有效,我的意思是格式正确.

在我的应用程序中,该文件夹代表安装目标.提供的文件夹路径有效的,我想,以确定是否该文件夹存在,并创建它,如果它没有.

我目前正在使用IO.Directory.Exists( String path ).我发现这很好用,除非用户没有正确格式化字符串.发生这种情况时,此方法将返回false,表示该文件夹不存在.但这是一个问题,因为我之后将无法创建该文件夹.

从我的谷歌搜索我发现一个建议使用正则表达式来检查格式是否正确.我没有正则表达式的经验,我想知道这是否是一种可行的方法.这是我发现的:

Regex r = new Regex( @"^(([a-zA-Z]\:)|(\\))(\\{1}|((\\{1})[^\\]([^/:*?<>""|]*))+)$" );
return r.IsMatch( path );
Run Code Online (Sandbox Code Playgroud)

将正则表达式测试结合起来Directory.Exists(),给我一个足够好的方法来检查路径是否有效以及它是否存在?我知道这会因操作系统和其他因素而异,但该程序仅针对Windows用户.

c# windows filesystems directory validation

76
推荐指数
7
解决办法
11万
查看次数

带有"readonly"SelectedItems的WPF ListView

这是我的情况:我正在尝试在WPF应用程序中建模的多对多关系,同时编辑关系的一方.情况是我有一组属于零到多组的用户.在编辑用户时,我使用ListViewwith SelectionModeset to Many.用户所属的组在列表视图中标记为选定项.

我的问题是:并非所有用户都有权修改用户的组成员身份.但是,他们应该能够查看它们.到目前为止,并不是一个真正的问题,因为当然,保存更改时会发生权利检查.然而,我想要做的是有效地禁用ListView(至少它能够修改SelectedItems),同时仍然保持其他基本功能(滚动,尤其是,我还在单击标题时实现了排序).这样,用户不会无意中进行他们不允许的更改,然后在他们去保存更改时遇到错误.

目前,如果用户没有足够的权利,我只是完全禁用ListView.但是,正如我所提到的,它有效地禁用了所有其他功能(滚动等),因此从用户体验的角度看是次优的.列表中的项目数(目前为几百个)需要滚动才能查看所有项目.

我已经尝试拦截各种鼠标事件(暂时忽略备用输入访问),并将事件标记为当用户单击ListViewItem并将事件标记为已处理时处理,但ListView仍然修改了选择.

我只是处理SelectionChanged事件而只是恢复以前的状态,但这似乎有点矫枉过正(但是,它可能是最简单易读的解决方案).

有人对如何完成这种行为有任何想法?

wpf wpf-controls

0
推荐指数
1
解决办法
4683
查看次数

Sed删除下划线并促进角色

我正在尝试将一些代码从旧命名方案迁移到旧命名方案的新代码:

int some_var_name;
Run Code Online (Sandbox Code Playgroud)

新的是

int someVarName_:
Run Code Online (Sandbox Code Playgroud)

所以我想要的是某种形式的sed/regexy善良来简化这个过程.所以基本上需要发生的是:
找到包含_的小写单词_替换下划线没有任何东西,并将_的右侧的字符串提升为大写.在此之后将_追加到比赛结束.

用Sed和/或Awk和正则表达式可以做到这一点吗?如果不是为什么不呢?

任何示例脚本将不胜感激.

非常感谢任何帮助.

编辑:
为了清楚起见,重命名是针对许多使用错误的命名约定编写的文件,需要与代码库的其余部分保持一致.预计这不是一个完美的替代,使一切处于可编辑的状态.相反,脚本将被运行,然后手动查看任何异常.替换脚本纯粹是为了减轻手动纠正所有内容的负担,我相信你会同意这是相当繁琐的.

c++ regex awk sed

7
推荐指数
1
解决办法
2371
查看次数

我可以消除额外的Unicode字符串调用(Delphi)

我正在使用Delphi 2009.在我的程序中,我一直在努力优化所有Delphi代码以提高速度和内存使用率,尤其是我的Unicode字符串处理.

我有以下声明:

    Result := Result + GetFirstLastName(IndiID, 1);
Run Code Online (Sandbox Code Playgroud)

当我调试该行时,从GetFirstLastName函数返回时,它会跟踪系统单元中的例程_UStrArrayClr:

procedure _UStrArrayClr(var StrArray; Count: Integer);
asm
        JMP     _LStrArrayClr
end;
Run Code Online (Sandbox Code Playgroud)

这会调用_LStrArrayClr:

procedure       _LStrArrayClr(var StrArray; cnt: longint);
{$IFDEF PUREPASCAL}
var
  P: Pointer;
begin
  P := @StrArray;
  while cnt > 0 do
  begin
    _LStrClr(P^);
    Dec(cnt);
    Inc(Integer(P), sizeof(Pointer));
  end;
end;
{$ELSE}
asm
        { ->    EAX pointer to str      }
        {       EDX cnt         }

        PUSH    EBX
        PUSH    ESI
        MOV     EBX,EAX
        MOV     ESI,EDX

@@loop:
        MOV     EDX,[EBX]                       { fetch str                     }
        TEST    EDX,EDX                         { if nil, nothing …
Run Code Online (Sandbox Code Playgroud)

delphi string unicode optimization

2
推荐指数
2
解决办法
1062
查看次数

组织测试项目和主要可执行文件 - C&C++

我有以下目录结构.

root
--src
---tests
Run Code Online (Sandbox Code Playgroud)

src包含应用程序的源文件和头文件(C文件).构建此应用程序时,它会生成可执行文件.tests目录包含应用程序的单元测试用例(C++文件,UnitTest++用作测试框架).

在测试项目中,我可以包含src目录中的头文件,并且编译将通过.链接时出现问题.链接器将无法在源目录中找到目标文件.

我怎么解决这个问题?在C&C++项目中,为主应用程序提供一个可执行文件,而另一个用于需要使用相同源文件的测试的常规做法是什么?

  • 应用类型:跨平台.
  • 当前的发展环境:Linux
  • 构建工具:CMake

任何帮助都会很棒!

c c++ cmake

4
推荐指数
1
解决办法
299
查看次数

是否有可能从XML :: Simple中进一步简化结果数据结构?

鉴于以下XML和脚本,我可以生成:

{
  Item => {
    Details => { color => { Val => "green" }, texture => { Val => "smooth" } },
  },
}
Run Code Online (Sandbox Code Playgroud)

但是,我真的想要以下内容:

{
  Item => {
    Details => { color => "green", texture => "smooth" },
  },
}
Run Code Online (Sandbox Code Playgroud)

我不能在这里使用GroupTags,因为可能有许多Details项(Key/Val对),并且在处理之前它们可能是未知的.是否有可能在不通过XPath,SAX等手动提取的情况下生成所需的结构?

use strict;
use warnings;
use Data::Dump;
use XML::Simple;


my $xml = do { local $/; scalar <DATA> };
my $obj = XMLin(
    $xml,
    NoAttr     => 1,
    GroupTags  => { Details => 'Item' },
    KeyAttr => [ 'Key'], …
Run Code Online (Sandbox Code Playgroud)

xml perl

2
推荐指数
1
解决办法
147
查看次数

C中的realloc()问题.总是挂起但编译得很好

我在使用一个旨在成为String缓冲区的程序时遇到了一些麻烦,特别是这个函数用于使用字符串cstr重置缓冲区.如果cstr为null,则需要将内容重置为空char'\ 0'.它总是挂在第二组realloc,它正在调整大小buf->内容我不知道为什么会这样.任何帮助都是极好的.

结构:

typedef struct strbuf {
     char   *contents;
     size_t  length;  
} StringBuffer;
Run Code Online (Sandbox Code Playgroud)

它被称为

strbuf_reset(sb, NULL)
Run Code Online (Sandbox Code Playgroud)

这是有问题的strbuf_reset函数.

StringBuffer *strbuf_reset(StringBuffer *buf, const char *cstr)
{
if(buf == NULL)
    return NULL;

StringBuffer *tempBuf = NULL ;

if(cstr == NULL)
    tempBuf = (StringBuffer*)realloc(buf,sizeof(StringBuffer) + sizeof(char));
else
    tempBuf = (StringBuffer*)realloc(buf,sizeof(buf) + strlen(cstr)*sizeof(char));

if(tempBuf == NULL)
    return NULL;

if(cstr == NULL)
    tempBuf->contents = (char*)realloc(buf->contents,sizeof(char));
else
    tempBuf->contents = (char*)realloc(buf->contents,(sizeof(buf->contents) + strlen(cstr)*sizeof(char) + 1));

if(tempBuf->contents == NULL){
    free(tempBuf);
    return NULL;
}
buf = tempBuf;

if(cstr == NULL) …
Run Code Online (Sandbox Code Playgroud)

c buffer pointers memory-management realloc

3
推荐指数
1
解决办法
968
查看次数