我正在从StringBuilder生成XML文档,基本上类似于:
string.Format("<text><row>{0}</row><col>{1}</col><textHeight>{2}</textHeight><textWidth>{3}</textWidth><data>{4}</data><rotation>{5}</rotation></text>
Run Code Online (Sandbox Code Playgroud)
后来,像:
XmlDocument document = new XmlDocument();
document.LoadXml(xml);
XmlNodeList labelSetNodes = document.GetElementsByTagName("labels");
for (int index = 0; index < labelSetNodes.Count; index++)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
所有数据都来自数据库.最近我遇到了一些错误问题:
十六进制值0x00是无效字符,第1行,位置nnnnn
但它不一致.有时候一些"空白"数据会起作用."有缺陷"的数据适用于某些PC,但不适用于其他PC.
在数据库中,数据始终是空字符串.它永远不会是'null',在XML文件中,它就是< data>< /data>,即打开和关闭之间没有字符.(但不确定这是否可以依赖,因为我从'直接'窗口拉出它是vis studio并将其粘贴到textpad中).
sql server的版本可能存在差异(2008年它将失败,2005年将会运行)和排序规则.不确定这些是否可能是原因造成的?
但完全相同的代码和数据有时会失败.问题所在的任何想法?
用英语等价物替换德语字符(变音符号,重音符号)
我需要从各个文本字段中删除任何德语特定字符,以便处理到另一个不接受它们有效的系统.
所以我所知道的人物是:
ßäöüÄÖÜ
目前我有一种手动方式来替换它们:
myGermanString.Replace("ä","a").Replace("ö","o").Replace("ü","u").....
Run Code Online (Sandbox Code Playgroud)
但我希望有一种更简单/更有效的方法.因为我每次运行都会在数千个字符串上进行,其中99%不会包含这些字符.
也许是一种涉及某种CultureInfo的方法?
(例如,根据MS,以下返回的字符串是相等的
String.Compare("Straße", "Strasse", StringComparison.CurrentCulture);
Run Code Online (Sandbox Code Playgroud)
所以必须存在某种转换表?)
TFS源控制下的2个项目.
DependancyProject.sln
AppProject.sln
使用AppProject引用DependancyProject.
-
我遇到的问题是AppProject中的Installer项目.它将DependancyProject.dll作为"引用"(?),它试图将其包含在GAC中.
当我尝试构建这个项目时,要创建一个MSI来安装App,我就会收到错误
The item $/Assemblues/DependancyProject/bin/debug/DependancyProject.dll is locked for check-out by USER in workspace HIS-PC-NAME.
Run Code Online (Sandbox Code Playgroud)
(有问题的PC没有死,没有使用)
检查到Source Control中的dll(据我所见).当我浏览它时,它所引用的路径不存在(没有bin文件夹).
DependancyProject几乎被Source Control中的每个项目引用,我从来没有遇到任何问题.它构建,所有其他项目构建.只有这一个安装程序项目没有.
我无法理解为什么它还需要尝试修改它.所有它需要做的(我假设)是复制它.
这里有什么想法?
我有一个服务运行,它定期检查文件夹中的文件,然后处理它.(读取它,提取数据,将其存储在sql中)
所以我在测试盒上运行它,预计需要更长的时间.该文件有160万行,它在6小时后仍在运行(然后我回家了).
问题是它运行的盒子现在已经完全瘫痪了 - 远程桌面超时了所以我甚至无法停止它来停止这个过程,或者附加一个调试器来看看有多远等等.它坚固地使用90%+ CPU,以及所有其他正在运行的服务或应用程序
代码是(从内存中,可能无法编译):
List<ItemDTO> items = new List<ItemDTO>();
using (StreamReader sr = fileInfo.OpenText())
{
while (!sr.EndOfFile)
{
string line = sr.ReadLine()
try {
string s = line.Substring(0,8);
double y = Double.Parse(line.Substring(8,7));
//If the item isnt already in the collection, add it.
if (items.Find(delegate(ItemDTO i) { return (i.Item == s); }) == null)
items.Add(new ItemDTO(s,y));
}
catch { /*Crash*/ }
}
return items;
}
Run Code Online (Sandbox Code Playgroud)
- 所以我正在努力改进代码(任何提示赞赏).
但它仍然可能是一个缓慢的事情,这是好的,我没有问题,它花了很长时间,只要它不杀死我的服务器.
所以我想要你的好人是:1)我的代码是否可靠地未经优化?2)我可以限制代码块可能使用的CPU数量吗?
干杯全都
我试图找到一种将图像打印到斑马并且遇到很多麻烦的方法.
根据文件:
第一种编码称为B64,使用MIME Base64方案对数据进行编码.Base64用于对电子邮件缓存进行编码...
Base64对该字节进行6位编码,对未封闭数据的扩展为33%.
第二种编码称为Z64,首先使用LZ77算法压缩数据以减小其大小.(该算法由PKZIP使用,并且与PNG图形格式是一体的.)
然后使用如上所述的MIME Base64方案对压缩数据进行编码.
将根据Base64编码的数据计算CRC.
但它没有更多的信息.
基本上我正在尝试编码
private byte[] GetItemFromPath(string filepath)
{
using (MemoryStream ms = new MemoryStream())
{
using (Image img = Image.FromFile(filepath))
{
img.Save(ms, ImageFormat.Png);
return ms.ToArray();
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后尝试使用以下内容进行打印:
var initialArray = GetItemFromPath("C:\\RED.png");
string converted = Convert.ToBase64String(b);
PrintThis(string.Format(@"~DYRED.PNG,P,P,{1},0,:B64:
{0}
^XA
^F0200,200^XGRED.PNG,1,1^FS
^XZ", converted .ToString(), initialArray.Length));
Run Code Online (Sandbox Code Playgroud)
根据它的声音,B64或Z64都被接受.
我尝试了一些变体,以及几种生成CRC和计算'大小'的方法.但似乎没有工作,并且图形下载到打印机总是被中止.
有没有人设法完成这样的事情?或者知道我哪里出错了?
我试图将图像保存为单色(黑白,1位深度),但我现在失去了如何做到这一点.
我开始用一个PNG,并转换为位图打印(这是一个热敏打印机,仅支持黑色反正 - 加上它的地狱大型图像慢,如果我尝试将它们发送的彩色/灰度).
到目前为止,我的代码很简单,无法将其转换为位图,但它保留了原始颜色深度.
Image image = Image.FromFile("C:\\test.png");
byte[] bitmapFileData = null;
int bitsPerPixel = 1;
int bitmapDataLength;
using (MemoryStream str = new MemoryStream())
{
image.Save(str, ImageFormat.Bmp);
bitmapFileData = str.ToArray();
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的页面编写上下文菜单选项.右键单击div基本上会弹出一个选项菜单,可用于执行任务.
我的问题是试图找到触发所有内容的原始元素(即右键单击的div).
我的jQuery代码更多或更少:
//this is what displays the context menu
$('.outfeedPosition').bind("contextmenu", function (e) {
$('#contextMenu').css({
top: e.pageY + 'px',
left: e.pageX + 'px'
}).show();
//'this' is the element which was clicked by the user.
alert($(this).attr('id'));
return false;
});
//this is the contextMenu's button handler.
$('#ctxDelete').click(function () {
alert('delete was clicked, but i dont know by which element - so I dont know which one to delete');
});
<div id="contextMenu">
<ul>
<li><a id="ctxInsert" href="#">Insert</a></li>
<li><a id="ctxEdit" href="#">Edit</a></li>
<li><a id="ctxDelete" href="#">Delete</a></li>
</ul> …Run Code Online (Sandbox Code Playgroud) 我正在编写一个过程来删除n天内几个表中的所有行.
一个死的简单查询很容易编写
DELETE FROM [myTable]
WHERE [Created] < GETDATE()-30
Run Code Online (Sandbox Code Playgroud)
一个问题是日期字段上没有索引 - 我可以添加一个,但我正在通过执行以下操作来解决它:
SELECT @var = MAX([ID]) FROM myTable WHERE Created < GETDATE()-30;
DELETE FROM myTable WHERE ID < @var
Run Code Online (Sandbox Code Playgroud)
这看起来像是一种可接受的方法吗?
问题是表格很大,而且这个查询每次运行时可能会删除数十万行.
在(稍慢)测试服务器上运行它需要一个小时左右,并从其他进程中读取/写入它来杀死表.
我不介意花一些时间来运行(虽然更快更好) - 但我不能让它在运行时锁定表一小时,因为有持续的读/写正在进行(主要是写) .
我的DB知识非常基础,因为我是编码器而不是dba.
有人能给我一个很好的方法来执行这项任务 - 以最有效的方式.
我正在尝试从签出项目的本地工作区创建一个分支.
基本背景:我从项目的"主干"检查出来并进行了很多更改.
我现在想要将这些更改检查到新分支中.
我在Source Control中创建了一个新分支 - 但我的工作区仍然映射到主干.
我按照我在此处找到的文章中的步骤进行操作:从本地工作区分支
所以我搁置了我的改变.
创建了一个分支.
使用TFPT从主干迁移到分支
tfpt unshelve "My uncomplete changes" /source:"$/MyRoot/MyProject-Trunk" /target:"$/MyRoot/MyProject-Branch"
Run Code Online (Sandbox Code Playgroud)
一切看起来都很顺利(除了它似乎不支持已重命名的文件 - 所以我不得不跳过它们)
但一切都没有改变.
分支是主干的精确副本(不包括本地更改)
我的工作区仍然映射到主干.
如果我办理登机手续,它会检查行李箱.
我试图取消映射我的签出版本,删除本地文件,然后检查分支,然后取消我所做的更改,但我充斥着
No appropriate mapping exists for $/Root/MyProject/Myfile.cs
Run Code Online (Sandbox Code Playgroud)
看起来很简单,但是TFS似乎为SVN中的这么简单的任务添加了额外的复杂层......
希望有些愚蠢我做错了.
任何帮助赞赏.
我有一个网页,其中包含一个用于显示大量数据的表(平均2,000到10,000行).此页面需要很长时间才能加载/渲染.这是可以理解的.
问题是,当页面正在加载PC内存使用量猛增时(iexplorer正在使用我的测试系统上500mb)并且整个PC停止运行直到它完成,这可能需要一两分钟.IE挂起直到它完成,切换到另一个正在运行的程序是相同的.
我需要解决这个问题 - 理想情况下我想完成两件事:
1)单独加载页面的各个部分.因此,页面最初可以在没有大数据表的情况下呈现.装载div将放在那里直到准备好.
2)渲染时不要耗费太多内存或本地资源 - 所以至少他们可以同时使用不同的选项卡/应用程序.
我将如何进行这两者或其中任何一项?
我是一名交易应用程序员,因此我对在Web环境中可以做的事情仍然有点不知所措.
干杯全都.
所以我有一个 .NET Core 2.2 Web 应用程序。我向其中添加了 EPPlus 库,现在,当它发布到 Azure(应用程序服务)时,它不会启动,并且出现错误:
HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure
Run Code Online (Sandbox Code Playgroud)
我通过在 Azure 中运行控制台和命令“dotnet my.project.dll”缩小了范围,并得到了实际错误:
找不到应用程序依赖项清单 (my.project.deps.json) 中指定的程序集:程序包:'Microsoft.Win32.SystemEvents',版本:'4.5.0' 路径:'runtimes/win/lib/netcoreapp2.0 /Microsoft.Win32.SystemEvents.dll'
Microsoft.Win32.SystemEvents.dll 位于应用程序部署到的主 wwwroot 文件夹中。但我认为整个runtimes/win/libs/文件夹根本不存在。
my.project.deps.json 文件的部分如下所示:
"Microsoft.Win32.SystemEvents/4.5.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "2.2.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.6.26515.6"
}
},
"runtimeTargets": {
"runtimes/win/lib/netcoreapp2.0/Microsoft.Win32.SystemEvents.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.6.26515.6"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我删除整个“runtimeTargets”部分,那么应用程序就可以运行!(好吧,我也必须对另外几个 dll 执行相同的操作:System.Drawing.Common 和 System.Security.Cryptography.Pkcs)
但该文件在发布和发布时都会完全重新生成 - 因此这不是一个可行的解决方案。我也不知道该文件的该部分是做什么的。把它留在里面可能很重要。虽然一切都有效,所以它不可能那么重要......
它是通过 TeamCity 构建和发布的 - 我不是该过程的专家,但我认为正在运行的命令相当于:
dotnet publish my.proj.csproj …Run Code Online (Sandbox Code Playgroud) 我不确定没有一些第三方库会有多可行,但是这里有:
我有一个450x900的图像,我试图打印.
问题是,我用来打印的方法是将原始数据发送到打印机.
图像分辨率为96dpix96dpi,打印机运行速度为203dpi.
所以......图像很小.
我需要增加图像的dpi,以"真实"尺寸打印它.
Bitmap b0 = LoadBitmap();
//I need to rotate it because for some odd reason it prints backwards and upside down.
b0.RotateFlip(RotateFlipType.Rotate180FlipX);
//Set a new resolution, 203dpi
b0.SetResolution(203, 203);
//I need to save and reload the bitmap, because RotateFlip compresses it.
//(annoying as hell, took me ages to figure out why it wasn't working.)
Stream imgStream = new MemoryStream();
b0.Save(imgStream, ImageFormat.Bmp);
b0 = new Bitmap(imgStream);
//get my byte array
ImageConverter converter = new ImageConverter();
byte[] …Run Code Online (Sandbox Code Playgroud) 标题措辞不当,我深表歉意。
我正在尝试将一个表连接到另外两个表之一
主表 子表 子表存档
因此,MasterTable 包含一个 ID 字段。SubTable 和 SubTableArchive 包含用于连接的 MasterTableId 字段。
但是,数据只会存在于这些子表之一中。所以我只想加入其中包含数据的表。
但我知道这样做的唯一方法是加入两者并在我选择的所有字段上使用 isnull,并且它很快变得难以读取(和写入)。特别是因为某些字段已经包含在 ISNULL 中
SELECT M.Id, ISNULL(S.Field1, SA.field1), ISNULL(S.field2, SA.Field2),
SUM(CASE WHEN (ISNULL(S.Finished,SA.Finished)=1 AND ISNULL( ISNULL(S.ItemCode,SA.ItemCode),'')='') THEN 1 WHEN (ISNULL(S.Finished,SA.Finished)=0 AND ISNULL( ISNULL(S.AltItemCode,SA.AltItemCode),'')='') THEN 1 ELSE 0 END) AS SummaryField
FROM MAsterTable M
LEFT OUTER JOIN SubTable S ON S.MasterTableId = M.Id
LEFT OUTER JOIN SubTableArchive SA ON S.MasterTableId = M.Id
GROUP BY M.Id, ISNULL(S.Field1, SA.field1), ISNULL(S.field2, SA.Field2)
Run Code Online (Sandbox Code Playgroud)
所以这是有效的,但它并不漂亮。这是一个示例,但真正的查询更长、更复杂。
我希望 SQL 可能内置了某种条件连接功能。可以做我想做的事情,并使查询本身更友好一些。
c# ×5
.net ×2
bitmap ×2
html ×2
image ×2
jquery ×2
sql ×2
t-sql ×2
tfs ×2
zpl ×2
.net-core ×1
asp.net-core ×1
azure ×1
background ×1
contextmenu ×1
css ×1
cultureinfo ×1
epplus ×1
javascript ×1
join ×1
optimization ×1
pagination ×1
performance ×1
sql-server ×1
xml ×1