Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Một lỗi lạ khi tạo một lượng lớn số lượng file! không hiểu nỗi

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    50

    Wink Một lỗi lạ khi tạo một lượng lớn số lượng file! không hiểu nỗi

    Code:
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Text;
    using System.Xml;
    
    namespace DocFileXML
    {
        class IndexFile
        {
            public int index;
            public string nameFile;
    
            public IndexFile(int i, string nameF)
            {
                index = i;
                nameFile = nameF;
            }
        }
    
        class MyFile
        {
            public TextWriter[] twArray;
            public IndexFile[] ifArray;
            public int count;
            public MyFile()
            {
                count = 0;
                twArray = new TextWriter[1000000];
                ifArray = new IndexFile[1000000];
            }
    
            public string GetString(int i, int j)
            {
                char[] c = new char[2];
    
                int ic, jc;
                ic = i + 97;
                jc = j + 97;
    
                c[0] = (char)ic;
                c[1] = (char)jc;
    
                string str = new string(c);
                str = "Data/a" + str;
                return str;
            }
            
            public void CreateFiles()
            {
                twArray[count] = new StreamWriter("Data/a");
                ifArray[count] = new IndexFile(count, "Data/a");
                
                count++;
    
                twArray[count] = new StreamWriter("Data/aa");
                ifArray[count] = new IndexFile(count, "Data/aa");
    
                count++;
    
                for (int i = 0; i < 26; i++)
                {
                    for (int j = 0; j < 26; j++)
                    {
                        string str;
                        str = GetString(i, j);
    
                        twArray[count] = new StreamWriter(str);
                        ifArray[count] = new IndexFile(count, str);
                        count++;
                    }
                }
            }
    
            public void CloseFiles()
            {
                for(int i=0;i <count;i++)
                {
                    twArray[i].Close();
                }
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                MyFile mf;
                mf = new MyFile();
                mf.CreateFiles();
                mf.CloseFiles();
            }
        }
    }
    Khi giảm vòng lặp tạo file xuống từ 26->23 thì không sao.

    đây là lỗi chương trình
    .



    Bây giờ thì mình đã fix được lỗi này rồi, thật ra mình đổi tên mỗi file lại là ev_a,ev_aa,ev_aaa,ev_aaab.... thay vì tên file là a,aa,aaa,aaab....
    Code:
    public string GetString(int i, int j)
            {
                char[] c = new char[2];
    
                int ic, jc;
                ic = i + 97;
                jc = j + 97;
    
                c[0] = (char)ic;
                c[1] = (char)jc;
    
                string str = new string(c);
                str = "Data/ev_a" + str;
                return str;
            }
    Nhưng vẫn chưa hiểu được nguyên nhân vì sao lại phát sinh lỗi này!
    Đã được chỉnh sửa lần cuối bởi chanphat01001 : 03-12-2008 lúc 07:42 PM.

  2. #2
    Ngày gia nhập
    01 2008
    Bài viết
    240

    public TextWriter[] twArray; không biết có nên tạo ra 1 mảng các đối tượng như thế nào không anh em?


    Không được quote 1 bài viết quá dài như vậy!
    Đã được chỉnh sửa lần cuối bởi ZCoder87 : 04-12-2008 lúc 11:17 AM.
    Time

  3. #3
    Ngày gia nhập
    01 2008
    Nơi ở
    Gameloft Studio
    Bài viết
    294

    Code thì tui chưa coi hết vì ko hiểu bạn đang làm cái gì???

    Nhưng có thể lỗi ở chỗ này.
    Code:
    char[] c = new char[2];
    int ic, jc;
    ic = i + 97;
    jc = j + 97;
    c[0] = (char)ic;
    c[1] = (char)jc;
    string str = new string(c);
    str = "Data/a" + str;
    97 có nghĩa là chữ 'a'. Bạn cộng tới 26 là nó vượt ra khỏi chữ 'z' rồi. Và có thể có những ký tự đặc biệt mà tên file ko được phép có. Ví dụ như "\ / ? | < >" Nên lỗi stream chứ có gì lạ đâu!
    Đã được chỉnh sửa lần cuối bởi ZCoder87 : 04-12-2008 lúc 11:31 AM.

Các đề tài tương tự

  1. Cách add file thư viện dll vào file exe để tạo một file chạy duy nhất C#
    Gửi bởi nthung2112 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 20
    Bài viết cuối: 01-09-2012, 10:01 AM
  2. File backup .bak có dung lương lớn hơn file .mdb và file log
    Gửi bởi MYNAM trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 4
    Bài viết cuối: 27-07-2012, 12:59 PM
  3. Giới thiệu cách chuyển File Ảnh thành file Video trong download proshow gold
    Gửi bởi thuhu0900x trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 3
    Bài viết cuối: 03-07-2012, 03:54 AM
  4. Đọc dữ liệu file midi dạng số HEX và lấy lời nhạc trong file ra file text
    Gửi bởi kimngockhtn_2007 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 29-06-2011, 04:40 PM
  5. Trả lời: 17
    Bài viết cuối: 23-05-2011, 11:47 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn