我正在解析源代码文件,我想删除所有行注释(即以"//"开头)和多行注释(即/ .... /).但是,如果多行注释中至少有一个换行符(\n),我希望输出只有一个换行符.
例如,代码:
qwe /* 123
456
789 */ asd
Run Code Online (Sandbox Code Playgroud)
应该完全变成:
qwe
asd
Run Code Online (Sandbox Code Playgroud)
而不是"qweasd"或:
qwe
asd
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?谢谢
编辑:测试的示例代码:
comments_test = "hello // comment\n"+\
"line 2 /* a comment */\n"+\
"line 3 /* a comment*/ /*comment*/\n"+\
"line 4 /* a comment\n"+\
"continuation of a comment*/ line 5\n"+\
"/* comment */line 6\n"+\
"line 7 /*********\n"+\
"********************\n"+\
"**************/\n"+\
"line ?? /*********\n"+\
"********************\n"+\
"********************\n"+\
"********************\n"+\
"********************\n"+\
"**************/\n"+\
"line ??"
Run Code Online (Sandbox Code Playgroud)
预期成绩:
hello
line 2
line 3
line 4
line 5
line 6
line 7 …Run Code Online (Sandbox Code Playgroud) 我刚刚安装了Web Developer Express 2008和MVC框架(遵循所有默认设置,在此过程中安装了SQL Server Express).我遵循了最初的NerdDinner步骤,从IDE创建了一个数据库并定义了表(工作正常).
为了进一步定义严重依赖于用户群的表,我必须弄清楚如何将用户表添加到我新创建的数据库中(这样我就可以创建带有用户表的外键的表),所以我"跳到"手册中的身份验证和授权部分,他们提到我需要从目录"C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727"运行"aspnet_regsql.exe".
我找到了该文件并运行它.
它要求提供服务器名称并有一些默认值(它是我的计算机名称的首字母).我不记得在安装Visual Web Developer期间明确提到任何这样的名称,我认为它是默认的.选择"Windows身份验证".我也可以选择"SQL服务器身份验证",但我不记得创建它所需的用户名和密码.
当我选择数据库时,单击"数据库"组合框的下拉列表,需要几秒钟,然后它会发出以下错误消息:
"无法从SQL服务器查询数据库名称列表.建立与SQL Server的连接时发生网络相关或实例特定错误.未找到服务器或无法访问服务器.验证实例名称是否正确SQL Server配置为允许远程连接.(提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)"
我在网上研究了这个,并没有为我看似微不足道的问题找到一个简单的解决方案.
为了澄清,我不想要远程连接,而是本地连接.
在我继续使用regsql进程之前,是否需要执行本地SQL Server Express安装所需的步骤?
这是普通的香草,开箱即用安装......有什么想法吗?
我试图使用以下代码枚举Microsoft.Office.Interop.Outlook.ContactItem对象的属性(让我们称之为ci):
System.Reflection.BindingFlags bf = System.Reflection.BindingFlags.Default;
foreach (System.Reflection.PropertyInfo pi in ci.GetType().GetProperties(bf))
{
Console.WriteLine("Property Info {0}", pi.Name);
}
Run Code Online (Sandbox Code Playgroud)
我实际上尝试了几种BindingFlag值的组合,但是没有返回任何属性.
这就是ContactItem的定义方式:使用System.Runtime.InteropServices;
namespace Microsoft.Office.Interop.Outlook
{
[Guid("00063021-0000-0000-C000-000000000046")]
[CoClass(typeof(ContactItemClass))]
public interface ContactItem : _ContactItem, ItemEvents_10_Event
{
}
}
Run Code Online (Sandbox Code Playgroud)
这就是_ContactItem的定义方式(为简单起见,我只保留了3个道具):
using System;
using System.Runtime.InteropServices;
namespace Microsoft.Office.Interop.Outlook
{
[TypeLibType(4160)]
[Guid("00063021-0000-0000-C000-000000000046")]
public interface _ContactItem
{
[DispId(14848)]
string Account { get; set; }
[DispId(63511)]
Actions Actions { get; }
[DispId(14913)]
DateTime Anniversary { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
有人能帮帮我吗?
提前致谢
短发
我是C#的新手.我正在构建一个应用程序,该应用程序使用元素列表来保存XML文件.我的XML文件的结构如下:
<Elements>
<Element>
<Name>Value</Name>
<Type>Value</Type>
<Color>Value</Color>
</Element>
<Element>
<Name>Value</Name>
<Type>Value</Type>
<Color>Value</Color>
</Element>
<Element>
<Name>Value</Name>
<Type>Value</Type>
<Color>Value</Color>
</Element>
</Elements>
Run Code Online (Sandbox Code Playgroud)
我有<100个这样的项目,这是一个单一的列表(所以我认为数据库解决方案有点矫枉过正,甚至是SQLite).当我的应用程序加载时,我想将这个元素列表读取到内存中.目前,在浏览网页后,我正在使用XmlTextReader.
然而,也许我正在以错误的方式使用它,我逐个标记地读取数据,因此期望标签处于特定顺序(否则代码将变得混乱).我想要做的是阅读完整的"元素"结构并按名称从中提取标签.我确信这是可能的,但是怎么样?
为了澄清,主要区别在于我今天使用XmlTextReader的方式,它不能容忍诸如标签错误顺序之类的场景(例如Type在某个Element中的Name之前).
在C#中将此类结构加载到内存中的最佳实践是什么?
我有一个Python字符串列表,例如初始化如下:
l = ['aardvark', 'cat', 'dog', 'fish', 'tiger', 'zebra']
Run Code Online (Sandbox Code Playgroud)
我想测试一个输入字符串对这个列表,并找到"它下面最近的字符串"和"它上面最近的字符串",按字母顺序和不区分大小写(即没有语音,只是a<b等).如果输入存在于列表中,则"下方"和"上方"都应返回输入.
几个例子:
Input | Below | Above
-------------------------------
bat | aardvark | cat
aaa | None | aardvark
ferret | dog | fish
dog | dog | dog
Run Code Online (Sandbox Code Playgroud)
在Python中实现这一目标的最佳方法是什么?(目前我正在使用for循环遍历排序列表)
进一步澄清:我对简单的字典字母比较感兴趣,而不是像Levenshtein或语音学那样的任何想法.
谢谢
我想以编程方式检查值,并能够切换num-lock.在C#中最简单的方法是什么?
原因是我想在程序启动时验证num-lock是否为"ON".
谢谢
我想展示文本的修订版,我喜欢StackOverflow的工作方式(例如见下文).是否有一个开源.NET代码可以接收两个文本并输出这样的结果?如果您知道付费解决方案也可能相关,谢谢.

在我的代码内部深处,如果嵌套在一个类方法内部嵌套,我将某个索引值与某个列表的长度进行比较,以验证我可以访问该索引.代码看起来像这样:
if t.index_value < len(work_list):
... do stuff ...
else:
... print some error ...
Run Code Online (Sandbox Code Playgroud)
为了澄清,index_value至少为零(在其他地方验证).令我惊讶的是,即使我知道index_value数据有效,代码也会继续使用"else:"子句.我添加了一些特殊的调试代码:
print('Checking whether '+str(t.index_value)+"<"+str(len(work_list)))
x = t.index_value
y = len(work_list)
print(x)
print(y)
print(x<y)
if t.index_value < len(work_list):
... do stuff ...
else:
... print some error ...
Run Code Online (Sandbox Code Playgroud)
以下是输出:
>> Checking whether 3<4
>> 3
>> 4
>> False
Run Code Online (Sandbox Code Playgroud)
谁能帮我理解这里发生了什么?
进一步澄清:
t = SomeClass())中实例化更新:问题是t.index_valueUNICODE 的类型而不是int.原因是我从文本文件中反序列化了t的内容,其中index_value的值由单个数字字符表示.在我从文本中提取它之后,我立即将它分配给它index_value,而不是通过int()传递它,我应该做什么,这解决了问题.
我决定保留"有争议的"头衔,尽管它显然是我的错误,而不是Python的,因为有相同问题的人可能会发现它使用这个标题.
我有一个函数有几个输出,所有输出都是"本机",即整数和字符串.例如,假设我有一个分析字符串的函数,并找到单词的数量和单词的平均长度.
在C/C++中,我会使用@将2个参数传递给函数.在Python中我不确定什么是正确的解决方案,因为整数和字符串不是通过引用传递而是通过值传递(至少这是我从试错中理解的),因此以下代码将不起作用:
def analyze(string, number_of_words, average_length):
... do some analysis ...
number_of_words = ...
average_length = ...
Run Code Online (Sandbox Code Playgroud)
如果我执行上述操作,则函数范围之外的值不会更改.我目前所做的是使用这样的字典:
def analyze(string, result):
... do some analysis ...
result['number_of_words'] = ...
result['average_length'] = ...
Run Code Online (Sandbox Code Playgroud)
我使用这样的功能:
s = "hello goodbye"
result = {}
analyze(s, result)
Run Code Online (Sandbox Code Playgroud)
但是,这感觉不对.什么是正确的Python方法来实现这一目标?请注意我只是指函数返回2-3个结果而不是数十个结果的情况.另外,我是Python的新手,所以我知道我可能会遗漏一些微不足道的东西......
谢谢
我参与了一个项目,一个开发团队正在建立一个非常长期的基础设施项目,以取代现有的10年历史的系统."非常长期",我的意思是它必须从发布的角度开始运营,支持和维护至少10年.考虑到〜2年的发展,这意味着我们应该在这一点上选择一个技术/语言/框架至少持续12年.我们可以完全控制运行项目的计算机,它们的操作系统等.我是要被替换的10岁系统的开发者,我正在帮助团队建立新的系统.
该应用程序具有非常复杂的用户界面.UI在启动时从配置文件动态构建,每个UI组件都依赖于逻辑和其他UI组件,它必须在运行时接收.UI元素本身非常复杂,想象自定义仪表,图形,旋钮等.
项目中已经有两个选择,我不会判断或尝试改变:
现在我们正在选择正确的框架,使我们非常灵活的UI系统"易于开发",即依靠已调试的已经制作的框架来减少开发人员错误的数量.
该团队检查了微软的CAB(复合用户界面),这非常适合其目的,但微软在2007年停止使用它是一个很大的问题,考虑到项目的长期方面(想想6中发现的框架错误) - 谁会提供支持? - 我知道我们可以在CAB中修复代码,但这是我们想要避免的事情.
显而易见的一件事就是依赖微软的WPF.它似乎是UI开发的"未来",但是在长期思考它时会让我感到害怕.我主要担心的是市场不会接受它,3年后微软将停止使用它,而从现在开始的6年内,我将无法获得适当的支持.
但是,除了编写自己的框架之外,我并没有真正看到替代方案.我不想不尊重任何第三方框架开发人员,但对于这样一个长期项目,我只能使用来自非常成熟的供应商的产品/框架/等.
鉴于上述背景(如果不是),对于使用C#这样的长期桌面应用程序项目,选择WPF是否是正确的调用我会很感激.).
谢谢(抱歉这个长问题)
我即将开始使用Microsoft Visual C#2008(Express版)开发一个小型Windows应用程序.我是C#和.NET的新手,所以这是一个新手问题.我应该从WPF开始还是应该坚持使用旧的WinForms?
我的应用程序有几个屏幕,都有几个文本框,复选框,组合框,而不是更多.应用程序将从多个COM对象检索数据,并通过标准TCP/IP套接字进行通信,这两个套接字都与UI无关.
用户界面并不是任何花哨的东西(我不需要它).然而,世界似乎正在转向WPF.为我的案例选择WPF而不是WinForms有什么考虑?推荐的方法是什么?
谢谢
我有一个func返回向量的函数a.我通常绘制一个然后对其进行进一步分析.我有一个特定情况,一旦我尝试绘制一个,我得到一个" ??? Subscript indices must either be real positive integers or logicals"错误.看一下下面的代码片段来看看vector的行为:
K>> a
a =
5.7047 6.3529 6.4826 5.5750 4.1488 5.8343 5.3157 5.4454
K>> plot(a)
??? Subscript indices must either be real positive integers or logicals.
K>> for i=1:length(a); b(i) = a(i); end;
K>> b
b =
5.7047 6.3529 6.4826 5.5750 4.1488 5.8343 5.3157 5.4454
K>> plot(b)
??? Subscript indices must either be real positive integers or logicals.
Run Code Online (Sandbox Code Playgroud)
发生这种情况的情况是当我func从另一个函数中调用函数(调用它outer_func),并直接返回结果作为outer_func …
我喜欢编写c#代码,我想通过它来检查sqlserver中是否有表?
任何人都可以给我一个示例代码吗?
c# ×6
python ×4
sql-server ×2
wpf ×2
asp.net-mvc ×1
comments ×1
contactitem ×1
enumeration ×1
matlab ×1
num-lock ×1
numbers ×1
outlook ×1
parameters ×1
parsing ×1
plot ×1
reference ×1
reflection ×1
regex ×1
string ×1
winforms ×1
xml ×1