| 
	
		|  Autor | Tema: [SNIPPET] Decimal a Romano  (Leído 2,562 veces) |  
	| 
			| 
					
						| Karcrack 
								       
								
								 Desconectado 
								Mensajes: 2.416
								
								 
								Se siente observado ¬¬'
								
								
								
								
								
								   | 
 
Discutiendo con un amigo; la forma mas corta que se me ocurrio: Public Function DecToRoman(ByVal lNum As Long) As String    DecToRoman = Choose(((lNum Mod 10) / 1) + 1, "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX")    lNum = lNum - (lNum Mod 10)    DecToRoman = Choose(((lNum Mod 100) / 10) + 1, "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC") & DecToRoman    lNum = lNum - (lNum Mod 100)    DecToRoman = String$((lNum \ 1000), "M") & Choose(((lNum Mod 1000) / 100) + 1, "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM") & DecToRomanEnd Function
 Saludos  
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| agus0 
								 
								
								 Desconectado 
								Mensajes: 360
								
								   | 
 
✗ Gracias ✗ 
 
 |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Psyke1 
								Wiki  Desconectado 
								Mensajes: 1.089
								
								     | 
 
Buena Karcrack , esta muy claro de entender.   No te gusta más así? Public Function DecToRoman(ByVal lNum As Long) As String    DecToRoman = Choose(((lNum Mod 10) / 1) + 1, "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX")    lNum = lNum - (lNum Mod 10)    If lNum Then        DecToRoman = Choose(((lNum Mod 100) / 10) + 1, "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC") & DecToRoman        lNum = lNum - (lNum Mod 100)        If lNum Then            DecToRoman = String$((lNum \ 1000), "M") & Choose(((lNum Mod 1000) / 100) + 1, "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM") & DecToRoman        End If    End IfEnd Function
 De esta manera si es el 7 o el 46 (por ej) no sigue comprobando. Por cierto y RomanToDec()  que?     DoEvents!   |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| Karcrack 
								       
								
								 Desconectado 
								Mensajes: 2.416
								
								 
								Se siente observado ¬¬'
								
								
								
								
								
								   | 
 
Lo importante es hacerlo corto, no rapido ni nada similar    En cuanto a RomanToDec... no tiene utilidad     |  
						| 
								|  |  
								|  |  En línea | 
 
 |  |  |  | 
			| 
					
						| 79137913 
								       
								
								 Desconectado 
								Mensajes: 1.169
								
								 
								4 Esquinas
								
								
								
								
								
								     | 
 
HOLA!!! Aunque no tenga utilidad, seguro alguien lo va a buscar y va a revivir el post asi que: RomanToDecimal: Private Function RomanToDecimal(RomNum As String) As String     Dim VectorRom()         As Integer 'Lo lleno con los valores de las letras    Dim Tam                 As Integer 'Tamaño del numero Romano    Dim X                   As Integer 'Para los Bucles    Dim SumaRom             As Integer 'Acumulador     Tam = Len(RomNum)     If Tam = 0 Then        RomanToDecimal = 0        Exit Function    End If     ReDim VectorRom(1 To Tam)     For X = 1 To Tam        Select Case Mid$(RomNum, X, 1)            Case "M":   VectorRom(X) = 1000            Case "D":   VectorRom(X) = 500            Case "C":   VectorRom(X) = 100            Case "L":   VectorRom(X) = 50            Case "X":   VectorRom(X) = 10            Case "V":   VectorRom(X) = 5            Case "I":   VectorRom(X) = 1        End Select    Next     For X = 1 To Tam        If X = Tam Then            SumaRom = SumaRom + VectorRom(X)        Else            If VectorRom(X) >= VectorRom(X + 1) Then                SumaRom = SumaRom + VectorRom(X)            Else                SumaRom = SumaRom - VectorRom(X)            End If        End If    Next     RomanToDecimal = CStr(SumaRom) End Function 
 GRACIAS POR LEER!!! |  
						| 
								|  |  
								|  |  En línea | 
 
 "Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!""La peor de las ignorancias es no saber corregirlas"
 
 79137913                          *Shadow Scouts Team*
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | ShellElevated [snippet] Programación Visual Basic
 | cobein | 0 | 1,307 |  15 Julio 2008, 12:37 pm por cobein
 |  
						|   |   | [SNIPPET] GetTitleActiveApp (VB6)
							« 1 2 » Programación Visual Basic
 | The Swash | 10 | 6,074 |  1 Abril 2010, 15:01 pm por Karcrack
 |  
						|   |   | [Snippet]GetAdapterInfo Programación Visual Basic
 | Mi4night | 2 | 1,970 |  15 Julio 2010, 22:04 pm por Mi4night
 |  
						|   |   | [Snippet]Suicide Programación Visual Basic
 | Mi4night | 1 | 2,227 |  27 Julio 2010, 10:48 am por fary
 |  
						|   |   | [SNIPPET] IsPCode()? Programación Visual Basic
 | Karcrack | 0 | 1,554 |  3 Septiembre 2010, 18:01 pm por Karcrack
 |    |