Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 25 kết quả

Đề tài: Cách cắt bớt ký tự trong label C# như thế nào?

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

    Post Cách cắt bớt ký tự trong label C# như thế nào?

    Chào mọi người !
    Tình hình là mình đang làm 1 web về bán sách,mình viết code cho hiển thị sách vào datalist rồi nhưng có điều có nhiều sách tên dài quá,mình muốn quy định số ký tự cho nó khi nó hiện dữ liệu trên label và phần về sau thì .... nhưng mình không biết làm sao
    Mình thì không biết dùng hàm sub.sting trong asp
    Có ai biết có thể giúp mình với

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

    Xem cái này thử nha:
    Code:
    public static string CatChuoi(this string s, int length)
        {
            if (String.IsNullOrEmpty(s))
                throw new ArgumentNullException(s);
            var words = s.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            if (words[0].Length > length)
                throw new ArgumentException("Từ đầu tiên dài hơn chuỗi cần cắt");
            var sb = new StringBuilder();
            foreach (var word in words)
            {
                if ((sb + word).Length > length)
                    return string.Format("{0}...", sb.ToString().TrimEnd(' '));
                sb.Append(word + " ");
            }
            return string.Format("{0}...", sb.ToString().TrimEnd(' '));
        }
    Trong cái code đó thì string s:chuỗi cần cắt và int lenght:số kí tự cần cắt.
    Chạy và xem thử nó ra sao!!
    Hope help

  3. #3
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Trích dẫn Nguyên bản được gửi bởi lythanh90 Xem bài viết
    Chào mọi người !
    Tình hình là mình đang làm 1 web về bán sách,mình viết code cho hiển thị sách vào datalist rồi nhưng có điều có nhiều sách tên dài quá,mình muốn quy định số ký tự cho nó khi nó hiện dữ liệu trên label và phần về sau thì .... nhưng mình không biết làm sao
    Mình thì không biết dùng hàm sub.sting trong asp
    Có ai biết có thể giúp mình với
    Trong SQL cũng có hàm substring mà. Chơi luôn trong đó thì sang ASP ko phải làm gì cả. Nhưng cái khó của nó là phải xử lý cắt từ ấy. ví dụ:

    chuỗi=" tôi đang viết bài"; mà cắt lấy 5 kí tự=>"tôi đ" ... như thế thật tệ đúng ko. hix! tuy nhiên, cái đó làm sau đi. tạm thời xử lý cái đó trong SQL là ổn!
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    18

    oh hay wa,thks 2 pro nhìu lắm

  5. #5
    Ngày gia nhập
    10 2011
    Bài viết
    18

    Trích dẫn Nguyên bản được gửi bởi vietvoquoc90 Xem bài viết
    Xem cái này thử nha:
    Code:
    public static string CatChuoi(this string s, int length)
        {
            if (String.IsNullOrEmpty(s))
                throw new ArgumentNullException(s);
            var words = s.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            if (words[0].Length > length)
                throw new ArgumentException("Từ đầu tiên dài hơn chuỗi cần cắt");
            var sb = new StringBuilder();
            foreach (var word in words)
            {
                if ((sb + word).Length > length)
                    return string.Format("{0}...", sb.ToString().TrimEnd(' '));
                sb.Append(word + " ");
            }
            return string.Format("{0}...", sb.ToString().TrimEnd(' '));
        }
    Trong cái code đó thì string s:chuỗi cần cắt và int lenght:số kí tự cần cắt.
    Chạy và xem thử nó ra sao!!
    Hope help
    sao khi mình chạy nó cứ báo lổi máy dòng này vậy bạn ArgumentNullException(s),StringBuilder() ,(this string s, int length),có cách nào khắc phục hem

  6. #6
    Ngày gia nhập
    08 2011
    Bài viết
    35

    Mặc định Cách cắt bớt ký tự trong label C# như thế nào?

    Có cách khác không cần chạy hàm cắt chuỗi như trên nữa.
    Dùng substring của C# luôn. Chặt chém luôn trước khi đưa vào lable.
    VD
    string mystring="toidihoc" //muốn lấy tôidi
    lbltex.text=mystring.substring(0,5);//

  7. #7
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Có hai cách làm:

    1. Cách hết sức giản dị, cứ đúng bao nhiêu kt thì cắt. Như cuongnguyenict đã chỉ. Hay cắt thẳng tử câu truy vấn SQL như mrfour.it đã đề cập.

    2. Cách phức tạp, trong trường hợp không muốn từ bị cắt ngay giữa. Cách này lại có hai giải thuật:

    2.1 Giải thuật dùng hàm split để tách ra từng từ rồi ghép lại cho đến khi đủ độ dài, như vietvoquoc90 đã chỉ

    2.2 Giải thuật dùng indexing of string để đếm ngược chuỗi, đúng độ dài và không chạm giữa từ thì cắt.

    Tham khảo ở đây
    Cắt n ký tự đầu tiên của một chuỗi với C#

  8. #8
    Ngày gia nhập
    10 2010
    Bài viết
    518

  9. #9
    Ngày gia nhập
    10 2011
    Bài viết
    18

    hehe mấy bác thật nhiệt tình,thks 2 bác nhìu lám mình làm được rồi

  10. #10
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Có hai cách làm:

    1. Cách hết sức giản dị, cứ đúng bao nhiêu kt thì cắt. Như cuongnguyenict đã chỉ. Hay cắt thẳng tử câu truy vấn SQL như mrfour.it đã đề cập.

    2. Cách phức tạp, trong trường hợp không muốn từ bị cắt ngay giữa. Cách này lại có hai giải thuật:

    2.1 Giải thuật dùng hàm split để tách ra từng từ rồi ghép lại cho đến khi đủ độ dài, như vietvoquoc90 đã chỉ

    2.2 Giải thuật dùng indexing of string để đếm ngược chuỗi, đúng độ dài và không chạm giữa từ thì cắt.

    Tham khảo ở đây
    Cắt n ký tự đầu tiên của một chuỗi với C#
    Mình có đọc qua cả 2 cách ở link bạn gửi. Cách 2 thì có vẻ ngắn hơn. Tuy nhiên, mấy bạn ở đó lại dùng giải thuật đệ quy=> khả năng sẽ chậm hơn cách 1. nếu là mình thì mình sẽ chọn cách 1- không dùng đệ quy. Để khi nảo rảnh đo tốc độ xem thế nào?
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

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

  1. Tạo mảng label trong C# thế nào?
    Gửi bởi xinbat trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 01-11-2011, 09:56 AM
  2. Graphic Trong suốt label 2 nhìn thấy label 1 mà không phải là nhìn form?
    Gửi bởi phuoc_it trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 10-08-2011, 03:17 PM
  3. Lấy giá trị của label(label.Text) trong datalist
    Gửi bởi nhatnghe_thuong trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 7
    Bài viết cuối: 16-02-2011, 04:48 PM
  4. Hiện/ẩn Label trong C# như thế nào?
    Gửi bởi tan_hoa_2322 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 01-12-2010, 02:42 PM
  5. random label trong lập trình C# thế nào nhỉ ??????
    Gửi bởi tan_hoa_2322 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 25-11-2010, 12:59 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