Tag: c ++

C# – FileStream:既可以锁定文件又可以在不截断文件的情况下读取文件并将其截断

我想我的标题不是那么清楚。 我会试着解释一下: 我可以使用FileStream编写和读取文件 FileStream fs = new FileStream(“C:\\Users\\Public\\text.txt”, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); private void button1_Click(object sender, EventArgs e) { fs.Seek(0,0); StreamReader sr = new StreamReader(fs); textbox.Text = sr.ReadToEnd(); } private void button2_Click(object sender, EventArgs e) { StreamWriter sw = new StreamWriter(fs); sw.Write(textbox.Text); sw.Flush(); } 这种方式其他程序无法使用该文件,但我也无法删除内容。 写入它只会添加字符串,它不会替换内容。 或者我可以在没有FileStream的情况下完成: private void button1_Click(object sender, EventArgs e) { StreamReader sr […]

如何将DataGridView定位到特定行(以便所选行位于底部)?

作为一个类似于这个问题的问题 ,我还有一个带有DataGridView的应用程序。 我想定位行,使特定行位于列表可见部分的底部。 这是响应按钮单击将行向下移动一行。 我想保持我正在移动的行上的选择(我已经有了这部分工作)。 如果有很多行,则所选行可能会移动到可见区域下方。 我想向下滚动,直到它位于可见区域的底部。 FirstDisplayedScrollingRowIndex似乎没有LastDisplayedScrollingRowIndex伴侣。 有任何想法吗? 谢谢。

用C#编写Unix风格的文本文件

我正在尝试用我的C#程序用Unix风格的换行编写一个文本文件。 由于某种原因,以下代码不起作用: TextWriter fileTW = … fileTW.NewLine = “\n”; fileTW.WriteLine(“Hello World!”); 这也不是: TextWriter fileTW = … fileTW.Write(“Hello World! + \n”); 在这两种情况下,’\ n’都被’\ r \ n’替换,我不想要! 我一直用hex编辑器validation这一点,它显示每行以0x0D0A结尾。 有任何想法吗? 谢谢! 编辑: 对不起大家,误报! 请允许我解释一下…… 我的TextWriter正在写一个MemoryStream,然后使用SharpZLib将其添加到tar存档中。 事实certificate,通过使用WinZIP提取文本文件,它正在用\ r \ n替换\ n的每个实例。 如果我将相同的tar存档复制到我的Ubuntu机器并在那里提取,那么只有\ n就在那里。 奇怪的! 对不起,如果我浪费了任何人的时间! 谢谢!

是否可以打破嵌套循环?

JavaScript支持类似goto的语法来突破嵌套循环。 一般来说这不是一个好主意,但它被认为是可以接受的做法。 C#不直接支持break labelName语法…但它确实支持臭名昭着的goto 。 我相信在C#中可以达到相同的效果: int i = 0; while(i <= 10) { Debug.WriteLine(i); i++; for(int j = 0; j 5) { goto Break;//break out of all loops } } Break: 通过JavaScript的相同逻辑,嵌套循环场景是goto可接受的用法吗? 否则,我知道实现此function的唯一方法是设置具有适当范围的bool 。

WPF中的ConfigurationManager

我在wpf项目中有一个配置文件来存储connectionstring。 但是当我尝试获取AppSettings和ConnectionStrings时,我得到null。 WEB.config文件是这样的: 我试过几种方式: W1: ConnStr = ConfigurationManager.ConnectionStrings[“Trackboard”].ConnectionString; W2: ConnStr = ConfigurationManager.ConnectionStrings[0].ConnectionString; W3: ConnStr = ConfigurationManager.AppSettings[“Trackboard”]; W4: ConnStr = ConfigurationManager.AppSettings[0]; 他们都没有工作。 但这个工作: ConnStr = @”Data Source=(localdb)\v11.0;Initial Catalog=Trackboard;Integrated Security=True;AttachDbFileName=E:\Users\Sean\Workspace\DATABASE\Trackboard.mdf”; (这意味着我不能使用配置文件,这违背我的意愿)我需要帮助。

将XMLDocument写入具有特定换行符的文件(c#)

我有一个我从文件中读到的XMLDocument。 该文件是Unicode,并且具有换行符’\ n’。 当我把XMLDocument写回来时,它有换行符’\ r \ n’。 这是代码,非常简单: XmlTextWriter writer = new XmlTextWriter(indexFile + “.tmp”, System.Text.UnicodeEncoding.Unicode); writer.Formatting = Formatting.Indented; doc.WriteTo(writer); writer.Close(); XmlWriterSettings有一个属性NewLineChars,但是我无法在’writer’上指定settings参数,它是只读的。 我可以使用指定的XmlWriterSettings属性创建XmlWriter,但XmlWriter没有格式化属性,导致文件根本没有换行符。 所以,简而言之,我需要编写一个带有换行符’\ n’和Formatting.Indented的Unicode Xml文件。 思考?

在可空类型上使用coalescing null运算符更改隐式类型

我希望接下来的三行代码是相同的: public static void TestVarCoalescing(DateTime? nullableDateTime) { var dateTimeNullable1 = nullableDateTime.HasValue ? nullableDateTime : DateTime.Now; var dateTimeNullable2 = nullableDateTime != null ? nullableDateTime : DateTime.Now; var dateTimeWhatType = nullableDateTime ?? DateTime.Now; } 在所有情况下,我将nullableDateTime分配给新变量。 我希望所有变量的类型都成为DateTime? 因为那是nullableDateTime的类型。 但令我惊讶的是, dateTimeWhatType的类型只是DateTime ,因此不可为空。 更糟糕的是,ReSharper建议用空合并表达式替换第二个语句,将其转换为表达式3.因此,如果我让ReSharper做它的事情,变量的类型将从DateTime?改变DateTime? 到DateTime 。 事实上,让我们说在方法的其余部分,我会使用 if (someCondition) dateTimeNullable2 = null; 这将编译得很好,直到我让ReSharper用空合并版本替换第二个表达式。 AFAIK,取代 somevar != null ? somevar : […]

开发聊天模块

我正在开发asp.net中的在线聊天应用程序。 我面临一个问题,比如假设有两个用户开始通信。 当第一个用户在基于javascript的聊天框中写入消息然后ajax请求转到服务器。 我如何打开第二个用户聊天框,以便他回复第一个用户消息?

将C转换为C#

我正在尝试将此C代码转换为C#,是否有C#等效于C union typedef? struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; typedef struct in_addr { union { struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b; struct { u_short s_w1,s_w2; } S_un_w; u_long S_addr; } S_un; } IN_ADDR, *PIN_ADDR, FAR *LPIN_ADDR; 谢谢。

ASP.NET在Javascript中设置hiddenfield值

我不知道如何在Javascript中设置hiddenField的值。 有人可以告诉我该怎么做吗? 使用Javascript: document.getElementById(‘hdntxtbxTaksit’).value = “”; HTML: 错误:“无法获取属性值”的值:’对象为空或未定义”