Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - abreu20011

#11
Solucionado :) Mira que era tonta la solución "elegante"

Usar Len sobre el Array para medir su tamaño, y hacer a partir de ahí un IfThen :)

If Not nWord > Len(ArrayCommand) Then
        Dim ArrayCommand() As String = Split(frase)
        Return ArrayCommand(nWord).ToString
Else
        Return "Out of range"
End If


Un saludo a todos :)
#12
Saludos a todos :)

Os vengo con una duda un tanto complicada >.<

¿Hay alguna forma de poder controlar un IndexOutofRangeException de un Array?

El problema está en que tengo un función que llama a otra, donde esta ultima usa un Array con un Split siendo el indice de esta llamada por la primera.

La función que usa el Split:

Public Function ReadCommand(ByVal frase As String, ByVal nWord As Integer) As String
       Dim ArrayCommand() As String = Split(frase)
       Return ArrayCommand(nWord).ToString
   End Function

//Module: stx_mll


Y la función que llama esta primera:

   Public Sub cmd_clear()
       Try
           Select Case stx_mll.ReadCommand(txtRead, 1)
               Case "-all"
                   ClearScreenDelftonesScript()
               Case Else
                   cmd_error()
           End Select
       Catch
           ClearScreenDelftonesScript()
           StartDelftonesScript()
       End Try
   End Sub


Esta ultima función, como podéis ver, ya la controlo con un Try, pero me preguntaba si no habría alguna forma un poco más elegante que esta :)

Muchas gracias a todos,
un saludo
#13
Como sabia que iba a postear y encontrar la solución xD

Por si alguien tiene una duda similar, el framework pone a nuestra disposición una función que me acaba de enamorar: Split(http://msdn.microsoft.com/es-es/library/6x627e5f(v=vs.80).aspx)

Dim frase As String = "Split mola mucho"

Dim comando() As String = Split(frase)

Console.WriteLine("La primera palabra es: " & comando(0))
Console.WriteLine("La segunda palabra es: " & comando(1))
Console.WriteLine("La tercera palabra es: " & comando(2))


Esto no devuelve:

La primera palabra es: Split
La segunda palabra es: mola
La tercera palabra es: mucho

Un saludo a todos :)
#14
Saludos :)

Llevo un tiempo con este código que no logro que funcione "del todo"
Estoy buscando una forma en la que al escribir una frase, se separan las palabras una por una, aunque mi código ahora mismo sólo funciona con la primera palabra o la ultima de una frase u.u

Este es el código para sacar la primera palabra, que aunque no funciona como yo quisiera, funciona:

Public Function FirstWord(Byval frase As String) As String
Dim word As String = ""

For i As Integer = 1 To Len(frase)
'Analizamos desde la posición 1 hasta el maximo de la frase por un For buscando el espacio en blanco
'para saber que se comienza a escribir una segunda palabra, y por tanto, sabemos cual es la primera
If Mid(frase,i,1) = " " Then
word = Mid(frase, 1, (i - 1))
Return word
Exit for
End If
Next
If word = "" Then
'Si la variable "word" no tiene nada guardado (esto se debe a que solo hay una palabra en la frase)
'procedemos a guardar en word la frase entera
Return frase
End If
End Function


Y la función para la ultima palabra (que deberia ser la segunda, no la ultima u.u)
Básicamente hago lo mismo que en la primera para sacar la primera palabra, y a a partir de ahí, la "quito" para que lo vuelva analizar ya sin esa primera palabra:

Public Function SecondWord(ByVal frase As String) As String
Dim word As String = ""
Dim startSecondWord As Integer = 0

For i As Integer = 1 To Len(frase)
If Mid(frase, i, 1) = " " Then
startSecondWord = i + 1 'añadimos el +1 para que se salte el espacio y comienze por la 2º palabra directamente
frase = Mid(frase,startSecondWord) 'Guardamos la frase ya con la primera palabra quitada
End If
Next

For x As Integer = 1 To Len(frase)
If Mid(frase, x, 1) = " " Then
word = Mid(frase,1, (x - 1))
Return word
Exit For
End If
Next
If word = "" Then
'Si la variable wrod esta vacia, igual que en FirstWord devolvemos la frase entera, que ya ha sido cortada la primera
'palabra el primer For de esta función
return frase
End If
End Function


No se si es posible saber si un cadena llega a su fin, así no necesitaría buscar ese espacio, que es el mismo que me cusa el problema de que si solo hay una palabra en toda la frase, necesite del ultimo If Then para sacarla >.<

Si alguien me pudiera dar algún consejo se lo agradecería :)

Un saludo
#15
Funciona!!! :D

Muchas gracias MauroMasciar :)
#16
Cita de: JaVi__ en 10 Septiembre 2011, 17:09 PM
Si quieres ver la imagen porque no cargarla en un picturebox que tengas en el formulario?

O sino yo haria por ejemplo...

Shell("mspaint.exe", "C:\Users\abreu20011\Desktop\a.jpg")

Le diria que ejecutarse el mspaint con el parametro de la ruta de la foto... A mi en C# me funciona

Gracias por la respuesta :)
Pero no me interesa abrirlo en un picturebox, el código de arriba es un ejemplo de un programa mayor. Necesito que abra un vídeo con el programa que este por defecto en el ordenador. Por eso tampoco me serviría indicarle que lo abriera con el Media Player ni nada.


Cita de: MauroMasciar en 10 Septiembre 2011, 18:02 PM
Yo use esto:

Código (vbnet) [Seleccionar]
System.Diagnostics.Process.Start("notepad.exe")

Tambien en vez de notepad.exe podes poner la ruta:
C:/Program Files/etcetcetc...

Saludos ^^

Gracias por tu respuesta, en cuanto llegue a casa miro a ver si así me funciona ^^ (Espero :D)


Un saludo a todos
#17
Si es opcional lo veo bien, pero si es obligatorio como parece, no me mola ni un pelo
#18
Saludos :)

No logro entender que pasa. A ver si alguien me puede ayudar :)
En un principio pensé que quizás era temas de privilegios, pero aunque lo quitaba de C:\ para ponerlo en un disco normal sigue fallando:

Código (vbnet) [Seleccionar]
   Sub Main()
       MsgBox(My.Computer.FileSystem.FileExists("C:\Users\abreu20011\Desktop\a.jpg"))
       Shell("C:\Users\abreu20011\Desktop\a.jpg")
   End Sub


El MsgBox me da TRUE, asi que no entiendo por qué cuando llega al Shell me salta un FileNotFoundException :(

¿Hay algún otro método para abrir otro tipo de ficheros que no sean ejecutables (como la foto o un vídeo)? Quizás lo que está mal es usar Shell :S

Gracias ^^
#19
.NET (C#, VB.NET, ASP) / Re: Handles (VB.NET)
27 Agosto 2011, 00:31 AM
Encontré la solución!!! XD
La explico por si alguien más le ocurre:

El IDE SharpDevelop no tiene la barra de eventos de VisualStudio, por lo que cambiar de evento (Click, DobleClick, MouseMove, etc...) no se pueden hacer así como así :S

Primero hay que ir al Designer del formulario en cuestión (en este ejemplo el MainForm) y ahí buscar la declaración del objeto (en este ejemplo un Label)

Me.label1.Location = New System.Drawing.Point(12, 9)
Me.label1.Name = "label1"
Me.label1.Size = New System.Drawing.Size(100, 23)
Me.label1.TabIndex = 0
Me.label1.Text = "label1"


Eso es lo que creara el Designer al crear un Label manualmente. Si pulsamos sobre él (para crear eventos) nos añadirá la siguiente linea:

AddHandler Me.label1.Click, AddressOf Me.Label1Click

Tan sólo tenemos que cambiarlo asi:

AddHandler Me.label1.DoubleClick, AddressOf Me.Label1Click

No he logrado que funcione con cosas como botón derecho o izquierdo, pero es un avance :D

Dentro del propio VisualStudio te recomiendan no cambiar esto manualmente, pero lo cierto es que sino no sé como hacerlo (en SharpDevelop) y por otra parte, parece ir bien. No sé si es una la solución correcta, pero funciona :)

Un saludo a todos
#20
.NET (C#, VB.NET, ASP) / Re: Handles (VB.NET)
26 Agosto 2011, 23:54 PM
Cita de: Keyen Night en 26 Agosto 2011, 19:56 PM
No entendí cuál es el problema. Usa Handles XXX.DoubleClick.

No puedo :S Por eso lo digo, en este IDE me dice que necesito el WithEvents, y auque se lo hice (no se si bien):

WithEvents x As System.Windows.Forms.Label

ya que label1 no lo reconoce...

Sigue sin ir. Si le hago eso ultimo, depura y arranca, pero le da igual DoubleClick que Click que hola xD Y sin el WithEvents directamente ni depura :(

Gracias :)