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

Đề tài: Chuyển Code từ VB quan C#

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

    Mặc định Chuyển Code từ VB quan C#

    Mình tìm đựoc 1 đoạn code trên mạng có chức năng chuyển tiền số thành tiền bằng chữ những hàm này viết bằng VB. Mình muốn chuyển sang C# nhưng 1 số chỗ chưa chuyển sang đựoc nên chưa chạy đựoc trên C#. Mình gửi nên đây ai biết thì chuyển giúp mình với .Cảm ơn nhiều


    VBNET Code:
    1. '======================================================
    2. Hàm này dùng để đưa một số bất kỳ (có dấu chấm thập phân) về dạng chuẩn
    3. (không có dấu thập phân)
    4. '======================================================
    5. Function Doisangsochuan(BaoNhieu)
    6.     BaoNhieu = Trim(BaoNhieu)
    7.     'Cat bỏ khoảng trống
    8.     Do While InStr(1,BaoNhieu," ") > 0
    9.         BaoNhieu = Mid(BaoNhieu, 1, InStr(1, BaoNhieu, " ") - 1) & Mid(BaoNhieu, InStr(1, BaoNhieu, " ") + 1)
    10.     Loop
    11.     Do While InStr(1, BaoNhieu, ".") > 0
    12.      BaoNhieu = Mid(BaoNhieu, 1, InStr(1, BaoNhieu, ".") - 1) & Mid(BaoNhieu, InStr(1, BaoNhieu, ".") + 1)
    13.     Loop
    14.     Doisangsochuan = BaoNhieu    
    15. End Function
    16.  
    17. '=====================================================
    18. 'Hàm này dùng để đổi tiền từ số sang chuẩn
    19. '=====================================================
    20. Function Tienchu(so)
    21.   Dim sotien, Hang, Donvi, Dem, tien
    22.   Dim Ketquacc
    23.   Dim n, Nhom, K    
    24.   Hang = Array("None", "trăm", "mươi", "gì đó")
    25.   Donvi = Array("None", "ngàn tỷ", "tỷ", "triệu", "ngàn", "đồng", "")
    26.   Dem = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín")
    27.   sotien = CStr(Cdbl(Doisangsochuan(so)))        'Đưa số về dạng chuẩn ko có dấu phân cách        
    28.   dai = len(sotien)
    29.   If Cdbl(sotien) = 0 then
    30.      Ketquacc = "Không đồng"
    31.   Else  ' sotien khác 0
    32.      sotien = Abs(sotien) & ".00"
    33.      sotien = Right(Space(15) & sotien, 18) ' Lay tong cong 18 ky tu
    34.   For n = 1 to 6
    35.         Nhom = Mid(sotien, (n * 3) - 2, 3)
    36.         If Nhom <> Space(3) Then
    37.            Select Case Nhom
    38.     Case "000"
    39.                    If n = 5 Then
    40.                  chu = "đồng" & Space(1)
    41.         Else
    42.                      chu = Space(0)
    43.                    End If
    44.                 Case ".00"
    45.                      chu = ""                    
    46.     Case Else    
    47.                      S1 = Left(Nhom, 1) : S2 = Mid(Nhom, 2, 1) : S3 = Right(Nhom, 1)
    48.                      chu = Space(0) : Hang(3) = Donvi(n)
    49.                      For K = 1 To 3
    50.                            dich = Space(0)
    51.                            If (Mid(Nhom, K, 1) <> " ") then
    52.                              S = Cint(Mid(Nhom, K, 1))                              
    53.                                 If S > 0 Then
    54.                        dich = Dem(S) & Space(1) & Hang(K) & Space(1)
    55.                     Else
    56.                                    If (K = 1) And (n > 1) And (n < 6) Then
    57.                                      dich = "không" & Space(1) & Hang(K) & Space(1)
    58.                                    End If
    59.                                End If
    60.                                 Select Case K
    61.                                        Case 2 And S = 1
    62.                                            dich = "mười" & Space(1)
    63.                                      Case 3 And S = 0 And Nhom <> Space(2) & "0"
    64.                                         dich = Hang(K) & Space(1)
    65.                                    Case 3 And S = 5 And s2 <> Space(1) And s2 <> "0"
    66.                                        dich = "l" & Mid(dich, 2)
    67.                                     Case 2 And S = 0 And S3 <> "0"
    68.                                      If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And n = 5) Then
    69.                                          dich = "lẻ" & Space(1)
    70.                                        End If
    71.                                  End Select    ' Của K
    72.                                              chu = chu & dich                                  
    73.                          End if  'Của S khác " "                              
    74.                         Next         'K
    75.             Vitri = InStr(chu, "mươi một")
    76.              If Vitri > 0 Then
    77.                            chu = Thaythechuoi(chu,"mươi một","mươi mốt")                  
    78.              End If
    79.                          Ketqua = Ketqua & chu                                                    
    80.                     End Select
    81.     End if            
    82.              Next    ' Của n
    83.            End if
    84.            Ketquacc = UCase(Left(Ketqua, 1)) & Trim(Mid(Ketqua, 2))
    85.            if Instr(Ketquacc,"đồng") = 0 then
    86.     Ketquacc = Ketquacc & " đồng"
    87.            End if    
    88.      Tienchu = Ketquacc
    89. End Function

    =================================================
    Chú ý lần sau cho code vào tag code - Sunflower
    Đã được chỉnh sửa lần cuối bởi sunflower : 18-03-2008 lúc 04:44 PM. Lý do: nhắc nhở

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

    Lấy trang web chuyển đại hy vọng được
    Visual C# Code:
    1. public object Doisangsochuan(object BaoNhieu)
    2. {
    3.     BaoNhieu = Strings.Trim(BaoNhieu);
    4.     //Cat bỏ khoảng trống
    5.     while (Strings.InStr(1, BaoNhieu, " ") > 0) {
    6.         BaoNhieu = Strings.Mid(BaoNhieu, 1, Strings.InStr(1, BaoNhieu, " ") - 1) + Strings.Mid(BaoNhieu, Strings.InStr(1, BaoNhieu, " ") + 1);
    7.     }
    8.     while (Strings.InStr(1, BaoNhieu, ".") > 0) {
    9.         BaoNhieu = Strings.Mid(BaoNhieu, 1, Strings.InStr(1, BaoNhieu, ".") - 1) + Strings.Mid(BaoNhieu, Strings.InStr(1, BaoNhieu, ".") + 1);
    10.     }
    11.     return BaoNhieu;
    12. }
    13.  
    14. //================================================= ====
    15. //Hàm này dùng để đổi tiền từ số sang chuẩn
    16. //================================================= ====
    17. public object Tienchu(object so)
    18. {
    19.     object sotien;
    20.     object Hang;
    21.     object Donvi;
    22.     object Dem;
    23.     object tien;
    24.     object Ketquacc;
    25.     object n;
    26.     object Nhom;
    27.     object K;
    28.     Hang = Array("None", "trăm", "mươi", "gì đó");
    29.     Donvi = Array("None", "ngàn tỷ", "tỷ", "triệu", "ngàn", "đồng", "");
    30.     Dem = Array("None", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín"
    31.     );
    32.     sotien = (string)(double)Doisangsochuan(so);
    33.     //Đưa số về dạng chuẩn ko có dấu phân cách
    34.     dai = Strings.len(sotien);
    35.     if ((double)sotien == 0) {
    36.         Ketquacc = "Không đồng";
    37.     }
    38.     else {
    39.         // sotien khác 0
    40.         sotien = Abs(sotien) + ".00";
    41.         sotien = Strings.Right(Strings.Space(15) + sotien, 18);
    42.         // Lay tong cong 18 ky tu
    43.         for (n = 1; n <= 6; n++) {
    44.             Nhom = Strings.Mid(sotien, (n * 3) - 2, 3);
    45.             if (Nhom != Strings.Space(3)) {
    46.                 switch (Nhom) {
    47.                     case "000":
    48.                         if (n == 5) {
    49.                             chu = "đồng" + Strings.Space(1);
    50.                         }
    51.                         else {
    52.                             chu = Strings.Space(0);
    53.                         }
    54.  
    55.                         break;
    56.                     case ".00":
    57.                         chu = "";
    58.                         break;
    59.                     default:
    60.                         S1 = Strings.Left(Nhom, 1);
    61.                         S2 = Strings.Mid(Nhom, 2, 1);
    62.                         S3 = Strings.Right(Nhom, 1);
    63.                         chu = Strings.Space(0);
    64.                         Hang(3) = Donvi(n);
    65.                         for (K = 1; K <= 3; K++) {
    66.                             dich = Strings.Space(0);
    67.                             if ((Strings.Mid(Nhom, K, 1) != " ")) {
    68.                                 S = (int)Strings.Mid(Nhom, K, 1);
    69.                                 if (S > 0) {
    70.                                     dich = Dem(S) + Strings.Space(1) + Hang(K) + Strings.Space(1);
    71.                                 }
    72.                                 else {
    73.                                     if ((K == 1) & (n > 1) & (n < 6)) {
    74.                                         dich = "không" + Strings.Space(1) + Hang(K) + Strings.Space(1);
    75.                                     }
    76.                                 }
    77.                                 switch (K) {
    78.                                     case 2 & S == 1:
    79.                                         dich = "mười" + Strings.Space(1);
    80.                                         break;
    81.                                     case 3 & S == 0 & Nhom != Strings.Space(2) + "0":
    82.                                         dich = Hang(K) + Strings.Space(1);
    83.                                         break;
    84.                                     case 3 & S == 5 & s2 != Strings.Space(1) & s2 != "0":
    85.                                         dich = "l" + Strings.Mid(dich, 2);
    86.                                         break;
    87.                                     case 2 & S == 0 & S3 != "0":
    88.                                         if ((S1 >= "1" & S1 <= "9") | (S1 == "0" & n == 5)) {
    89.                                             dich = "lẻ" + Strings.Space(1);
    90.                                         }
    91.  
    92.                                         break;
    93.                                 }
    94.                                 // Của K
    95.                                 chu = chu + dich;
    96.                             }
    97.                             //Của S khác " "
    98.                         }
    99.  
    100.                         //K
    101.                         Vitri = Strings.InStr(chu, "mươi một");
    102.                         if (Vitri > 0) {
    103.                             chu = Thaythechuoi(chu, "mươi một", "mươi mốt");
    104.                         }
    105.  
    106.                         Ketqua = Ketqua + chu;
    107.                         break;
    108.                 }
    109.             }
    110.         }
    111.         // Của n
    112.     }
    113.     Ketquacc = Strings.UCase(Strings.Left(Ketqua, 1)) + Strings.Trim(Strings.Mid(Ketqua, 2));
    114.     if (Strings.Instr(Ketquacc, "đồng") == 0) {
    115.         Ketquacc = Ketquacc + " đồng";
    116.     }
    117.     return Ketquacc;
    118. }
    Mình từ Caulacbovb qua)
    Giã từ VB6 đến với VB.Net, C# và Java.

  3. #3
    Ngày gia nhập
    04 2007
    Bài viết
    21

    Cảm ơn anhtuyenbk nhiều .Để tối mình về nhà Test thủ xem thế nào?
    Mà cho hỏi vào trang nào để chuyển vậy

  4. #4
    Ngày gia nhập
    04 2008
    Bài viết
    37

    Mình có biết 1 trang bạn vào thử
    Code:
    http://www.developerfusion.com/tools/convert/vb-to-csharp/

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

  1. Chuyển code sang code ngắn hơn trong LINQ
    Gửi bởi tinhthanhiepsi9x trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 14-04-2012, 11:19 AM
  2. Chuyển đổi dữ liệu từ XML sang CSDL quan hệ
    Gửi bởi bltoan2004 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 04-03-2011, 01:24 PM
  3. Chuyển code Nested Dolls từ C sang code pascal
    Gửi bởi longago trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 04-01-2011, 08:54 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