Announcement

Collapse
No announcement yet.

nhờ sửa giùm code

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [C#] nhờ sửa giùm code

    tình hình là mình muốn chia cái từ điển làm 28 phần theo kí tự đậu tiên
    code :
    string Oldchar = "'";
    string fs = Application.StartupPath + "\\mid.txt";
    FileStream fst = new FileStream(fs, FileMode.Create);
    StreamWriter w = new StreamWriter(fst, Encoding.UTF8);
    w.Write("0 ");
    int i;// = 0;
    for (i = 0; i < max-1; i++)
    {

    if (English[i].ToString().Substring(0, 1) != Oldchar)
    {
    w.Write((i + 1).ToString() + " ");
    Oldchar = English[i].ToString().Substring(0, 1);
    }
    }
    w.Close();
    // English là arraylist chứa từ tiếng anh , max là tổng số từ tiếng anh >200.000 từ

    khi để vòng lặp for chạy từ 0->max thì không chạy được ,để max = 50k thì chạy được
    mọi người sửa giùm với

  • #2
    Originally posted by 10520292 View Post
    // English là arraylist chứa từ tiếng anh , max là tổng số từ tiếng anh >200.000 từ

    khi để vòng lặp for chạy từ 0->max thì không chạy được ,để max = 50k thì chạy được
    mọi người sửa giùm với
    Bạn nên nói rõ, nó báo lỗi ở dòng nào và dòng thông báo lỗi là gì, mình đoán là nó bị lỗi : "Index was outside the bounds of the array.".
    ...Zzz...

    Comment


    • #3
      đây là code :http://www.mediafire.com/?r1ew6nfpaad8fin
      mục đích chính là tạo file mid.txt chứa các con số ứng với lần đầu tiến xuất hiện kí tự ';-;a;b;c;d.............(';-;a;b;c;d ...........là những kí tự đầu tiên của từ tiếng anh )

      Comment


      • #4
        Chào bạn vì ở đây bạn khai báo là : int i
        Mà kiểu int chỉ có thể chạy max là 65535 vậy theo mình nghĩ bạn nên khai báo kiểu double thì sẽ chạy được bạn à .Hy vọng giúp được bạn

        Comment


        • #5
          Cái đoạn trong hàm loaddata
          Code:
           str1 = word.InnerText;
           if (str1 != str2){}
          Bạn sửa thành vì có trường hợp lỗi innerText của head = ""
          Code:
           str1 = word.InnerText.Trim();
           if (str1 != "" && str1 != str2){}
          Kiểm tra của bạn (str1!=str2) chỉ đúng khi file từ điển này có thứ tự và các từ giống nhau được xếp liền kề nhau và không xuất hiện ở vị trí khác đúng không?(hi vọng là vậy)
          Một điều nữa là do điều kiện kiểm tra trong hàm loaddata nên số lượng từ sẽ bị giảm xuống, do đó bạn gán
          Code:
            max = xmlHead.Count;
          là sai, gán lại là
          Code:
           max = English.Count;
          , sau khi đã có mảng English hoàn chỉnh
          Hi vọng giúp được bạn, chúc bạn học tốt!

          Comment


          • #6
            Số integer có dấu 4 bytes biểu diễn được tới số lớn nhất là 2^31 − 1 = 2 147 483 647 lận đó bạn, bạn tham khảo link wiki này nha http://en.wikipedia.org/wiki/Integer_(computer_science)

            Comment


            • #7
              cám ơn mọi người nhé ....giải quyết theo bác Ân là ok .

              Comment

              LHQC

              Collapse
              Working...
              X