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 - Eleкtro

#4521
Mis votos han sido, por orden de frecuencia de uso, para...:


  • VB.Net
     Por que él me quiere y yo lo quiero, es una relación mutua con mucha pasión ...y diversión. Amo este lenguaje de verdad.
     

A los siguientes lenguajes que he votado le sumo a todos el motivo de uso frecuente por (intentar)ayudar a resolver dudas al respecto en el foro :)


  • C#
     Lo manipulo casi diariamente al igual que VB.Net, sin embargo, lo hago por pura necesidad más que por favoritismo, por aprendizaje e investigación, o freelancing.
     

  • Pascal Script
     Lo manipulo casi diaria o semanálmente en varias aplicaciones que incorporan este motor de scripting (cómo InnoSetup).
     

  • VBS
     Un buen lenguaje para automatizar tareas del sistema, y yo tengo muchas tareas que automatizar con frecuencia.
     

  • Batch
     Otro lenguaje que utilizo para automatizar tareas del sistema ...cuando no me apetece escribir mucho y quiero algo simple (muy simple). Lo cierto es que lo utilizo mucho más de lo que debería xD.
     

  • Ruby
     Por experimentación y traducción de scripts a otro lenguaje. Siempre me gustó y me seguirá gustando su sofisticada sintaxis, y el utilizarlo aunque sea por curiosidad e ir aprendiendo cosas nuevas (muy poco a poco).
     

  • Python
     Por experimentación y traducción de scripts a otro lenguaje. Es un lenguaje que me causa vómitos, me dan muchas ganas de evitarlo y olvidarlo ya que odio su estricta sintaxis, sin embargo, hay mucha información/scripts útiles e interesantes en Python a las que le intento sacar provecho en ebenficio propio.
     




Algunos detalles más sobre mis "usos" o mis gustos...

El lenguaje que más utilizo y también mi lenguaje favorito es:

Otros lenguajes que utilizo bastante pero en menor medida que el anterior, por orden alfabético, son:

  • Batch
  • C#
  • Pascal Script
  • Python
  • Ruby
  • VBS
  • XML

Otros lenguajes que he utilizado algunas veces en el lapso de 1-2 años y los cuales no tengo motivos (ni conocimientos decentes) para volver a utilizar ...pero que quizás lo haga, por orden alfabético:

  • ASM (NASM)
  • C++
  • CIL/MSIL
  • Delphi
  • Html/CSS/PHP
  • Java
  • javascript
  • Perl
  • PowerShell
  • Visual C++

Otros lenguajes que he utilizado hace tanto que ya ni me acuerdo (algunos de ellos la ridícula cantidad de 1 vez), los cuales he dejado de usar por desagrado estético, desmotivación o cualquier otro motivo y que probablemente jamás volveré a utilizar a menos que surja la necesidad, son:

  • AutoIt
  • BrainFuck
  • DOS
  • F#
  • LUA
  • TCL
  • VB 6.0
  • VBA

Saludos!
#4522





Bienvenidos a una nueva edición de nuestra encuesta anual de programación.



¿Cual es tu lenguaje favorito o los lenguajes que más utilizas?. ¡Vota y comparte tu opinión en este hilo para expresar lo que quieras al respecto!.

Recuerda que este hilo no es para competir ni medírsela con los demás, sino para disfrutar contando nuestros gustos y debatir opiniones o experiencias.

Dicho esto, ¡que gane "el mejor" lenguaje! ::)







Preguntas Frecuentes







  • ¿Cuantos lenguajes puedo votar?
     Un mínimo de 1 lenguaje y un máximo de 8 lenguajes.
     

  • ¿Cuantas veces puedo votar?
     Una sola vez.
     

  • ¿Puedo modificar mi voto?
     Sí, siempre que la encuesta no haya finalizado.
     

  • ¿Cuantas veces puedo modificar mi voto?
     De forma ilimitada.
     

  • ¿Cuando finaliza la encuesta?
     Dentro de un año exacto desde que se publicó, finaliza el día 13/Sept/2016.
     

  • ¿Por qué faltan lenguajes cómo Html o XML?
     Nunca han estado presentes en encuestas anteriores, y probablemente nunca lo estarán al ser lenguajes de marcado.
     No discrimino a este tipo de lenguajes, simplemente sigo la tradición de la encuesta.
     Faltarían cientos de lenguajes por nombrar pero no podemos nombarlos todos ya que son demasiados y la mayoría de ellos son irrelevantes/en deshuso.
     





Encuestas anteriores







#4523
Cita de: YuseTist en 13 Septiembre 2015, 14:22 PMSí yo estuve investigando un poco y encontré de hacerlo así.. pero entonces
DownloadFileAsync me dice que no puedo pasarle 1 argumento.

Entonces la pregunta que debiste formular es "¿Cómo pasarle un solo argumento al método Webclient.DownloadFileAsync?", no a la class URI.

Le debes pasar la url que quieres descargar, seguido del nombre del archivo local que se le debe asignar al archivo descargado. ¿Qué cosa es la que quieres ignorar pasarle?, ¿quieres que el nombre del archivo local se intente extraer de la url automaticamente?.

No entiendo con que intención quieres pasarle 1 solo argumento (resulta ilógico) ni tampoco que tipo de argumento le quieres pasar, intenta ser más preciso detallando lo que pretendes hacer. De todas formas no se puede hacer a menos que heredes dicha class WebClient para añadirle un overload o suplantar u ocultar el método (en este caso no es un miembro Overridable), no entiendo con que finalidad quieres hacerlo, pero aquí te muestro un ejemplo básico:

Código (csharp) [Seleccionar]
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.IO;
using System.Net;

public sealed class WebclientExtended : WebClient
{
[DebuggerStepThrough()]
public void DownloadFileAsync(Uri address)
{
base.DownloadFileAsync(address, Path.GetFileName(address.LocalPath));
}
}


Modo de empleo:
Código (csharp) [Seleccionar]
using (WebClientExtended wce = new WebClientExtended()) {
wce.DownloadFileAsync(new Uri("http://i.imgur.com/EkZXp16.png"));
}


Saludos!
#4524
La iniciativa es buena, pero personálmente opino que cualquier persona impaciente que sea incapaz de esperar un par de horas (o días) para recibir ayuda cualificada entonces no se merece ningún tipo de ayuda, ya que la impaciencia por mi experiencia personal (generalizando) suele ir ligada a la desgratitud, desconsideracion, y desobediencia.

Aparte, la primera ayuda que se recibe a un tema siempre podría ser "peor" que la siguiente (una respuesta rápida y carente de detalles, o una ayuda que no es resolutiva), así que en cualquier circunstancia siempre es bueno saber esperar un tiempo para poder recibir nuevas y diversas opiniones/comentarios de ayuda, ya que generálmente un problema de programación se puede resolver de varias formas, y algunas son más óptimas que otras.

Dicho esto, soy un aguafiestas, lo se, pero aparte del CAREN también hay que tener muy en cuenta las normas de los subforos de programación ...que están ahí con chincheta, solo lo comento por que parece que nadie se da cuenta de que existen, cómo si fuese un fenómeno paranormal o algo así...

Saludos!
#4525
Comparar solamente 5 codificaciones y en caso de no coincidir ninguna devolver la codificación que representa a la página de códigos del sistema no es lo mejor que se puede hacer, lo que deberías hacer es iterar las codificaciones con la función System.Text.Encoding.GetEncodings y usar la función Encoding.GetEncoding para obtener la codificación y Encoding.GetPreamble para obtener el preámbulo (BOM) con el que comparar la secuencia de bytes.
De esta manera pasamos de comparar 5 codificaciones, a unas 150.

Un ejemplo (convertido de VB.Net a C#):
Código (csharp) [Seleccionar]
/// ----------------------------------------------------------------------------------------------------
/// <remarks>
/// Title : Get Encoding of textfile.
/// Author: Elektro
/// Date  : 17-January-2015
/// </remarks>
/// ----------------------------------------------------------------------------------------------------
/// <example><code>
/// Dim encoding As Encoding = TextfileUtil.GetEncoding("C:\file.txt")
/// Dim encodingName As String = TextfileUtil.GetEncoding("C:\file.txt").WebName
/// </code></example>
/// ----------------------------------------------------------------------------------------------------
/// <summary>
/// Determines the <see cref="Encoding"/> of the source textfile.
/// </summary>
/// ----------------------------------------------------------------------------------------------------
/// <param name="sourceFilepath">
/// The source textfile path.
/// </param>
/// ----------------------------------------------------------------------------------------------------
/// <returns>
/// If the encoding can be detected, the return value is the detected <see cref="Encoding"/>,
/// if the encoding can't be detected, the return value is <see cref="Encoding.Default"/>.
/// </returns>
/// ----------------------------------------------------------------------------------------------------
[DebuggerStepThrough()]
[DebuggerHidden()]
public static Encoding GetEncoding(string sourceFilepath)
{

Encoding encoding = null;
byte[] bytes = File.ReadAllBytes(sourceFilepath);

foreach (EncodingInfo encodingInfo in encoding.GetEncodings()) {
Encoding currentEncoding = encodingInfo.GetEncoding();
byte[] preamble = currentEncoding.GetPreamble();
bool match = true;

if ((preamble.Length > 0) && (preamble.Length <= bytes.Length)) {

for (int i = 0; i <= (preamble.Length - 1); i++) {
if (preamble(i) != bytes(i)) {
match = false;
break; // TODO: might not be correct. Was : Exit For
}

}

} else {
match = false;

}

if (match) {
encoding = currentEncoding;
break; // TODO: might not be correct. Was : Exit For
}

}

if (encoding == null) {
return encoding.Default;

} else {
return encoding;

}

}

//=======================================================
//Service provided by Telerik (www.telerik.com)
//=======================================================


Saludos
#4526
Cita de: YuseTist en 13 Septiembre 2015, 12:09 PMMe gustaría saber si hay alguna forma de pasarle a Uri un solo argumento y no dos.

... ¿?

Por favor, utiliza IntelliSense o la documentación online en la MSDN para resolver este tipo de dudas tan simples. Se me hace perezoso responder a esto que puedes resolver sin ningún tipo de ayuda.



Cómo puedes comprobar, el constructor principal acepta 1 argumento ...un String que contenga la url, plus 5 overloads que aceptan múltiples argumentos.

Saludos
#4527
.NET (C#, VB.NET, ASP) / Re: Ayuda con Recursividad
13 Septiembre 2015, 11:41 AM
El problema precisamente es la recursividad, no se en que página web o que profesor te ha mandado el ejercicio, pero es una metodología que se debe evitar sin excepción alguna, a menos que simplemente sea para aprender el concepto de recursividad y ya está (aunque en mi humilde opinión de nada sirve aprender eso).

En este caso en particular, la función Camion hace miles y miles de llamadas a si misma y cómo resultado da una sobrecarga en la pila, lanzando como consecuencia una esperada excepción de tipo StackOverflowException.

Ten en cuenta que son 5 paradas, sabiendo ese factor del problema entonces obviamente la función debería hacer solamente 5 llamadas a si misma, no miles :P.

Aparte de eso, cometes un fallo en el algoritmo el cual provoca una recursividad infinita (que es lo que provoca la excepción) y estás usando ifs anidados cuando puedes usar else if, o un switch.

Pero mi único consejo es ese, que no hagas ese tipo de funciones recursivas en la vida real, ya que son innecesarias en cualquier caso y solo conllevan problemas de este tipo, no se aprende nada de utilidad bajo mi punto de vista. Puedes convertir cualquier función recursiva en función iterativa con el uso de los búcles (for, while, etc dependiendo de las circunstancias)

En fin, aquí tienes el ejercicio funcional (con recursión):

VB.Net:
Código (vbnet) [Seleccionar]
Module Module1

   Sub Main()

       Dim passengers As Integer = 50
       Dim result As KeyValuePair(Of Integer, Integer) = BusPassengers(passengers)

       Console.WriteLine()
       Console.WriteLine(String.Format("{0,-22} | {1,-22} | {2}",
                                       "Remaining passengers", "Pas. that left out", "Pas. that entered into"))
       Console.WriteLine()

       Console.WriteLine(String.Format("{0,-22}   {1,-22}   {2}",
                                       passengers.ToString("00"), result.Key.ToString("00"), result.Value.ToString("00")))
       Console.ReadKey()

   End Sub

   ''' ----------------------------------------------------------------------------------------------------
   ''' <summary>
   ''' </summary>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <param name="passengers">
   ''' The initial amount of passengers that are inside the bus.
   ''' </param>
   ''' ----------------------------------------------------------------------------------------------------
   ''' <returns>
   ''' An <see cref="KeyValuePair(Of Integer, Integer)"/> instance where the
   ''' <see cref="KeyValuePair.Key"/> property contains the total amount of passengers that left out the bus, and the
   ''' <see cref="KeyValuePair.Value"/> property contains the total amount of passengers that entered into the bus.
   ''' </returns>
   ''' ----------------------------------------------------------------------------------------------------
   Private Function BusPassengers(ByRef passengers As Integer) As KeyValuePair(Of Integer, Integer)

       ' Bus-Stop count.
       Static stops As Integer = 0
       stops += 1

       ' Current amount of passengers that left out the bus in the current bus-stop.
       Static goOut As Integer

       ' Current amount of passengers that entered into the bus in the current bus-stop.
       Static goIn As Integer

       ' Total amount of passengers that left out the bus.
       Static goOutTotal As Integer
       goOutTotal += goOut

       ' Total amount of passengers that entered into the bus.
       Static goInTotal As Integer
       goInTotal += goIn

#If DEBUG Then

       If (stops = 1) Then
           Console.WriteLine(String.Format("{0,-16} | {1,-16} | {2,-16} | {3}",
                                           "Stop count", "Passengers Out", "Passengers In", "Total passengers"))
           Console.WriteLine()
       Else


           Console.WriteLine(String.Format("{0,-16}   {1,-16}   {2,-16}   {3}",
                                           (stops - 1).ToString("00"),
                                           goOut.ToString("00"),
                                           goIn.ToString("00"),
                                           passengers.ToString("00")))
       End If

#End If

       Select Case stops

           Case 1 ' Out:5, In:2, Current:47.
               goOut = 5
               goIn = 2

           Case 2 ' Out:3, In:4, Current:48.
               goOut = 3
               goIn = 4

           Case 3 ' Out:10, In:5, Current:43.
               goOut = 10
               goIn = 5

           Case 4 ' Out:8, In:5, Current:40.
               goOut = 8
               goIn = 5

           Case 5 ' Out:2, In:2, Current:40.
               goOut = 2
               goIn = 2

           Case Else
               Return New KeyValuePair(Of Integer, Integer)(goOutTotal, goInTotal)

       End Select

       ' Total amount of passengers that remains inside the bus.
       passengers = (passengers - goOut + goIn)

       BusPassengers = BusPassengers(passengers)

   End Function

End Module


C#:
En C#, al ser un lenguaje con la desventaja de no poder usar el keyword Static dentro de métodos para declarar variables estáticas cuyo valor modificado perdura en las siguientes llamadas al método, me ha costado un poquito la traducción manual de VB.Net C#, queda un poco feo por las variables pasadas por referencia goOutTotal y goInTotal y las demás, pero paso de complicarlo más o buscar la manera de simplificarlo, funciona, que es lo importante, aquí tienes:

Código (csharp) [Seleccionar]
using System.Collections.Generic;
using System.Collections;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System;

namespace ConsoleApplication2
{
   class Program
   {

       static void Main(string[] args)
       {
           int currentPassengers = 50;
           int goOutTotal = 0;
           int goInTotal = 0;
           KeyValuePair<int, int> result = BusPassengers(ref currentPassengers, ref goOutTotal, ref goInTotal);

           Console.WriteLine();
           Console.WriteLine(string.Format("Current Pas.: {0,2}, Pas. that left out: {1,2} | Pas. that entered into: {2,2}",
                                           currentPassengers.ToString("00"), result.Key.ToString("00"), result.Value.ToString("00")));
           Console.ReadKey();
       }

       /// ----------------------------------------------------------------------------------------------------
       /// <summary>
       /// </summary>
       /// ----------------------------------------------------------------------------------------------------
       /// <param name="passengers">
       /// The current amount of passengers that are inside the bus.
       /// </param>
       /// ----------------------------------------------------------------------------------------------------
       /// <returns>
       /// An <see cref="KeyValuePair"/> instance where the
       /// <see cref="KeyValuePair.Key"/> property contains the total amount of passengers that left out the bus, and the
       /// <see cref="KeyValuePair.Value"/> property contains the total amount of passengers that entered into the bus.
       /// </returns>
       /// ----------------------------------------------------------------------------------------------------
       private static KeyValuePair<int, int> BusPassengers(ref int passengers,
                                                           ref int goOutTotal,
                                                           ref int goInTotal,
                                                           int stops = 0,
                                                           int goOut = 0,
                                                           int goIn = 0)
       {

           stops += 1; // Bus-Stop count.
           goOutTotal += goOut; // Total amount of passengers that left out the bus.
           goInTotal += goIn; // Total amount of passengers that entered into the bus.

#if DEBUG
   if (stops > 1)
   {
       Console.WriteLine(string.Format("Stop: {0} | Pas. out: {1,2} | Pas. In: {2,2} | Total pas.: {3}",
                                       (stops - 1).ToString("00"), goOut.ToString("00"), goIn.ToString("00"), passengers.ToString("00")));
   }
#endif

           switch (stops)
           {
               case 1: // Out:5, In:2, Current:47.
                   goOut = 5;
                   goIn = 2;
                   break;

               case 2: // Out:3, In:4, Current:48.
                   goOut = 3;
                   goIn = 4;
                   break;

               case 3: // Out:10, In:5, Current:43.
                   goOut = 10;
                   goIn = 5;
                   break;

               case 4: // Out:8, In:5, Current:40.
                   goOut = 8;
                   goIn = 5;
                   break;

               case 5: // Out:2, In:2, Current:40.
                   goOut = 2;
                   goIn = 2;
                   break;

               default:
                   return new KeyValuePair<int, int>(goOutTotal, goInTotal);
           }

           passengers = (passengers - goOut + goIn);
           return BusPassengers(ref passengers, ref goOutTotal, ref goInTotal, stop, goOut, goIn);

       }

   }
}


Resultado de ejecución (versión VB.Net):



Saludos.
#4529
En el foro existe una encuesta oficial:

Que lenguajes de programación utilizas habitualmente?

Saludos
#4530
Creo que se refiere a lo siguiente:
Administrative share - Wikipedia

Saludos!