2013-08-03 67 views
-4

所以我想製作一個minecraft啓動器,但它不會登錄到服務器,因爲我的帳戶已遷移到Mojang,所以我使用我的電子郵件登錄而不是我的用戶名,但有一種方法可以讓我的用戶名如此我已經發現如何,但我需要從這個文本使用C#獲得一串代碼。如何從文本中獲取某個字符串。 C#

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

我需要獲得「棄用: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(); 
    } 
+0

你有什麼試圖做到這一點?你有任何代碼嗎? –

+0

我編輯了這個問題,我添加了代碼 – Terrii

+0

只是一小塊建議,你不需要明確地嘗試評估布爾條件爲'== true'或'== false' ......它可以簡單地是'如果(調試)'或'如果(模式)' – Arran

回答

3

如果爲了保持不變,你可以試試這個

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

有沒有一種方法來添加它,以便去到網址,然後拆分它而不是下載文件然後閱讀它? – Terrii

+0

@Tririi對不起,我沒有得到你的問題。添加什麼? – Ehsan

+0

沒有這很好,我想讓啓動程序做它讀取網址上的字符串url然後一個整個字符串進入一個文本框,然後再次拆分代碼,以便它的只廢棄:USERNAME – Terrii

2

你還沒有完全指定源字符串的格式。現在,我「會以爲這是形式的

*:deprecated:USERNAME:*:* 

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

然後你就可以說:

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

,現在你可以分配target到您的文本框。

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]; 
相關問題