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*.ToString().Substring(0, 1) != Oldchar)
{
w.Write((i + 1).ToString() + " ");
Oldchar = English*.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
[QUOTE=10520292;47243]
// 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[/QUOTE]
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.”.
đâ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 )
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
Cái đoạn trong hàm loaddata
str1 = word.InnerText;
if (str1 != str2){}
Bạn sửa thành vì có trường hợp lỗi innerText của head = “”
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
max = xmlHead.Count;
là sai, gán lại là
max = English.Count;
, sau khi đã có mảng English hoàn chỉnh :rolleyes:
Hi vọng giúp được bạn, chúc bạn học tốt!
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)
cám ơn mọi người nhé …giải quyết theo bác Ân là ok .