Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: TheKillerWantsYou en 20 Abril 2010, 13:05 pm



Título: Reglas de 3 en Visual Basic.NET
Publicado por: TheKillerWantsYou en 20 Abril 2010, 13:05 pm
Hola. Me interesaría saber como se hacen reglas de 3 en Visual Basic, para calcular el porcentaje de archivos que hay en una carpeta: Me explico.

En la carpeta, para haber el 100% de archivos, debe de haber 57, si por ejemplo tengo 28 archivos sólamente, representaría el 47'3% de los archivos que debe haber (esto se hace por la regla de 3 de que si 57 son 100, entonces multiplicas 28 por 100 y partes entre 57 para saber el resultado).

Hacerlo como si fuese calculadora sería muy fácil, pero hacer esto que quiero no me es tan fácil:

Que el 100% sean 57 archivos en una carpeta específica.
Que calcule los archivos que hay en esa carpeta específica, y a partir de eso, que haga la regla de 3.
Que pase el resultado a un ProgressBar y a un Label (Bueno, esto sí sé hacerlo).

Gracias.


Título: Re: Reglas de 3 en Visual Basic.NET
Publicado por: diego_lp en 20 Abril 2010, 14:30 pm
Tal vez te sirva:
Código:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim total As Integer = 57
        Dim porcentaje As Double
        Dim cantidadArchivos As Integer = ContarArchivos("D:\respaldo_mysql") 'aca le pasas el string de la ruta que quieras
        porcentaje = cantidadArchivos * 100 / total
        MsgBox(porcentaje)

    End Sub
    Function ContarArchivos(ByVal ruta As String)
        Dim ContadorDeArchivos As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
        ContadorDeArchivos = My.Computer.FileSystem.GetFiles(ruta)
        Return ContadorDeArchivos.Count
    End Function

Saludos.


Título: Re: Reglas de 3 en Visual Basic.NET
Publicado por: Meta en 23 Abril 2010, 19:32 pm
Mir aaquí.

http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-api3.htm

Saludo.

EDITO:

En C# es así. Pon 4 TextBox, un Timer activado por cada 300 ms.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

// http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/fbfde784-9067-4c1b-8ab7-b0e907e94faa/

namespace Regla_3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        // A ------ C
        // B ------ x

        // x = (B·C)/(A)

        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                int A = Convert.ToInt32(textBox_A.Text);
                int B = Convert.ToInt32(textBox_B.Text);
                int C = Convert.ToInt32(textBox_C.Text);
                int x;

                x = ((B * C) / A);
                textBox_x.Text = Convert.ToString(x);
            }

            catch (FormatException)
            {
                textBox_x.Text = "Debes introducir sólo números.";
            }
        }
    }
}