我正在搜索MS-SQL Server 2005数据库,以确保某个文本字段始终是8的倍数.当我运行以下查询时,我得到了几行长度为30.但是当我调查这些记录时,我发现它们比那些长.
select distinct len(cast(textfield as varchar)) from tablenameRun Code Online (Sandbox Code Playgroud)
但是,如果我将varchar的长度指定为更长的时间(如下面的查询中所示),则它可以正常工作.
select distinct len(cast(textfield as varchar(1000))) from tablenameRun Code Online (Sandbox Code Playgroud)
任何人都知道它为什么默认为30,如果这是一个可配置的设置?
据我所知,URL编码的存在是因为URL只支持ASCII编码。但既然"已经在 ASCII 表中了,为什么还要像%22URL 编码那样进行编码呢?
这让我感到困惑,也许有人可以用我的无知来照亮教育之光.这是在C#windows应用程序中.我从一个线程访问列表框的内容.当我尝试像这样访问它
prgAll.Maximum = lbFolders.SelectedItems.Count;Run Code Online (Sandbox Code Playgroud)
我收到了错误.但是,这是我没有得到的部分.如果我注释掉那一行,那就是下一行foreach (string dir in lbFolders.SelectedItems)Run Code Online (Sandbox Code Playgroud)
执行得很好.
编辑:像往常一样,我缺乏沟通技巧.让我澄清一下.
我知道从除了创建它们之外的线程访问GUI项会导致问题.我知道访问它们的正确方法是通过委托.
我的问题主要在于:为什么我可以正常访问和迭代SelectedItems对象,但是当我尝试获取(未设置)它的Count属性时,它会爆炸.
我正在处理来自第三方的XML文件.这些文件偶尔会在其中包含无效字符,从而导致XMLTextReader.Read()异常.
我目前使用以下函数处理此问题:
XmlTextReader GetCharSafeXMLTextReader(string fileName)
{
try
{
MemoryStream ms = new MemoryStream();
StreamReader sr = new StreamReader(fileName);
StreamWriter sw = new StreamWriter(ms);
string temp;
while ((temp = sr.ReadLine()) != null)
sw.WriteLine(temp.Replace(((char)4).ToString(), "").Replace(((char)0x14).ToString(), ""));
sw.Flush();
sr.Close();
ms.Seek(0, SeekOrigin.Begin);
return new XmlTextReader(ms);
}
catch (Exception exp)
{
throw new Exception("Error parsing file: " + fileName + " " + exp.Message, exp.InnerException);
}
}
Run Code Online (Sandbox Code Playgroud)
我的直觉是说应该有一个更好/更快的方法来做到这一点.(是的,让第三方修复他们的XML会很棒,但目前还没有发生.)
编辑:这是最终解决方案,基于cfeduke的答案:
public class SanitizedStreamReader : StreamReader
{
public SanitizedStreamReader(string filename) : base(filename) { }
/* …Run Code Online (Sandbox Code Playgroud) 我正在按惯例解决Codility问题,但无法回答其中一个问题。我在Internet上找到了答案,但是我不知道该算法的工作原理。有人可以逐步指导我吗?这是问题:
/*
You are given integers K, M and a non-empty zero-indexed array A consisting of N integers.
Every element of the array is not greater than M.
You should divide this array into K blocks of consecutive elements.
The size of the block is any integer between 0 and N. Every element of the array should belong to some block.
The sum of the block from X to Y equals A[X] + A[X + 1] + ... + A[Y]. …Run Code Online (Sandbox Code Playgroud) 我通常远离,regular expressions因为我很少找到他们的好用.但在这种情况下,我认为我没有选择.
我需要一个正则表达式来处理以下情况.我将看三个字符串.如果第一个字符是1-9 or the letters o,n,d (lower or upper) AND,则第二个字符是1,2 or 3第三个字符,它将匹配0-9.
有人可以帮帮我吗?
我有一个使用SharpZIPlib解压缩一些zip文件的C#程序?它工作正常,但在一个文件,我不断收到"意外的EOF"错误?实际上是否有EOF标记,或Zip文件是否被截断?