如何从文本中获取某个字符串。 C#

时间:2013-08-03 12:06:54

标签: c# string textbox stringreader

所以我正在尝试制作一个Minecraft启动器,但它不会登录到服务器,因为我的帐户已迁移到Mojang所以我使用我的电子邮件而不是我的用户名登录但是有一种方法来获取我的用户名所以我我发现了如何但我需要使用c#从这段文本中获取一串代码。

"134382:deprecated:USERNAME:7a909de0530c310c69c:dba0c48a038a66bb98"

我需要将“deprecated:USERNAME”放到一个单独的文本框中,我将如何执行此操作,请注意我在c#中编码并获取上面的代码我使用此代码。

http://login.minecraft.net/?user=USERNAME&password=PASSWORD&version=15

这是到目前为止的代码

private void PlayBtn_Click(object sender, EventArgs e)
    {
        string username = UsernameBox.Text;
        string password = PasswordBox.Text;
        Process proc = new Process();
        startMinecraft(true, 256, 1024, username, username, false);
    }
    public static void startMinecraft(bool mode, int ramMin, int ramMax, string username, string sessionID, bool debug)
    {
        string appPath = Path.GetDirectoryName(Application.ExecutablePath) + @"\";
        string appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\";
        Process proc = new Process();
        if (debug == true)
        {
            proc.StartInfo.FileName = "java";
        }
        else
        {
            proc.StartInfo.FileName = "javaw";
        }

        //Online and offline modes
        if (mode == true)
        {
            proc.StartInfo.Arguments = "-Xms" + ramMin + "M -Xmx" + ramMax + "M -Djava.library.path=" + appData + ".minecraft/bin/natives -cp " + appData + ".minecraft/bin/minecraft.jar;" + appData + ".minecraft/bin/jinput.jar;" + appData + ".minecraft/bin/lwjgl.jar;" + appData + ".minecraft/bin/lwjgl_util.jar net.minecraft.client.Minecraft " + username + " " + sessionID;
        }
        else
        {
            proc.StartInfo.Arguments = "-Xms" + ramMin + "M -Xmx" + ramMax + "M -Djava.library.path=" + appData + ".minecraft/bin/natives -cp " + appData + ".minecraft/bin/minecraft.jar;" + appData + ".minecraft/bin/jinput.jar;" + appData + ".minecraft/bin/lwjgl.jar;" + appData + ".minecraft/bin/lwjgl_util.jar net.minecraft.client.Minecraft " + username;
        }
        proc.Start();
    }

3 个答案:

答案 0 :(得分:3)

如果订单保持不变,您可以试试这个

  string[] results = yourstring.split(':');
  yourtextbox.Text = results[1]+ ":" + results[2];   //results1 will give depreciated and results 2 will give UsErname

答案 1 :(得分:2)

您尚未完全指定源字符串的格式。现在,我将假设它的形式为

*:deprecated:USERNAME:*:*

其中*是任意的,但不包含:

然后你可以说:

var fields = source.Split(':');
string target = fields[1] + ":" + fields[2];

现在您可以将target分配到文本框。

答案 2 :(得分:0)

这是我需要的工作代码:)非常感谢您的帮助。

WebClient client = new WebClient();
        String htmlCode = client.DownloadString("http://login.minecraft.net/?user=USERNAME&password=PASSWORD&version=15");
        label1.Text = htmlCode;
        string[] results = htmlCode.Split(':');
        label2.Text = results[1] + ":" + results[2];
        label3.Text = results[2];