N00b程序员在这里...
试图将某些内容存储到字符串中以便在if / else语句中使用它...
我正在将.txt文件上传到内存中,并将其内部的文本解析到网页上。这就是我正在解析到网页中的内容
.RES B7 = 121
.RES C12 = 554
.RES VMAX =4.7μV
唯一的问题是那里有东西必须包含在.txt文件中,但我不想解析这些东西(这篇文章我不想解析没有任何模式排序或任何东西。它只是带有几个星号的单词)。
有人建议我把某些代码放入一个字符串中(试过它,它没有给我预期的结果)这样我就可以在if / else语句中使用该字符串,将if设置为
if (string startswith (".RES")
{
//Code that parses
}
else
{
//Code that tell viewer to skip over that line if it doesn't start with ".RES"
}
你们会建议什么?给我一些指示?请记住,我正在学习这个游戏,所以建议很容易阅读,如果可以的话。
这是我正在使用的代码
C#page
protected void btnUpld_Click(object sender, EventArgs e)
{
Stream theStream = file1.PostedFile.InputStream;
using (StreamReader viewer = new StreamReader((Stream)file1.PostedFile.InputStream))
{
while (viewer.Peek() > 0) //Reads all text lines from imported .txt file that is imported into memory
{
String[] parts = viewer.ReadLine().Split(new[] { '=' }); //splits text lines at "="... They suggested I put this into a string to use as in the if/else... Would that be a simple approach?
String variOutpt = parts.Length > 1 ? parts[0].Substring(".RES ".Length) : String.Empty; //Reads value after skipping over ".RES", before the "=" split
String valOutpt = parts.Length > 1 ? parts[1] : String.Empty; //Reads value after the "=" split
String otput = String.Format("{0}:<input type='text' value='{1}' /><br />", variOutpt, valOutpt); //Sets up format for variOutpt&valOutpt
rslt.InnerHtml += otput; //Prints it all into a div on my aspx page
}
}
}
在我的aspx页面中闲逛...
<asp:FileUpload ID="file1" runat="server" />
<asp:Button ID="btnUpld" runat="server" Text="Upload&Display" onclick="btnUpld_Click" />
<div runat="server" id="rslt" />
答案 0 :(得分:2)
String.StartsWith()
是一个好主意,如果真正区分所有有效行与其余行。
更强大但更复杂的方法是使用正则表达式。
您的代码似乎需要:
while (viewer.Peek() > 0)
{
string line = viewer.ReadLine();
if (! string startswith (".RES")
continue;
String[] parts = line .Split('='); // note simplification
....