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 - 43H4FH44H45H4CH49H56H45H

#261
Solo necesitas usar
Código (csharp) [Seleccionar]
DirectoryInfo obtener los directorios con
Código (csharp) [Seleccionar]
GetDirectories()
y recorrerlos con un foreach, y en cada directorio recorrido comparas su nombre y si quieres la renombras con un move (seguro hay un modo mejor, pero no busque :S) si quieres puedes recorrer el string de el nombre de la carpeta y convertir cada letra en su valor en ascii y lo mueves con el nombre en números (ascii).
#262
De pasada, prueba asi (con un DataTable) :

Código (csharp) [Seleccionar]
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;
using System.Data.OleDb;

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

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                DataTable dT = new DataTable();
                String sConect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Libro1.xls;Extended Properties=Excel 8.0;";
                OleDbConnection oConn = new OleDbConnection(sConect);
                OleDbDataAdapter oDa = new OleDbDataAdapter("SELECT * FROM [pru$]", oConn);
                //OleDbDataAdapter oDa = new OleDbDataAdapter("SELECT F1 FROM [pru$]", oConn);
                oConn.Open();
                oDa.Fill(dT);
                oConn.Close();
                dataGridView1.DataSource = dT;
            }
            catch (Exception er)
            {
                MessageBox.Show(er.Message);
            }
        }
    }
}


Es similar en VB.NET
#263
Cita de: Dreamaker en  5 Abril 2010, 15:14 PM
Ya lo entendí, en el programa principal donde muestra el resultado de la operación (Suma) llama a la subrutina o subprograma y le da los valores (A,B) que son los valores que ingresó el usuario a las variables del subprograma en este caso X e Y y efectúa la operación que contiene éste, la de sumar, y por eso pone el comando devolver

Ahora chicos, quise pasar esto a Visual basic y no me funciona me quedó así:

Programa principal:


Código (vb) [Seleccionar]
Private Sub Form_Load()
A = InputBox("Ingrese un valor para a:")
B = InputBox("Ingrese un valor para b:")
MsgBox "El resultado de la operación es:" & Suma(A, B)
End Sub


Subrutina o subprograma:

Código (vb) [Seleccionar]
Private Sub Suma(X As Integer, Y As Integer, Sumar As Integer)
Sumar = A + B
End Sub


No sé como tengo que hacer para igualar al comando devolver del pseudocódigo, trate de poner A+B sólo pero me saca el signo "+" y me deja A B, entonces le puse Sumar = A+B pero igual no funciona


Y después cuando trato de ejecutarlo me aparece esto y cuando le doy aceptar me marca en amarillo la línea


Private Sub Form_Load()



Gracias y espero que me puedan ayudar :-\

PD: No sería mejor moverlo a VB ahora?

Código (vb) [Seleccionar]
Private Sub Form_Load()
Dim A As Integer
Dim B As Integer
A = Val(InputBox("Ingrese un valor para a:"))
B = Val(InputBox("Ingrese un valor para b:"))
MsgBox "El resultado de la operación es: " & Suma(A, B)
End
End Sub




Private Function Suma(X As Integer, Y As Integer) As Integer
Suma = X + Y
End Function
#264
Puede ser asi tb:

Código (csharp) [Seleccionar]

byte[] leer = File.ReadAllBytes("C:\\1.txt");
FileStream fstream = new FileStream("C:\\2.txt", FileMode.Create, FileAccess.Write);
BinaryWriter escribir = new BinaryWriter(fstream);
for (int i1 = 1; i1 < leer.Length; i1++)
{
   escribir.Write(leer[i1]);
      if (i1 == 109)
       {
          for (int i = 93; i<111; i++)
             {
                escribir.Write(leer[i]);
              }
         }
}
escribir.Close();
fstream.Close();
#265
Si hicieras todas las conexiones por codigo, no necesitarias un app.config, al usar el asistente este debe guardar la cadena de conexión en este archivo (por eso debes editarlo si usas dicho asistente), pero si tienes varios formularios y en cada uno necesitas hacer las conexiones, es mejor utilizar un app.config y asi si haces alguna modificación solo lo haces en dicho archivo.
En este enlace se explica mas detalladamente:

app.config
#266
Seguro haces la conexión mediante el asistente, bastaria con cambiar esto:

Código (xml) [Seleccionar]
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="WindowsFormsApplication1.Properties.Settings.dbConnectionString"
            connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\db.accdb"
            providerName="System.Data.OleDb" />
    </connectionStrings>
</configuration>


por esto:

Código (xml) [Seleccionar]
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="WindowsFormsApplication1.Properties.Settings.dbConnectionString"
            connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=db.accdb"
            providerName="System.Data.OleDb" />
    </connectionStrings>
</configuration>


en el app.config
y asi funcionaria siempre que tenga el *.mdb en la misma carpeta del programa, si no te funciona prueba en un proyecto nuevo y con un *.mdb que tenga un par de tablas y datos y prueba nuevamente.
Lo que menciono lo probe en este momento y funciona bien.
#267
Solo es modificar un poco el code:

Código (csharp) [Seleccionar]

byte[] leer = File.ReadAllBytes("C:\\1.txt");
FileStream fstream = new FileStream("C:\\2.txt", FileMode.Create, FileAccess.Write);
BinaryWriter escribir = new BinaryWriter(fstream);
int control = 0;
for (int i = 0; control < 4; i++)
{
   if (i == 17)
      {
         control++;
          i = 0;
       }
    escribir.Write(leer[i]);
}
for (int i1 = 1; i1 < leer.Length; i1++)
{
    escribir.Write(leer[i1]);
}
escribir.Close();
fstream.Close();


Falta mejorar pero sirve de ejemplo  :silbar:

Archivo Original
Hola, como andan? Yo bien, ¿y tú?
Archivo Nuevo
Hola, como andan?Hola, como andan?Hola, como andan?Hola, como andan?Hola, como andan? Yo bien, ¿y tú?
#268
Puedes hacerlo con acces.
Si lo hicieras con un archivo de texto seria lo mismo usando la .net que java, en el sentido de que necesitas instalar net framework o java para que corra tu programa.
Si quieres hacerlo con pocas dependencias mas que unas dll's puedes usar Qt/c++ y sql lite.
#269
Ahi la ruta del *.mdb es lo que falla, no esta bien que lo agregues como recurso, lo mejor es que se encuentre en la misma carpeta donde se instala tu programa, asi en source puedes hacer:
Código (csharp) [Seleccionar]
(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=db.accdb;Persist Security Info=False")
en mi caso utilizo acces 2007, pero es similar para tu proyecto.
En otro caso le das la ruta completa al generarlo, u otra forma podria ser que si no encuentra el *.mdb abra un openFileDialog y de la opcion de abrir la ruta del *.mdb y guardarla con savesetting, para que cuando cargue de nuevo el programa ya tenga donde encontrar dicho archivo aunque sea una ruta variable.
#270
A la rapida puede ser asi:

Código (csharp) [Seleccionar]

byte[] leer = File.ReadAllBytes("C:\\1.txt");
FileStream fstream = new FileStream("C:\\2.txt", FileMode.Create, FileAccess.Write);
BinaryWriter escribir = new BinaryWriter(fstream);
for(int i=15;i<leer.Length;i++)
   {
       escribir.Write(leer[i]);
    }
escribir.Close();
fstream.Close();


Funcionaría con *.exe u otros que necesites.