نمایش نتایج 1 تا 4 از 4

نام تاپیک: مرتب کردن نوشته های یک فایل

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    Question مرتب کردن نوشته های یک فایل

    سلام
    چطوری نوشته های یک فایل که مثلا به صورت زیر هست بر اساس اعداد(امتیاز) بعد از (=) مرتب بشه (از بزرگ به کوچیک):

    player1=4300
    player2=2350
    player3=550
    player4=3400
    ...

    که بعد از مرتب شدن بشه این:

    player1=4300
    player4=3400
    player2=2350
    player3=550
    ...

    لطفا راهنمایی کنید.

  2. #2

    نقل قول: مرتب کردن نوشته های یک فایل

    خدمت شما

    StreamReader sr = new StreamReader("text.txt");
    string str = sr.ReadToEnd();
    string[] split = str.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
    List<string> players=new List<string>();
    List<int> scores=new List<int>();
    foreach (string temp in split)
    {
    string[] spliter = temp.Split('=');
    players.Add(spliter[0]);
    scores.Add(int.Parse(spliter[1]));
    }
    scores.Sort((x, y) => y.CompareTo(x));
    sr.Close();
    StreamWriter sw = new StreamWriter("text.txt");
    int count=0;
    foreach(string temp in players){
    sw.Write(temp+"=");
    sw.Write(scores[count]);
    sw.Write("\r\n");
    count++;
    }
    sw.Close();

  3. #3

    نقل قول: مرتب کردن نوشته های یک فایل

    نقل قول نوشته شده توسط aliagamon مشاهده تاپیک
    خدمت شما

    StreamReader sr = new StreamReader("text.txt");
    string str = sr.ReadToEnd();
    string[] split = str.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
    List<string> players=new List<string>();
    List<int> scores=new List<int>();
    foreach (string temp in split)
    {
    string[] spliter = temp.Split('=');
    players.Add(spliter[0]);
    scores.Add(int.Parse(spliter[1]));
    }
    scores.Sort((x, y) => y.CompareTo(x));
    sr.Close();
    StreamWriter sw = new StreamWriter("text.txt");
    int count=0;
    foreach(string temp in players){
    sw.Write(temp+"=");
    sw.Write(scores[count]);
    sw.Write("\r\n");
    count++;
    }
    sw.Close();
    بابت پاسختون ممنونم
    اما یه مشکلی توی کد هست
    خط هارو بر اساس اعداد تنظیم میکنه ولی اسم مربوط به اعدادو مثل فایل قبل مینویسه
    مثال:
    player1=4300
    player2=2350
    player3=550
    player4=3400
    مرتب شده با کد شما:
    player1=4300
    player2=3400
    player3=2350
    player4=550

  4. #4

    نقل قول: مرتب کردن نوشته های یک فایل

    حق بدین دیگه اول صبح بود مثالتونو اشتباه دیدم فکر کردم میخواین جای پلیر ها عوض نشه و فقط امتیاز ها جا به جا شه
    اینطوری کوتاه تر هم میشه اینم کد تغییر کرده :

    StreamReader sr = new StreamReader("text.txt");
    string str = sr.ReadToEnd();
    string[] split = str.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
    List<string> players=new List<string>();
    foreach (string temp in split)
    {
    players.Add(temp);
    }
    players.Sort((x,y)=>int.Parse(y.Split('=')[1]).CompareTo(int.Parse(x.Split('=')[1])));
    sr.Close();
    StreamWriter sw = new StreamWriter("text.txt");
    foreach(string temp in players){
    sw.Write(temp);
    sw.Write("\r\n");
    }
    sw.Close();

تاپیک های مشابه

  1. سوال: مرتب کردن خط های داخل یک فایل متنی
    نوشته شده توسط mohammadhafez در بخش C#‎‎
    پاسخ: 3
    آخرین پست: پنج شنبه 21 فروردین 1393, 20:30 عصر
  2. سوال: مرتب کردن اسامی در یک فایل
    نوشته شده توسط nasrin55 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 7
    آخرین پست: یک شنبه 15 دی 1387, 10:51 صبح
  3. مرتب کردن ستون های عددی ذخیره شده به صورت رشته
    نوشته شده توسط Sal_64 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: چهارشنبه 25 اردیبهشت 1387, 13:27 عصر
  4. مرتب کردن داده های xml
    نوشته شده توسط soheil@ در بخش طراحی وب (Web Design)
    پاسخ: 0
    آخرین پست: چهارشنبه 21 فروردین 1387, 17:41 عصر
  5. مرتب کردن نوشته های memo
    نوشته شده توسط Tarrah در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: جمعه 12 اسفند 1384, 11:05 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •