【发布时间】:2021-01-06 22:50:23
【问题描述】:
这段代码可以正常工作
foreach (char c in partToDecode)
{
var sum = c - 48;
if (sum > 40)
{
sum = sum - 8;
}
string suma = Convert.ToString(sum, 2).PadLeft(6, '0');
File.AppendAllText(@"C:\Users\jakub\Pulpit\binary.txt", suma);
}
我们在不可见的 for i 循环内(我的意思是 foreach 和这个换行符在名为 I 的 for 循环内)所以我需要在 foreach 循环之后在 for 循环中换行。 这段代码没有像我希望的那样工作,我在开头有一个新行,在第二行是一个纯文本,希望在 foreach 循环每次完成后都有一个新行
string sumaaa = Convert.ToString(sum, 2).PadLeft(6, '0');
File.AppendAllText(@"C:\Users\jakub\Pulpit\binary.txt", sumaaa);
}
FileStream stream = new FileStream(@"C:\Users\jakub\Pulpit\binary.txt", FileMode.Open);
StreamWriter sw = new StreamWriter(stream);
sw.Write("\n");
sw.Close();
}
这有点小,之后我有一个代码用于拆分位以将其小部分转换为十进制。它早些时候工作,但我将它插入评论中,现在它什么也没写。这个循环毕竟是独立的,点击确定后运行,然后我有一个始终显示的 form2,没有错误。
for (var k = 0; k < binlines.Count(); k++)
{
var binline = binlines[k];
if (binline != null) //in case it was an empty line error (it's not)
{
string partmessage = binline.Substring(0, 6);
string partdecoded = Convert.ToInt32(partmessage, 2).ToString();
string partmessage2 = binline.Substring(6, 2);
string partdecoded2 = Convert.ToInt32(partmessage2, 2).ToString();
string partmessage3 = binline.Substring(8, 30);
string partdecoded3 = Convert.ToInt32(partmessage3, 2).ToString();
string so on to 15
File.AppendAllText(@"C:\Users\jakub\Pulpit\decimal.txt", partdecoded + "," + partdecoded2 + "," partdecoded3 + "," + partdecoded4...)
}
else
{
}
现在我有一个超出范围的异常“索引和长度必须引用字符串中的位置”
【问题讨论】:
-
什么是“invisible for i loop”?
-
@Charlieface:在帖子中澄清,只是上面没有闭环
-
File.AppendAllText(@"C:\Users\jakub\Pulpit\binary.txt", suma + Environment.NewLine);? -
如果你显示你想要的实际格式,你得到的格式(当它几乎可以工作时)以及产生该格式的代码,也许会有所帮助
-
@StriplingWarrior:你的意思是在 foreach 循环中?它将在每个 char 转换为二进制后添加一个新行。我需要在每个 partToDecode 变量之后换行(它是循环的)