|
Mostrar Mensajes
|
Páginas: 1 [2] 3 4
|
12
|
Programación / .NET (C#, VB.NET, ASP) / Controlar un IndexOutofRangeException de un Array
|
en: 22 Noviembre 2011, 08:20 am
|
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
|
Programación / .NET (C#, VB.NET, ASP) / Re: Separar palabras de una frase
|
en: 21 Noviembre 2011, 05:28 am
|
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
|
Programación / .NET (C#, VB.NET, ASP) / Separar palabras de una frase
|
en: 21 Noviembre 2011, 05:14 am
|
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
|
|
|
16
|
Programación / .NET (C#, VB.NET, ASP) / Re: FileNotFoundException cuando si existe
|
en: 11 Septiembre 2011, 04:07 am
|
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. Yo use esto: 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 ) Un saludo a todos
|
|
|
18
|
Programación / .NET (C#, VB.NET, ASP) / FileNotFoundException cuando si existe
|
en: 10 Septiembre 2011, 11:09 am
|
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: 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
|
Programación / .NET (C#, VB.NET, ASP) / Re: Handles (VB.NET)
|
en: 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 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
|
Programación / .NET (C#, VB.NET, ASP) / Re: Handles (VB.NET)
|
en: 26 Agosto 2011, 23:54 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
|
|
|
|
|
|
|