Traduction d'un code Vb .net vers un code C#

Résolu
el3orf Messages postés 4 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 30 août 2010 - 30 août 2010 à 11:12
 Profil bloqué - 30 août 2010 à 21:44
Bjr,
je sais bien developper en Vb mais en c# je ss nul
priere qq1 m'aider a traduire ce code en c# et merci.

// le code en VB .net

Public Function Horof(ByVal X As Double)
Dim Ma As String = " د.ل لا غير"
Dim Mi As String = " درهم"
Dim Result As String = ""
Dim R As String = ""
Dim B As Integer
Dim N = (X)
B = Val(Right(Format(X, "000000000000.00"), 2))
R = SHorof(N)
If R <> "" And B > 0 Then Result = R & Ma & " و " & B & Mi
If R <> "" And B 0 Then Result R & Ma
If R "" And B <> 0 Then Result B & Mi
Horof = Result
End Function



Private Function SHorof(ByVal X)
Dim N = Int(X)
Dim C, C1, C2, C3, C4, C5, C6 As String
Dim letter1 As String = ""
Dim letter2 As String = ""
Dim letter3 As String = ""
Dim letter4 As String = ""
Dim letter5 As String = ""
Dim letter6 As String = ""
C = Format(N, "000000000000")
C1 = Val(Mid(C, 12, 1))
Select Case C1
Case Is 1 : Letter1 "واحد"
Case Is 2 : Letter1 "اثنان"
Case Is 3 : Letter1 "ثلاثة"
Case Is 4 : Letter1 "اربعة"
Case Is 5 : Letter1 "خمسة"
Case Is 6 : Letter1 "ستة"
Case Is 7 : Letter1 "سبعة"
Case Is 8 : Letter1 "ثمانية"
Case Is 9 : Letter1 "تسعة"
End Select
C2 = Val(Mid(C, 11, 1))
Select Case C2
Case Is 1 : Letter2 "عشر"
Case Is 2 : Letter2 "عشرون"
Case Is 3 : Letter2 "ثلاثون"
Case Is 4 : Letter2 "اربعون"
Case Is 5 : Letter2 "خمسون"
Case Is 6 : Letter2 "ستون"
Case Is 7 : Letter2 "سبعون"
Case Is 8 : Letter2 "ثمانون"
Case Is 9 : Letter2 "تسعون"
End Select
If Letter1 <> "" And C2 > 1 Then Letter2 = Letter1 + " و" + Letter2
If Letter2 "" Then Letter2 Letter1
If C1 0 And C2 1 Then Letter2 = Letter2 + "ة"
If C1 1 And C2 1 Then Letter2 = "احدى عشر"
If C1 2 And C2 1 Then Letter2 = "اثنى عشر"
If C1 > 2 And C2 1 Then Letter2 Letter1 + " " + Letter2
C3 = Val(Mid(C, 10, 1))
Select Case C3
Case Is 1 : Letter3 "مائة"
Case Is 2 : Letter3 "مئتان"
Case Is > 2 : Letter3 = Left(SHorof(C3), Len(SHorof(C3)) - 1) + "مائة"
End Select
If Letter3 <> "" And Letter2 <> "" Then Letter3 = Letter3 + " و" + Letter2
If Letter3 "" Then Letter3 Letter2
C4 = Val(Mid(C, 7, 3))
Select Case C4
Case Is 1 : Letter4 "الف"
Case Is 2 : Letter4 "الفان"
Case 3 To 10 : Letter4 = SHorof(C4) + " آلاف"
Case Is > 10 : Letter4 = SHorof(C4) + " الف"
End Select
If Letter4 <> "" And Letter3 <> "" Then Letter4 = Letter4 + " و" + Letter3
If Letter4 "" Then Letter4 Letter3
C5 = Val(Mid(C, 4, 3))
Select Case C5
Case Is 1 : Letter5 "مليون"
Case Is 2 : Letter5 "مليونان"
Case 3 To 10 : Letter5 = SHorof(C5) + " ملايين"
Case Is > 10 : Letter5 = SHorof(C5) + " مليون"
End Select
If Letter5 <> "" And Letter4 <> "" Then Letter5 = Letter5 + " و" + Letter4
If Letter5 "" Then Letter5 Letter4
C6 = Val(Mid(C, 1, 3))
Select Case C6
Case Is 1 : Letter6 "مليار"
Case Is 2 : Letter6 "ملياران"
Case Is > 2 : Letter6 = SHorof(C6) + " مليار"
End Select
If Letter6 <> "" And Letter5 <> "" Then Letter6 = Letter6 + " و" + Letter5
If Letter6 "" Then Letter6 Letter5
SHorof = Letter6
End Function
A voir également:

4 réponses

raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
30 août 2010 à 11:28
Salut,
CodeSource fourni gratuitement
un convertisseur de code vb vers c#
http://tools.codes-sources.com/
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
30 août 2010 à 11:28
Tu peux essayer d'utiliser l'outil de la communauté.

Il ne traduira peut-etre pas tout, mais t'avancera déjà une bonne partie

http://tools.codes-sources.com/DotNetCodeConverter.aspx

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
3
el3orf Messages postés 4 Date d'inscription vendredi 2 novembre 2007 Statut Membre Dernière intervention 30 août 2010
30 août 2010 à 12:13
merci pour votre collaboration , mais il reste qq instructions aux quelles je ne peux pas trouver leurs équivalents en c# comme:

B = Val(Right(Format(X, "000000000000.00"), 2)) ??
3
Profil bloqué
30 août 2010 à 21:44
Salut

C'est normal que certaines instructions ne soient pas traduisibles car ce sont des instructions ou fonctions VB 6.0 ( Val et Right et Mid par exemple)


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
Rejoignez-nous