为了账号安全,请及时绑定邮箱和手机立即绑定

如何做到通过文本框获取数据的int变量在txt日志文件中以双引号格式显示?

如何做到通过文本框获取数据的int变量在txt日志文件中以双引号格式显示?

C#
蛊毒传说 2021-11-28 16:04:06
我尝试编写一个日志文件并创建了一个包含两个文本框和一个按钮的桌面应用程序。我希望 int 变量在 txt 文件中以双引号样式显示。我试图在赋值过程中将 $"{textBox1.Text}\"" 转换为 int 但无济于事 - 得到格式异常错误。那么如何在 txt 文件中将 int 变量显示为双标记?string username =  $"\"{textBox1.Text}\"";File.AppendAllText(@"C:\Users\Cavid\Desktop\LogFiles\" +DateTime.Now.ToString("dd.MM.yyyy") + ".txt", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + " " +username+ " has typed as username \r\n");int password = Convert.ToInt32($"\"{textBox1.Text}\"");File.AppendAllText(@"C:\Users\Cavid\Desktop\LogFiles\"+DateTime.Now.ToString("dd.MM.yyyy") + ".txt", DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + " " +password+ " has typed as password\r\n");
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

我只是想以双引号格式保留变量


抱歉,您似乎对变量和数据类型的工作方式有错误的看法。整数变量只是一块没有引号或其他格式的 32 位内存。


您根本无法将双引号文本分配或解析(没有自定义解析字符串)到整数。停止尝试。改用这个:


if (int.TryParse(textBox1.Text, out int password))

{

    // text is a valid int, use `password`

}


查看完整回答
反对 回复 2021-11-28
?
aluckdog

TA贡献1847条经验 获得超7个赞

你真的想密码是整数而已?用户只允许有123密码,但不能,比如说,a;sldf123_'vdkdm?更自然的选择是获取密码(让它在textBox2.Text),因为它是:


 string fileName = Path.Combine(

   @"C:\Users\Cavid\Desktop\LogFiles",             // Directory

   $"{DateTime.Now.ToString("dd.MM.yyyy")}.txt");  // File Name


 // Do not call DateTime.Now twice: you may have different times for username and password

 DateTime moment = DateTime.Now;

 string prefix = $"{moment.ToShortDateString()} {moment.ToShortDateString()}"; 


 // It seems you want textBox2.Text, not textBox1.Text as a password (typo?) 

 string[] lines = new string[] {

   $"{prefix} \"{textBox1.Text}\" has typed as username",

   $"{prefix} \"{textBox2.Text}\" has typed as password",

 };


 // Append file once

 File.AppendAllLines(fileName, lines);

如果您坚持只使用整数作为密码,请添加int.Parse或int.TryParse:


 ...


 string[] lines = new string[] {

   $"{prefix} \"{textBox1.Text}\" has typed as username",

   $"{prefix} \"{int.Parse(textBox2.Text)}\" has typed as password",

 };


 ...


查看完整回答
反对 回复 2021-11-28
?
心有法竹

TA贡献1866条经验 获得超5个赞

要添加双引号,请使用以下代码:

字符串用户名 = textBox1.Text; //添加双引号

        username = "\"" + username + "\"";
        //you can test it as shown below

File.WriteAllText(@"C:\text2.txt", 用户名);

对于错误,正如其他人提到的那样,您无法将所有 string s 转换为整数(例如,如果您的用户名是字母数字)


查看完整回答
反对 回复 2021-11-28
  • 3 回答
  • 0 关注
  • 187 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信