使用C#逐个检索文件行?

使用C#逐个检索文件行?,c#,C#,我有一个文件名abc.txt。在该文件上有如下行: 贾尼50,美国南卡罗来纳州 卡里姆16岁,意大利罗姆法拉 澳大利亚悉尼52号 第一行是姓名,第二行是地址。现在我需要字符串上的信息名,比如说nameString,地址是addressString。我如何使用C#完成它? 我用PHP写了一个代码,它工作得很顺利。我在C#中需要同样的东西。以下是php代码供您澄清: $file=file_get_contents('abc.txt'); $arr=explode("\n",$file); for

我有一个文件名abc.txt。在该文件上有如下行:

贾尼
50,美国南卡罗来纳州
卡里姆
16岁,意大利罗姆
法拉
澳大利亚悉尼52号

第一行是姓名,第二行是地址。现在我需要字符串上的信息名,比如说nameString,地址是addressString。我如何使用C#完成它? 我用PHP写了一个代码,它工作得很顺利。我在C#中需要同样的东西。以下是php代码供您澄清:

$file=file_get_contents('abc.txt');

$arr=explode("\n",$file);
for ($i=0;$i<count($arr);$i=$i+2)
{

    $name=$arr[$i];
    $address=$arr[$i+1];
    echo $name ."<br/>";
    echo $address. "<br/>";

}
$file=文件获取内容('abc.txt');
$arr=分解(“\n”,$file);

对于($i=0;$i),这是一个简单的示例:

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            TextReader reader = new StreamReader(File.OpenRead("c:\\myfile.txt"));

            string line = reader.ReadLine();

            while (!String.IsNullOrEmpty(line))
            {
                // do stuff. 
            }

            reader.Close();
        }
    }
}

您可以使用filestream来读取它

string[]arr=System.IO.File.ReadAllLines(文件名)
using(var reader = new StreamReader("bla.txt"))
{
     string content = reader.ReadToEnd();

     string[] rows = content.Split('\n');

     foreach (var s in rows)
     {
          //output it somewhere
     }
}

对于(inti=0;i而言,内爆的替代物,正如约阿基姆回答的那样,是分裂的

您还应该考虑换行字符串,并使用(可以是\n或\r或\r\n)


另外,通常从一种语言到另一种语言的“翻译”并不是最好的解决方案。如果您想在这种情况下使用与内爆等效的方法,您不会逐行读取文件,而是使用ReadToEnd()然后分割结果。这将忽略为此目的创建的ReadLine方法。

我当然会这样做。请为我这样做,谢谢你。下面发布了代码。好的,等等,我要测试——无论如何,感谢你的努力--riad:)如何获取名称和地址??为了清楚起见,ReadLine最多可以读取任何换行符,因此您不必担心拆分或分解。只需在while循环之外为名称和地址创建存储变量。我以前编写了一个解决方案,但其结果不明确。while循环无法解决此问题。请查看我的code StreamReader SR;字符串S;SR=File.OpenText(“C:\\abc.txt”);S=SR.ReadLine();int counter=1;while(S!=null){if((计数器%2)!=0)MessageBox.Show(S);else MessageBox.Show(S);S=SR.ReadLine();counter++;}SR.Close();我有一个更好的主意,但我的老板刚刚给了我一个紧急任务。将实际的Reader.ReadLine分离成一个返回简单类或结构的方法,然后while循环将只检查返回的对象是否为null。请告诉我您是否需要一个代码示例;稍后将不得不发布它。感谢您的努力…无论如何ladV给出了我想要的正确解决方案..感谢兄弟的努力:)…我调整了一个警告;此解决方案不可扩展-取决于文件大小,这可能会占用大量内存。我之所以使用While,一行接一行的例程,是因为您只需要担心内存中的两个字符串。
string[] arr = System.IO.File.ReadAllLines(filename)
for (int i = 0; i<arr.Length; i += 2)
{
  // do whatever you need here
}