将“Viewer.Readline”存储到字符串中以用于if / else语句

时间:2011-10-20 19:27:56

标签: c# string if-statement

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" />

1 个答案:

答案 0 :(得分:2)

String.StartsWith()是一个好主意,如果真正区分所有有效行与其余行。

更强大但更复杂的方法是使用正则表达式。

您的代码似乎需要:

while (viewer.Peek() > 0) 
{
    string line = viewer.ReadLine();
    if (! string startswith (".RES")
       continue;

    String[] parts = line .Split('=');  // note simplification   
    ....