【发布时间】:2020-04-18 02:06:53
【问题描述】:
我对 C# 很陌生,一直在寻找有关使用 Int32.Parse、Int32.TryParse、Convert.Int32 等将字符串转换为整数的解决方案。但是我找不到合适的解决方案来接近我想要的.我在这里找到了类似的帖子:Operator '>=' cannot be applied to operands of type 'string' and 'string',但仍然找不到正确的解决方案。
这是我要编写的代码的简要说明。
打开一个名为“compare.xls”的Excel文件,读取文件并写入一个名为“tline.txt”的文本文件
然后打开文本文件“tline.txt”,逐行读取文本,只写入带有条件语句的名为“mkmatlab.txt”的文本文件。条件语句:如果从该行读取的数字是25
对 Excel 文件内容的想法:
A1..| B1....... | C1........ | D1........| E1........|
0.1 |10.2000 |53.6000 |52.7894 |24.9608
0.2 |26.8209 |55.0851 |56.4726 |35.8431
0.3 |10.1009 |56.0314 |56.5013 |27.8922
0.4 |17.7008 |60.0054 |59.7650 |37.8018
*符号 .. 和 |这里只是作为间距,Excel文件或文本文件不包含任何这些符号。
说明: 第一行包含 A1 到 E1。 A1 列包含 0.1 到 0.4,B1 到 E1 列以此类推。
我在这条线上有评论
if (words1[t] >= 25 && words1[t] <= 50)
我需要帮助的地方。
StreamReader fidin = File.OpenText(@"C:\Users\Student\Downloads\compare.xls");
StreamWriter tline = File.CreateText(@"C:\Users\Student\Downloads\tline.txt");
string F = fidin.ReadToEnd();
fidin.Close();
string[] words = F.Split(';');
Array.Sort(words);
for (int f = 0; f < words.Length; f++)
tline.WriteLine(words[f]);
tline.Close();
StreamReader tline1 = File.OpenText(@"C:\Users\Student\Downloads\tline.txt");
StreamWriter fidout = File.CreateText(@"C:\Users\Student\Downloads\mkmatlab.txt");
string T = tline1.ReadToEnd();
tline1.Close();
string[] words1 = T.Split(';');
Array.Sort(words1);
int counter = 0;
string line;
while ((line = tline1.ReadLine()) != null)
{
System.Console.WriteLine(line);
fidout.WriteLine(line);
counter++;
Console.ReadKey();
}
【问题讨论】:
-
"some string" >= 25对编译器意味着什么?你在哪里尝试使用int.Parse? -
但是,这是一个(旧)Excel 文件,
.xls(二进制)还是.csv(文本)文件?如果它实际上是一个 CSV 文件,请使用现有的解析器。如果没有,您如何使用File.OpenText()阅读它?您可以为这两种格式使用ACE.OleDbProvider。 -
@Selvin 对不起,我不太明白你的问题,现在无法回答你的问题......我刚刚开始通过阅读文档学习 C#(差不多 2 周),但仍然无法完全理解一些 C# 语法和关键字,但我确实尝试过使用 Soner Gonul 建议的 double.Parse。现在我可以将它用于 if 语句了。
-
@Jimi 是的,这是一个旧的 Excel 文件 97-2003。感谢您的建议和帮助!
标签: c# arrays string int streamreader