2017-02-25 5 views
-3

Bassicaly私はリストを介して高いスコアを表示することに気をつけています(500対1のように)。ここで私のコードですが、label1はゲームのスコアなので、誰かが私を助けてくれるかもしれないことに留意してください。C#ゲームの高得点

{ 
public partial class Form3 : Form 
{ 
    public Form3() 

    { 
     InitializeComponent(); 
    } 




    private void Form3_Load(object sender, EventArgs e) 
    { 
     label1.Text = Form2.passingText; 

     StreamWriter q = new StreamWriter("C:\\Users\\BS\\Desktop\\tex.txt", true); 
     q.WriteLine(label1.Text); 
     q.Close(); 


     StreamReader sr = new StreamReader("C:\\Users\\BS\\Desktop\\tex.txt"); 
     string g = sr.ReadLine(); 
     while (g != null) 
     { 
      listBox1.Items.Add(g); 

      g = sr.ReadLine(); 
     } 
     sr.Close(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     this.Close(); 
    } 
} 

}

+0

'label1.Text'や' tex.txt'に何が含まれているか教えてくれれば本当に助かります。 –

+0

label1.Textにはあなたがゲームで達成した得点が含まれています...そして、このプロジェクトにStreamReaderとWriterを使わなければならないので、tex.txtはStreamReaderとWriterのファイルコネクタです。事前に感謝します – Hala7

+0

[なぜ誰かが私を助けることができますか?]実際の質問ではありませんか?](http://meta.stackoverflow.com/q/284236) – EJoshuaS

答えて

0

あなたが行のリストとしてファイルを読み込み、それが代わりにSteamReaderを使用しての、だから、LINQの を使用してソートすることができ、これを試してみてください。

using System.Linq; 
//.... 

List<string> hiscores = File.ReadAllLines("C:\\Users\\BS\\Desktop\\tex.txt").ToList(); 
hiscores.Sort(); 
foreach (string s in hiscores) 
    listBox1.Items.Add(s); 

EDIT:あなたが持っているので StreamReaderを使用するには、ここでこの方法があります(原則は同じです)。

List<string> hiscores = new List<string>(); 
    StreamReader sr = new StreamReader("C:\\Users\\BS\\Desktop\\tex.txt"); 
    string g = sr.ReadLine(); 
    while (g != null) 
    { 
     hiscores.Add(g); 
     g = sr.ReadLine(); 
    } 
    sr.Close(); 
    hiscores.Sort(); 
    hiscores.Reverse(); 
    //alternatively, instead of Sort and then reverse, you can do 
    //hiscores.OrderByDescending(x => x); 

    foreach(string s in hiscores) 
    { 
     listBox1.Items.Add(s); 
    } 
+0

私はあなたの助けを凝縮しますが、私はStreamReader誰がどのように知っている場合、このプロジェクトのために? – Hala7

+0

もう一度ありがとうございます。私は本当に並べ替えを選択することによって達成することができた昇順で再びですが、私は490,420,320などのようにスコア420,490,120,320を持っているように降順にする必要があります。 120、私は初心者ですので、あなたのコードは良いですが、私はそれを正しく使用しなかった、またはあなたは私を誤解しました.. Anyona else solution please? – Hala7

+0

aは私の答えをもう一度編集しました。ソート後、あなたは 'hiscores.Reverse()'と逆順になります。やってみよう。 – Nino

関連する問題