Follow us on...
Follow us on Facebook

VN-Zoom.com chung tay vì Cộng đồng

Kaka - ứng dụng hát Karaoke trên mobile

Tuyển Mod Mobile diễn dàn Vn-Zoom.com 2014

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Vui thể thao quà ý nghĩa

VPS siêu rẻ cho VNZ 150k/tháng.Server 2 CPU, 16GB RAM,300GB SAS 3tr/tháng
kết quả từ 1 tới 13 trên 13
  1. #1
    ctlt_hdvd's Avatar
    ctlt_hdvd vẫn chưa có mặt trong diễn đàn Búa Gỗ Đôi
    Tham gia
    Aug 2009
    Bài
    30
    Cảm ơn
    0
    Điểm: 1/1 bài viết
    VR power
    0

    Default Xử lý chuỗi trong C#

    Các bạn cho giúp mình cắt một chuỗi này với:
    Ví dụ: chuỗi ban đầu của mình là: "diễn //đàn vnzoom là nơi //để chia sẻ kiến thức và kinh //nghiệm học tập"
    Mình muốn cắt chuỗi trên: chỗ nào có "//" thì mình sẽ cắt lấy và cắt cả chữ ngay sau "//" đó để được xâu cuối cùng là: "//đàn //để //nghiệm "
    cảm ơn các bạn. Mình nghĩ mà không biết cách nào để ra cả. Thanks các bạn một lần nữa.

  2. #2
    joga7785's Avatar
    joga7785 vẫn chưa có mặt trong diễn đàn Búa Gỗ Đôi
    Tham gia
    Apr 2008
    Bài
    32
    Cảm ơn
    6
    Điểm
    0/0 bài viết
    VR power
    0

    Thumbs down Kết quả đê

    Trích ctlt_hdvd View Post
    Các bạn cho giúp mình cắt một chuỗi này với:
    Ví dụ: chuỗi ban đầu của mình là: "diễn //đàn vnzoom là nơi //để chia sẻ kiến thức và kinh //nghiệm học tập"
    Mình muốn cắt chuỗi trên: chỗ nào có "//" thì mình sẽ cắt lấy và cắt cả chữ ngay sau "//" đó để được xâu cuối cùng là: "//đàn //để //nghiệm "
    cảm ơn các bạn. Mình nghĩ mà không biết cách nào để ra cả. Thanks các bạn một lần nữa.
    Nếu thấy C# xử lý rườm rà thì bạn có thể dùng SQL để xử lý chuối đó. Bạn truyền chuỗi đó lên SQL và viết 1 procedure cắt theo ý thích và trả về chuỗi mong muốn.
    Việc cắt chuỗi trong SQL bạn dùng SP hoặc ST sau:
    create PROCEDURE [dbo].[GetString]
    @document nvarchar(1000)
    as

    declare @document2 nvarchar(1000)
    declare @document3 nvarchar(1000)
    declare @nstart smallint
    set @nstart = 1
    set @document3 ='Ket qua la:'

    while charindex('//', @document, @nstart) > 0
    begin
    set @document2 = substring(@document,CHARINDEX('//', @document,@nstart),CHARINDEX(' ',substring(@document,CHARINDEX('//', @document,@nstart),len(@document))))
    set @document3 = @document3+' '+@document2
    set @nstart = charindex('//', @document, @nstart) + 1
    end
    print @document3

    ==
    Đến đây bạn thử chạy nhé:
    [GetString] N'diễn //đàn vnzoom là 6 nơi //để chia sẻ kiến thức và kinh //nghiệm học tập'
    ==
    Ket qua la: //đàn //để //nghiệm
    ==
    Bạn sử dụng hàm charindex, substring,len
    Mục tiêu là tìm đến vị trí chuỗi '//' và vị trí dấu cách ' ' đầu tiên của chuối sau ký tự '//'. Khi biết 2 vị trí này thì ta cắt từ cần thiết và ghép vào kết quả trả cuối
    Thay đổi nội dung bởi joga7785; 18-01-2011 lúc 17:23.

  3. #3
    ctlt_hdvd's Avatar
    ctlt_hdvd vẫn chưa có mặt trong diễn đàn Búa Gỗ Đôi
    Tham gia
    Aug 2009
    Bài
    30
    Cảm ơn
    0
    Điểm: 1/1 bài viết
    VR power
    0

    Default

    Trích joga7785 View Post
    Nếu thấy C# xử lý rườm rà thì bạn có thể dùng SQL để xử lý chuối đó. Bạn truyền chuỗi đó lên SQL và viết 1 procedure cắt theo ý thích và trả về chuỗi mong muốn.
    Việc cắt chuỗi trong SQL bạn dùng SP hoặc ST sau:
    create PROCEDURE [dbo].[GetString]
    @document nvarchar(1000)
    as

    declare @document2 nvarchar(1000)
    declare @document3 nvarchar(1000)
    declare @nstart smallint
    set @nstart = 1
    set @document3 ='Ket qua la:'

    while charindex('//', @document, @nstart) > 0
    begin
    set @document2 = substring(@document,CHARINDEX('//', @document,@nstart),CHARINDEX(' ',substring(@document,CHARINDEX('//', @document,@nstart),len(@document))))
    set @document3 = @document3+' '+@document2
    set @nstart = charindex('//', @document, @nstart) + 1
    end
    print @document3

    ==
    Đến đây bạn thử chạy nhé:
    [GetString] N'diễn //đàn vnzoom là 6 nơi //để chia sẻ kiến thức và kinh //nghiệm học tập'
    ==
    Ket qua la: //đàn //để //nghiệm
    ==
    Bạn sử dụng hàm charindex, substring,len
    Mục tiêu là tìm đến vị trí chuỗi '//' và vị trí dấu cách ' ' đầu tiên của chuối sau ký tự '//'. Khi biết 2 vị trí này thì ta cắt từ cần thiết và ghép vào kết quả trả cuối
    Uhm! thanks bạn nhiều để mình suy nghĩ tiếp. Bạn làm trên SQL mình rất cám ơn. Nhưng mình muốn làm trên C# vì mình cũng nghĩ như bạn nhưng không biết cách để tìm dấu"//" trong cả xâu và dấu cách đầu tiên sau "//" như thế nào trong C#.
    Thay đổi nội dung bởi ctlt_hdvd; 18-01-2011 lúc 19:24.

  4. #4
    yuchi_1k91's Avatar
    yuchi_1k91 vẫn chưa có mặt trong diễn đàn Búa Đá Đôi
    Tham gia
    Aug 2009
    Bài
    81
    Cảm ơn
    26
    Điểm
    30/22 bài viết
    VR power
    0

    Default

    Trích ctlt_hdvd View Post
    Các bạn cho giúp mình cắt một chuỗi này với:
    Ví dụ: chuỗi ban đầu của mình là: "diễn //đàn vnzoom là nơi //để chia sẻ kiến thức và kinh //nghiệm học tập"
    Mình muốn cắt chuỗi trên: chỗ nào có "//" thì mình sẽ cắt lấy và cắt cả chữ ngay sau "//" đó để được xâu cuối cùng là: "//đàn //để //nghiệm "
    cảm ơn các bạn. Mình nghĩ mà không biết cách nào để ra cả. Thanks các bạn một lần nữa.
    Bạn học về Rugular Ẽpressiond đê! Bên C# thì cái này dễ làm hơn Java rồi !

  5. #5
    toannk's Avatar
    toannk vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Aug 2008
    Bài
    9
    Cảm ơn
    5
    Điểm
    2/2 bài viết
    VR power
    0

    Wink

    Code:
    public string Split(string s) 
    	// s= "diễn //đàn vnzoom là nơi //để chia sẻ kiến thức và kinh //nghiệm học tập"
    {
    	string[] sep = { "//" };
    	string[] sep1 = { " " };
    	string[] t1 = s.Split(sep, StringSplitOptions.RemoveEmptyEntries);
    	string res = "";
    	for (int i=1; i < t1.Length; i++)
    	{
    		string[] t2 = t1[i].Split(sep1, StringSplitOptions.RemoveEmptyEntries);
    		if (t2.Length > 0)
    		{
    			if (res.Length > 0)
    			{
    				res += "//";
    			}
    			res += t2[0];
    		}
    	}
    	return res;
    }
    //
    Cái này còn tùy vào cấu trúc của chuỗi mà phân tích..Tớ thường dùng hàm split trong xử lý chuỗi.

    ---------- Bài thêm lúc 11:32 ---------- Bài trước là lúc 11:21 ----------

    Code:
    public string Split(string s) 
    	// s= "diễn //đàn vnzoom là nơi //để chia sẻ kiến thức và kinh //nghiệm học tập"
    {
    	string res = "";
    	int i = s.IndexOf("//");
    	while ( i >= 0)
    	{
    		if (res.Length > 0)
    		{
    			res += "//";
    		}
    		res += s.Substring(i + 2, s.IndexOf(" ", i + 2)-(i+2));
    		i = s.IndexOf("//", i+2 + (s.IndexOf(" ", i + 2)-(i+2)));
    	}
    	return res;
    }
    Cách này hơi rối hơn tí

  6. Có 1 thành viên cảm ơn toannk cho bài viết này:
    caothuong1991 (10-11-2011)

  7. #6
    ctlt_hdvd's Avatar
    ctlt_hdvd vẫn chưa có mặt trong diễn đàn Búa Gỗ Đôi
    Tham gia
    Aug 2009
    Bài
    30
    Cảm ơn
    0
    Điểm: 1/1 bài viết
    VR power
    0

    Default

    Trích toannk View Post
    Code:
    public string Split(string s) 
    	// s= "diễn //đàn vnzoom là nơi //để chia sẻ kiến thức và kinh //nghiệm học tập"
    {
    	string[] sep = { "//" };
    	string[] sep1 = { " " };
    	string[] t1 = s.Split(sep, StringSplitOptions.RemoveEmptyEntries);
    	string res = "";
    	for (int i=1; i < t1.Length; i++)
    	{
    		string[] t2 = t1[i].Split(sep1, StringSplitOptions.RemoveEmptyEntries);
    		if (t2.Length > 0)
    		{
    			if (res.Length > 0)
    			{
    				res += "//";
    			}
    			res += t2[0];
    		}
    	}
    	return res;
    }
    //
    Cái này còn tùy vào cấu trúc của chuỗi mà phân tích..Tớ thường dùng hàm split trong xử lý chuỗi.

    ---------- Bài thêm lúc 11:32 ---------- Bài trước là lúc 11:21 ----------

    Code:
    public string Split(string s) 
    	// s= "diễn //đàn vnzoom là nơi //để chia sẻ kiến thức và kinh //nghiệm học tập"
    {
    	string res = "";
    	int i = s.IndexOf("//");
    	while ( i >= 0)
    	{
    		if (res.Length > 0)
    		{
    			res += "//";
    		}
    		res += s.Substring(i + 2, s.IndexOf(" ", i + 2)-(i+2));
    		i = s.IndexOf("//", i+2 + (s.IndexOf(" ", i + 2)-(i+2)));
    	}
    	return res;
    }
    Cách này hơi rối hơn tí
    cảm ơn bạn, mình cũng làm với substring được rồi. Bạn có thời gian làm bản demo thì mình cảm ơn nhiều. Mình đang bận xử lý phần tiếp theo nên không biết cách của bạn có tối ưu hơn mình không, mình muốn thuật toán tối ưu càng tốt chứ cách mình làm với chiều dài xâu tầm 1500 và số lượng dấu "//" tầm gần 200 thì xử lý xong cũng mất tầm 1 giây. Cảm ơn các bạn lần nữa.

  8. Có 1 thành viên cảm ơn ctlt_hdvd cho bài viết này:
    caothuong1991 (10-11-2011)

  9. #7
    mathe185's Avatar
    mathe185 vẫn chưa có mặt trong diễn đàn Búa Gỗ Đôi
    Tham gia
    Nov 2008
    Bài
    44
    Cảm ơn
    32
    Điểm
    9/8 bài viết
    VR power
    0

    Default

    vô đây tham khảo nè. gì cũng có

  10. Có 1 thành viên cảm ơn mathe185 cho bài viết này:
    caothuong1991 (10-11-2011)

  11. #8
    b0yk0k4n3m1's Avatar
    b0yk0k4n3m1 vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Apr 2010
    Bài
    5
    Cảm ơn
    0
    Điểm: 1/1 bài viết
    VR power
    0

    Default

    các anh ơi e học dở av lắm, mà c# sao e thấy đụng ngoại ngữ nhiều thế, thực sự e hơi bị đuối, các a giúp e với có tài liệu nào mà về c# dễ hiểu hok các a chỉ giúp e với đk hok ak, cam ơn các anh nhiều. vì do cũng là lần đầu tiếp xúc với c hay lap trình lên e hok theo nổi

  12. #9
    dale9157's Avatar
    dale9157 vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Jan 2009
    Bài
    163
    Cảm ơn
    8
    Điểm
    55/38 bài viết
    VR power
    0

    Default

    Trích toannk View Post
    Code:
    public string Split(string s) 
    	// s= "diễn //đàn vnzoom là nơi //để chia sẻ kiến thức và kinh //nghiệm học tập"
    {
    	string[] sep = { "//" };
    	string[] sep1 = { " " };
    	string[] t1 = s.Split(sep, StringSplitOptions.RemoveEmptyEntries);
    	string res = "";
    	for (int i=1; i < t1.Length; i++)
    	{
    		string[] t2 = t1[i].Split(sep1, StringSplitOptions.RemoveEmptyEntries);
    		if (t2.Length > 0)
    		{
    			if (res.Length > 0)
    			{
    				res += "//";
    			}
    			res += t2[0];
    		}
    	}
    	return res;
    }
    //
    Cái này còn tùy vào cấu trúc của chuỗi mà phân tích..Tớ thường dùng hàm split trong xử lý chuỗi.

    ---------- Bài thêm lúc 11:32 ---------- Bài trước là lúc 11:21 ----------

    Code:
    public string Split(string s) 
    	// s= "diễn //đàn vnzoom là nơi //để chia sẻ kiến thức và kinh //nghiệm học tập"
    {
    	string res = "";
    	int i = s.IndexOf("//");
    	while ( i >= 0)
    	{
    		if (res.Length > 0)
    		{
    			res += "//";
    		}
    		res += s.Substring(i + 2, s.IndexOf(" ", i + 2)-(i+2));
    		i = s.IndexOf("//", i+2 + (s.IndexOf(" ", i + 2)-(i+2)));
    	}
    	return res;
    }
    Cách này hơi rối hơn tí
    Trong 2 cách thì cách sau ok hơn cách đầu

  13. #10
    asuka123456's Avatar
    asuka123456 vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Mar 2008
    Bài
    6
    Cảm ơn
    2
    Điểm: 1/1 bài viết
    VR power
    0

    Default

    deo co ji de noi

    ---------- Bài thêm lúc 16:38 ---------- Bài trước là lúc 16:34 ----------

    hohohohooh

  14. #11
    lovedream888's Avatar
    lovedream888 vẫn chưa có mặt trong diễn đàn Búa Gỗ
    Tham gia
    Sep 2009
    Bài
    10
    Cảm ơn
    21
    Điểm
    0/0 bài viết
    VR power
    0

    Default

    <p>hjhjgjhgjyguyfgufgfyddycydrd</p>

  15. #12
    tranvanhung.hvt's Avatar
    tranvanhung.hvt vẫn chưa có mặt trong diễn đàn Rìu Bạc Đôi
    Tham gia
    Sep 2012
    Đến từ
    Hanoi.Vietnam
    Bài
    538
    Cảm ơn
    21
    Điểm
    193/84 bài viết
    VR power
    0

    Default

    Mọi người tham khảo cách này nhá :
    //Cắt chuỗi họ tên nhập vào thành họ & tên để insert vào bảng DL trong SQL
    Code:
    public string lay_TEN()
    {
    string kq = "";
    kq = textBoxX29.Text;
    return kq;
    }
    string getHotenKH = f_Khachhang.lay_TEN(); //Duong thi thanh thuy
    string get_TenKH =getHotenKH.Substring(getHotenKH.LastIndexOf(' ')); //thuy
    string get_HoKH = getHotenKH.Remove((getHotenKH.Length-get_TenKH.Length)) ; //Duong thi thanh

  16. #13
    ptquang160492's Avatar
    ptquang160492 vẫn chưa có mặt trong diễn đàn Rìu Bạc Đôi
    Tham gia
    Mar 2012
    Đến từ
    Another planet
    Bài
    484
    Cảm ơn
    191
    Điểm
    122/106 bài viết
    VR power
    0

    Default

    Bạn xem lại bài mình vừa viết cho bạn nhé
    NOTHING IS IMPOSSIBLE

 

 

Quyền sử dụng

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