我有一个文件名 abc.txt 。在该文件上有这样的行:
jani
50,南卡罗莱纳州,美国
karim
16,roam,Italy
fara
52,sydny,澳大利亚
第一行是名称,第二行是地址。现在我需要字符串上的信息名称,例如 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/>";
}
我怎样才能在C#中做同样的事情? 另一个问题:C#中的任何函数是否像在php中爆炸一样?
提前致谢
里亚德
答案 0 :(得分:2)
这是一个简单的例子:
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();
}
}
}
答案 1 :(得分:1)
string[] arr = System.IO.File.ReadAllLines(filename)
for (int i = 0; i<arr.Length; i += 2)
{
// do whatever you need here
}
答案 2 :(得分:0)
您可以使用文件流来阅读它
答案 3 :(得分:0)
using(var reader = new StreamReader("bla.txt"))
{
string content = reader.ReadToEnd();
string[] rows = content.Split('\n');
foreach (var s in rows)
{
//output it somewhere
}
}
答案 4 :(得分:0)
正如Joakim回答的那样,取代内爆就是分裂。
您还应该考虑换行符,并使用Environment.NewLine(可能是\ n或\ r或\ r \ n)
此外,通常从一种语言“翻译”到另一种语言并不是最佳解决方案。如果要在这种情况下使用等效的implode,则不会逐行读取文件,而是使用ReadToEnd()然后拆分结果。这将忽略为此目的而创建的ReadLine方法。