|
383
|
Programación / .NET (C#, VB.NET, ASP) / Re: Ayuda números aleatorios
|
en: 25 Noviembre 2016, 00:17 am
|
Usa Console.ReadKey().KeyCharAl pulsar 1 crea los números aleatorios: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { char op = '\0'; // int num = 0; Console.WriteLine("Elija una opcion:"); op = Console.ReadKey().KeyChar; switch (op) { case '1': Opcion1(); break; case '2': Opcion2(); break; case '3': break; case '4': break; } Console.ReadLine(); } public static void Opcion1() { Random rdn = new Random (); int a = rdn.Next(10, 30); int b = rdn.Next(10, 30); Console.WriteLine(Environment.NewLine); Console.WriteLine("Números aleatorios: {0} y {1}", a, b); } public static void Opcion2() { } } }
Usa Console.ReadLine() en lugar de Console.ReadKey(), pero tienes que pulsar Enter para iniciar la función using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int op = 0; // int num = 0; Console.WriteLine("Elija una opcion:"); op = Convert.ToInt32(Console.ReadLine()); switch (op) { case 1: Opcion1(); break; case 2: Opcion2(); break; case 3: break; case 4: break; } Console.ReadLine(); } public static void Opcion1() { Random rdn = new Random (); int a = rdn.Next(10, 30); int b = rdn.Next(10, 30); Console.WriteLine(Environment.NewLine); Console.WriteLine("Números aleatorios: {0} y {1}", a, b); } public static void Opcion2() { } } }
También: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string op = null; // int num = 0; Console.WriteLine("Elija una opcion:"); op = Console.ReadLine(); switch (op) { case "1": Opcion1(); break; case "2": Opcion2(); break; case "3": break; case "4": break; } Console.ReadLine(); } public static void Opcion1() { Random rdn = new Random (); int a = rdn.Next(10, 30); int b = rdn.Next(10, 30); Console.WriteLine(Environment.NewLine); Console.WriteLine("Números aleatorios: {0} y {1}", a, b); } public static void Opcion2() { } } }
|
|
|
385
|
Programación / .NET (C#, VB.NET, ASP) / Re: Cálcular Raiz Cuadrada de un número en Visual Basic 2010
|
en: 24 Noviembre 2016, 15:44 pm
|
Puedes usar la clase System.Math y la función SqrtDim Raiz As Decimal = Math.Sqrt(36) MessageBox.Show(Raiz)
Aunque no existiera tal función, sabiendo un poco de matemáticas y qué es una raíz cuadrada deberías saber que una raíz cuadrada de un numero es igual que la potencia del radicando con exponente 1/2a(1/2)MessageBox.Show(36^(1/2)) 'devuelve 6 ya que 6 x 6 = 36
La raíz cúbica sería: a(1/3)MessageBox.Show(125^(1/3)) 'devuelve 5 ya que 5 x 5 x 5 = 125
|
|
|
386
|
Programación / .NET (C#, VB.NET, ASP) / Re: Argumentos o Parámetros en .EXE de vb.NET?
|
en: 19 Noviembre 2016, 19:36 pm
|
No había entendido tu pregunta pero tras ver la respuesta de engel lex. Creo que entendí lo que quieres. Supongo que lo que quieres es mediante una línea de comandos de consola llenar un textbox de tu aplicación del modo: WindowsApplication1 text "hola mundo" (donde WindowsApplication1 es el nombre de la aplicación) Como te ha mostrado @engel lex, se puede obtener una entrada de comandos mediante Environment.GetCommandLineArgs() Dim Command() As String = Environment.GetCommandLineArgs()
Se obtiene una matriz donde cada palabra añade un elemento a la matriz: Por ejemplo, si pones " WindowsApplication1 mañana es domingo", obtendrías: Command(0) = WindowsApplication1 Command(1) = mañana Command(2) = es Command(3) = domingo Entonces para crear una línea de comandos compuesta debes tener en cuenta esto. Así puedes establecer que si el primer comando es "open", ejecutar un proceso que sería el elemento (2) de la matriz. If Command(1) = "open" then Process.Start(Commmand(2))
Ejemplo: Dim Command() As String = Environment.GetCommandLineArgs Select Case Command(1) Case "open" Process.Start(Command(2).ToString) Case "text" TextBox1.Text = Command(2).ToString End Select
Crea un archivo CMD junto en el mismo directorio de la aplicación y le pones: WindowsApplication1 text "Hola mundo" (WindowsApplication1 es el nombre de la aplicación) Se llenará el Textbox con el texto 'Hola mundo' (sin las comillas). Si pones WindowsApplication1 open notepad Se abrirá el bloc de notas de Windows.
para obtener la línea de comandos completa usa Environment.CommandLine. Dim Command As String = Environment.CommandLine MessageBox.Show(Command)
|
|
|
387
|
Programación / Programación Visual Basic / Re: !Ayuda! Necesito instalar vb 5.0 en Windows 7 64bits
|
en: 17 Noviembre 2016, 15:17 pm
|
¿has probado este para VB6? Instalar Visual Studio 6.0 en Windows7 64 bitsMira el apartado [OTRA FORMA DE INSTALAR VS6 EN W7-64BITS]Por cierto, es mío.
Acabo de probar con VB5, no hay problemas para instalarlo y además funciona. Tan solo as de hacer clic con el botón derecho sobre vb5cce.exe, seleccionar 'Propiedades' y cambiar la a compatibilidad en Windows95.
Claro que yo ya tengo instalado VB6, así que no se que pasaría en un W7 64bits, limpio, sin instalación previa de vb6.Perdón, lo que he instalado es una versión reducida de VB5, por error perdí la imagen de disco original y se ve que la sustituí por una versión reducida, que lo único que hace es descomprimir los archivos en una carpeta. Ya me extrañaba a mi que no me pidiera el serial, ni me dejara elegir componentes
Vale ya lo encontré, lo tenía en otra carpeta. Vale el problema es que para instalar se debe ejecutar 'F:\Vb\SETUP\SETUP.EXE'que de 16bits y no se puede ejecutar en 64bits. voy a mirar a ver.
INSTALAR VB5 EN WINDOWS 7 64 BITS1. Crea una carpeta en el escritorio llámala VB5 (o lo que quieras) 2. Copia el contenido del disco o imagen de disco de VB5 en esa carpeta. 3. Dirígete a [...\Desktop\VB5\Vb\SETUP]4. Haz una copia de VB5STP.STF y lo renombras por ACMSETUP.STF5. Ejecuta ACMSETUP.EXE. 6. Sigue los pasos de instalación.
También es aplicable el truco para ejecutar el SETUP.EXE original de 16bits en Windows 7 64bits que usé en el apartado [OTRA FORMA DE INSTALAR VS6 EN W7-64BITS] en este tutorial para instalar VB6: Instalar Visual Studio 6.0 en Windows7 64 bitsQue consiste en abrir .:\Vb\SETUP\SETUP.EXE con C++ en modo Resources y cambiar en Versión el valor [Programa de instalación de Microsoft para Windows] por [Microsoft Setup for Windows] y guardar los cambios. Si se hace esto SETUP.EXE. de 16bits se ejecutará en Windows7 64bits. También se puede usar un editor hexadecimal y reemplazarlo manualmente: (Sustituye los caracteres que sobran por [00] que es igual a '.' (punto)) En VB6 se debía modificar ACMBOOT.EXE, pero con VB5 es SETUP.EXE (OJO el que se encuentra en [.:\Vb\SETUP\]
|
|
|
388
|
Programación / .NET (C#, VB.NET, ASP) / Re: Enviar archivo a la Papelera de Reciclaje usando la API
|
en: 17 Noviembre 2016, 13:54 pm
|
usando API tienes SHFileOperationAquí te dejo una clase NativeMethods con la función SHfileOpDelete creada por mí para enviar archivos a la papelera de reciclaje. Puedes establecer si quieres eliminarlo directamente o enviar a la papelera y si mostrar mensaje de confirmación o no: para VB.NET<System.Security.SuppressUnmanagedCodeSecurity()> Friend NotInheritable Class NativeMethods Inherits Attribute Private Sub New() End Sub ''' <summary> ''' Copia un bloque de memoria de un lugar a otro. ''' https://msdn.microsoft.com/es-es/library/windows/desktop/aa366535(v=vs.85).aspx ''' </summary> ''' <param name="Destination">Un puntero a la dirección inicial del destino del bloque copiado.</param> ''' <param name="Source">Un puntero a la dirección inicial del bloque de memoria para copiar.</param> ''' <param name="Length">El tamaño del bloque de memoria para copiar, en bytes.</param> ''' <remarks></remarks> <DllImport("KERNEL32", EntryPoint:="RtlMoveMemory")> _ Private Shared Sub CopyMemory(<MarshalAs(UnmanagedType.I1)> ByRef Destination As Byte, <MarshalAs(UnmanagedType.AsAny)> ByVal Source As Object, ByVal Length As Integer) End Sub 'SHGetPathFromIDListW (En VB se usa este entrada) ''' <summary> '''Copia, mueve, cambia el nombre o elimina un objeto de sistema de archivos. Esta función se ha reemplazado en Windows Vista por IFileOperation. '''https://msdn.microsoft.com/en-us/library/windows/desktop/bb762164(v=vs.85).aspx ''' </summary> ''' <param name="lpFileOp"></param> ''' <returns></returns> ''' <remarks></remarks> <DllImport("shell32.dll", EntryPoint:="SHFileOperationA")> _ Public Shared Function SHFileOperation(<[In], [Out](), MarshalAs(UnmanagedType.Struct)> ByRef lpFileOp As SHFILEOPSTRUCT) As Integer End Function ' Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (ByRef lpFileOp As SHFILEOPSTRUCT) As Integer <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)> _ Public Structure SHFILEOPSTRUCT Public hWnd As IntPtr Public wFunc As Integer <MarshalAs(UnmanagedType.LPStr)> Public pFrom As String <MarshalAs(UnmanagedType.LPStr)> Public pTo As String Public fFlags As UShort <MarshalAs(UnmanagedType.Bool)> Public fAnyOperationsAborted As Boolean Public hNameMappings As IntPtr <MarshalAs(UnmanagedType.LPStr)> Public lpszProgressTitle As String End Structure Private Const FOF_CONFIRMMOUSE As Short = &H2S Private Const FOF_ALLOWUNDO As Short = &H40S 'Envía a la papelera de reciclaje Private Const FOF_FILESONLY As Short = &H80S Private Const FOF_MULTIDESTFILES As Short = &H1S Private Const FOF_NOCONFIRMATION As Short = &H10S ' No pedir confirmación al usuario. Private Const FOF_NOCONFIRMMKDIR As Short = &H200S Private Const FOF_NO_CONNECTED_ELEMENTS As Short = &H1000S Private Const FOF_NOCOPYSECURITYATTRIBS As Short = &H800S Private Const FOF_NOERRORUI As Short = &H400S Private Const FOF_RENAMEONCOLLISION As Short = &H8S Private Const FOF_SILENT As Short = &H4S ' no crear avance/informe Private Const FOF_SIMPLEPROGRESS As Short = &H100S Private Const FOF_WANTMAPPINGHANDLE As Short = &H20S Private Const FOF_WANTNUKEWARNING As Short = &H2000S Private Const FOF_NORECURSION As Short = &H1000S '// don't recurse into directories. Private Const FO_DELETE As Short = &H3 ''' <summary> ''' Función para borrar archivos ''' </summary> ''' <param name="Ounerhwnd"></param> ''' <param name="sFile">Archivo o carpeta a eliminar</param> ''' <param name="RecycleMode">boleano: True-> envía a la papelera de reciclaje, False ->no envía a la papelera</param> ''' <param name="DialogConfirmation">Boleano: True-> muestra un diálogo, False-> no muestra diálogo</param> ''' <remarks></remarks> Public Shared Sub SHfileOpDelete(ByVal Ounerhwnd As IntPtr, ByVal sFile As String, ByVal RecycleMode As Boolean, ByVal DialogConfirmation As Boolean) Dim Result As Integer = Nothing Dim lenFileop As Integer Dim foBuf() As Byte Dim SHFileOp As New SHFILEOPSTRUCT lenFileop = Marshal.SizeOf(SHFileOp) ' double word alignment increase ReDim Preserve foBuf(CInt(lenFileop)) ' the size of the structure. With SHFileOp .hWnd = Ounerhwnd .wFunc = FO_DELETE .pFrom = sFile & vbNullChar & vbNullChar .hNameMappings = IntPtr.Zero If RecycleMode Then If DialogConfirmation Then .fFlags = FOF_ALLOWUNDO 'Envía a la papelera de reciclaje con diálogo de confirmación Else .fFlags = FOF_ALLOWUNDO Or FOF_NOCONFIRMATION 'Envía a la papelera de reciclaje sin mensaje de confirmación End If Else If DialogConfirmation Then .fFlags = FOF_SILENT 'Elimina diréctamente con diálogo de confirmación Else .fFlags = FOF_NOCONFIRMATION Or FOF_SILENT 'Elimina directamente sin diálogo de confirmación End If End If End With CopyMemory(foBuf(1), SHFileOp, lenFileop) CopyMemory(foBuf(19), foBuf(21), 12) Try Result = SHFileOperation(SHFileOp) Catch ex As Exception MessageBox. Show(Err. Description) End Try End Sub End Class
Para llamar a la función se hace de la siguiente manera: NativeMethods.SHfileOpDelete(Ounerhwnd:=Me.Handle, sFile:="D:\01.rtf", RecycleMode:=True, DialogConfirmation:=True)
Ejemplo: Imports System.Runtime.InteropServices Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click NativeMethods.SHfileOpDelete(Ounerhwnd:=Me.Handle, sFile:="D:\01.rtf", RecycleMode:=True, DialogConfirmation:=True) End Sub End Class
|
|
|
389
|
Programación / .NET (C#, VB.NET, ASP) / Re: Trabajar con Multilenguaje interno de VB.NET
|
en: 15 Noviembre 2016, 11:20 am
|
Accede a ' Propiedades de proyecto' en el menú ' PROYECTO' y selecciona RecursosSelecciona 'Cadenas'En la columna ' Nombre', en la primera fila pones ' Button1_Spanish' y en Valor pones ' Examinar' En la columna Nombre, en la segunda fila pones ' Button2_English' yen Valor pones " Browse' Ahora para obtener la cadena pones: Button1.Text = My.Resources.Button1_English
Button1.Text = My.Resources.Button1_Spanish
También puedes acceder a los recursos desde el Explorador de soluciones. haz clic en ' Mostrar todos los archivos' Abre ' MyProyect' Haz doble clic en Resources.resxPara crear recursos desde código Recursos de cadenas/Crear recursos mediante código
EJEMPLO Crea cadenas en el recurso en tiempo de ejecución. Imports System Imports System.Collections Imports System.Resources Public Class Form1 Public Sub New() 'Añade cadenas al registro en tiempo de ejecución MyClass.InitializeComponent() ' First create the resource file and add strings. Dim rw As ResourceWriter = New ResourceWriter("sample.resources") rw.AddResource("4564", "Examinar") rw.AddResource("4565", "Browse") rw.AddResource("Title_Form2", "Diálogo") rw.Close() End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'Obtiene las cadenas del registro Dim rr As ResourceReader = New ResourceReader("sample.resources") Dim de As IDictionaryEnumerator = rr.GetEnumerator() 'Obtiene las cadenas en orden de enumeración While de.MoveNext Select Case de.Key.ToString Case "4564" : MessageBox.Show(de.Value.ToString) Case "4565" : MessageBox.Show(de.Value.ToString) End Select End While rr.Close() 'Abre el form2 Form2.ShowDialog() End Sub End Class Public NotInheritable Class Form2 : Inherits Form Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim rr As ResourceReader = New ResourceReader("sample.resources") Dim de As IDictionaryEnumerator = rr.GetEnumerator() 'Obtiene la cadena para el título del formulario 2 While de.MoveNext Select Case de.Key.ToString Case "Title_Form2" : Me.Text = de.Value.ToString End Select End While rr.Close() End Sub End Class
|
|
|
390
|
Foros Generales / Foro Libre / Re: la religión en el cine
|
en: 14 Noviembre 2016, 13:26 pm
|
A ver, dejemos claro un tema.
Las religiones son parte de la historia de la humanidad. El pretender erradicarlas o eliminarlas "porque si" tiene un nombre: fascismo
¿perdona? Tan solo he recalcado el modo en el que se usa el cine como medio para divulgar. Además que hay puro negocio detrás en algunos casos.
|
|
|
|
|
|
|