2014-10-17 120 views
-4

的代码是:需要帮助,阅读一些C#

private static void loadAccounts() 
{ 
    using (TextReader tr = new StreamReader("accounts.txt")) 
    { 
     string line = null; 
     while ((line = tr.ReadLine()) != null) 
     { 
     String[] details = line.Split('\t'); 
     accounts.Add(details[0].Substring(6) + 
         ":" + details[1].Substring(10)); 
     } 
    } 
} 

应该怎样文本文件包含/应如何contense被格式化。 我已经试过: 用户名:密码 用户名/吨密码

,但得到的错误

的错误是:

System.ArgumentOutOfRangeException:的startIndex不能大于字符串的长度。 在System.String.InternalSubStringWithChecks(的Int32的startIndex,的Int32长度,布尔fAlwaysCopy) 在System.String.Substring(的Int32的startIndex,的Int32长度) 在System.String.Substring(的Int32的startIndex) 在Test.Program.loadAccounts( ) c:\ Users \ Documents \ SharpDevelopProjects \ Test \ Test \ Program.cs:line 148 at Test.Program.Main(String [] args)in c:\ Users \ Documents \ SharpDevelopProjects \ Test \ Test \ Program.cs:line 26

+5

'\ t'是一个制表符。即Tab键 – 2014-10-17 06:43:36

+2

您的问题标题没有太多说明。请参考[我如何写一个好的标题?](http://meta.stackexchange.com/questions/10647/how-do-i-write-a-good-title)。 – 2014-10-17 06:44:11

+0

你得到了什么错误? – Catwood 2014-10-17 06:44:59

回答

0

奇怪的代码。

此行将文本文件中的一行分割为制表符,例如, “用户名(这里想象一个标签)密码”

String[] details = line.Split('\t'); 

此行丢弃该用户名元件的前6个字符(信息[0]),增加了结肠,丢弃该密码元素的前10个字符(细节[1])并将其连接成单个字符串。

accounts.Add(details[0].Substring(6) + ":" + details[1].Substring(10)); 
0

在文本文件中的所有行应该有: 最小用户名长度= 6 最小密码长度= 10 我也喜欢的东西“”或“替代“\ t” - ”

  • MyNameIs-MyPasswordIsTheFollowing1
  • MyNameIs-MyPasswordIsTheFollowing2
  • MyNameIs-MyPasswordIsTheFollowing3
  • MyNameIs-MyPasswordIsTheFollowing4
+0

哦,我看到^ _ ^似乎现在工作,我也改变他们两个1,不知道它的工作有多好,但没有错误,非常感谢:D – Jordan 2014-10-17 07:00:31

+0

- 实现我将不得不做一些编辑因为它也使任何真正的目的 – Jordan 2014-10-17 07:02:16

+0

约旦如果这解决您的问题比标记为答案:-) – 2014-10-17 08:33:19