我正在尝试从文本文件构建表格,但是: 当我编译程序时,输入的信息后面会出现它应该出现的表格,但表格是空白的。显然我在某个地方犯了一个错误..你能帮忙吗?
StreamReader swreNames = File.OpenText("Names.txt");
do
{
Console.SetCursorPosition(15, 2);
Console.Write("--- Names Table ---");
Console.SetCursorPosition(10, 4);
Console.Write("First Name");
swrNames.WriteLine(firstname); // Reads from first name from file Names.txt
Console.SetCursorPosition(10, Counter + 6); // Aligns first name within table settings
Console.SetCursorPosition(28, 4);
Console.Write("Surname");
swrNames.WriteLine(lastname); // Reads from last name from file Names.txt
Console.SetCursorPosition(28, Counter + 6);
Console.SetCursorPosition(48, 4);
Console.Write("Age");
swrNames.WriteLine(age); // Reads from age from file Names.txt
Console.SetCursorPosition(48, Counter + 6);
Console.ReadLine();
Console.Clear();
} while ((firstname = swreNames.ReadLine()) != null); //Writes out the input from the text file
好的我已编辑代码以显示我认为存在问题的位置,希望它的阅读格式稍微容易一点!
请帮忙。
答案 0 :(得分:2)
好的,我们假设您的文件内容遵循[first name] [last name]
格式,如:
Axl Rose
Joey Ramone
Steve Vai
BB King
所以,你的代码看起来像是:
StreamReader fileContent = File.OpenText(@"C:\my-file.txt");
Console.SetCursorPosition(15, 2);
Console.Write("--- Names Table ---");
Console.SetCursorPosition(10, 4);
Console.Write("First Name");
Console.SetCursorPosition(28, 4);
Console.Write("Surname");
int topOffset = 6;
string currentLine = fileContent.ReadLine();
while (!string.IsNullOrWhiteSpace(currentLine))
{
string firstName = currentLine.Split(' ')[0];
string lastName = currentLine.Split(' ')[1];
Console.SetCursorPosition(10, topOffset);
Console.Write(firstName);
Console.SetCursorPosition(28, topOffset);
Console.Write(lastName);
topOffset += 2;
currentLine = fileContent.ReadLine();
}
fileContent.Dispose();
Console.ReadLine();
这是不最佳解决方案,您的文件可能与此格式不同。好了,现在轮到你编写代码了。
答案 1 :(得分:0)
当您的评论说您正在写作时,您正在阅读文件流,并在您的评论说您正在阅读时写作。您永远不会将读取的数据放入控制台流中。
此外,您将文件流的整个读取行,一次一个地放入文件名并将其写回同一个流...不是真的可取。