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 - raul338

#2311
Muy lindo muy lindo..... (falta el pero :xD)

jaja... pense que habias puesto solo el servidor, despues leyendo bien pusiste el cliente (deberias separar el code), tienen que ser 2 proyectos verdad?....

Buen Aporte
#2312
Mira, la verdad soy fanatico de los sockets y los uso aun en .net :P (salvo algunas exepciones en las que si uso clases, pero cuando se tratan de proyectos personales, uso socket puro)

En cuanto a si se queda esperando, se queda esperando hasta que reciba al menos un paquete de bytes. Para que se quede esperando y puedas hacer alguna otra cosa, puedes usar los metodos asincronicos BeginReceibe, que funcionan como eventos, y saltan cuando reciben algun paquete de bytes.

En cuanto al tamaño "10C", no se porque sera así, deberias revisar el array de bytes antes del envio y apenas se recibe ("en crudo") pero mi recomendacion es que el tamaño te lo envies por bytes y no por strings. Si vas a recibir una cadena de 400 bytes, recibe antes 2 bytes con los valores (255, 145) que recibir el ascii de "400" (3 bytes)

Bueno, a simple vista esta bien hecho. Ahora vere si te hago un ejemplo con sockets puro, y un "sistema de comandos" para que trabajes mejor con sockets
#2313
Código (vbnet) [Seleccionar]

Imports System.IO

Public Function LeerArchivos(ByVal archivo as String) As String
    Dim sr As StreamReader = File.OpenText(archivo)
    Dim contenido = sr.ReadToEnd();
    sr.Close()
    return contenido


y para usarlo:
Código (vbnet) [Seleccionar]

TextBox1.Text = LeerArchivo(Application.StartUpPath & "\archivo.txt")


Eso para leer archivos de texto, para archivos binarios no cambia mucho
#2314
Para usar los streams debes importar System.IO
#2315
MMm.. no se si haya una forma mas directa, pero por ahora se me ocurre algo asi

Código (csharp) [Seleccionar]

int elegido = 2; // Aca haces que sea aleatorio, yo puse un ejemplo
int i = 0;
foreach (PictureBox pb in this.Controls) {
    if (i == elegido) {
        pb.Image = System.Drawing.Image.FromFile(img[RDM]);
        break;
    }
    i++;
}


Con eso deberia funcionar :)
#2316
Estoy desde el mobil así que no puedo escribir tan bien formateado xD. Tú problema es que usas funciones que vienen de  la versión 6 y son obsoletas. Usa string.padleft(lof(1)) y para los archivos usa streams. Quedaría x ejemplo: string.padleft(streamreader.length) espero que te sirva
#2317
No es facil, tienes que dibujar una linea y no siempre es en lugar exacto, y gdi es medio malo para eso. Tendrias que inventarte tu propio TextBox o jugar con las tablas del RichTextBox (otra no se me ocurre)

Sino pone una fila de "_" entre funcion y funcion, pero es muy "cutre"como dicen :xD
#2318
Mmm...no no creo, creo que tendrias que usar un vector de paneles o textbox en donde editarias tus codigos. Y usar los tabs (no me acuerdo como se llaman) y manejarlo todo por codigo
#2319
:) para eso estamos en el foro, para ayudar y que nos ayuden

En cuanto lo del doble post, tienes el boton modificar arriba de los ultimos mensajes tuyo para evitarlos, ya sea agregar cosas, editar accidentes o simplemente decir que lo editaste xD
#2320
Cita de: Beowulf en 10 Marzo 2010, 12:58 PM
Código (csharp) [Seleccionar]

       private void ObraAltas_Load(object sender, EventArgs e)
       {
           Carga();
       }
       private void Carga()
       {
           DataColumn DCPadre = Obra.daxDataSet.Tables["ESTACV"].Columns["eccod"];
           DataColumn DCHijo = Obra.daxDataSet.Tables["MEDICOS"].Columns["medecv"];
           DataRelation Ralation = Obra.daxDataSet.Relations.Add("DAX", Obra.daxDataSet.Tables["ESTACV"].Columns["eccod"], Obra.daxDataSet.Tables["MEDICOS"].Columns["medecv"]);

           /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
           BindingSource RelBindinSource = new BindingSource();
           /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

           RelBindinSource.DataSource = Obra.bindingSource1;
           Obra.bindingSource1.DataSource = Obra.daxDataSet;
           Obra.bindingSource1.DataMember = "ESTACV";

           RelBindinSource.DataMember = "DAX";

         
           txtNombre.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "eccod", true));
           txtLoc.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "ecestado", true));
           dataGridView1.DataSource = Obra.bindingSource1;
           //FUNCIONA
           dataGridView2.DataSource = RelBindinSource;
           //
           //NO FUNCIONA    
           txtPrueba.DataBindings.Add(new Binding("Text", RelBindinSource, "eccod", true));
           //
           bindingNavigator1.BindingSource = Obra.bindingSource1;
                   
       }

   }


Usa las etiquetas code :P ([ code=charp ])

Nose, pero para mi seria que el DataBinding se destruye al terminar el metodo carga, el datagrid lo "copia" en cambio el textbox pierde la referencia porque se borro de la memoria (al menos eso pasa en otros ambitos)

Lo que si, declararia el Binding Source en el formulario y no en los metodos. quedando algo asi:

Código (csharp) [Seleccionar]

       /// Siempre queda "vivo"
       BindingSource RelBindinSource = new BindingSource();

       private void ObraAltas_Load(object sender, EventArgs e)
       {
           Carga();
       }
       private void Carga()
       {
           DataColumn DCPadre = Obra.daxDataSet.Tables["ESTACV"].Columns["eccod"];
           DataColumn DCHijo = Obra.daxDataSet.Tables["MEDICOS"].Columns["medecv"];
           DataRelation Ralation = Obra.daxDataSet.Relations.Add("DAX", Obra.daxDataSet.Tables["ESTACV"].Columns["eccod"], Obra.daxDataSet.Tables["MEDICOS"].Columns["medecv"]);
           RelBindinSource.DataSource = Obra.bindingSource1;
           Obra.bindingSource1.DataSource = Obra.daxDataSet;
           Obra.bindingSource1.DataMember = "ESTACV";

           RelBindinSource.DataMember = "DAX";

         
           txtNombre.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "eccod", true));
           txtLoc.DataBindings.Add(new Binding("Text", Obra.bindingSource1, "ecestado", true));
           dataGridView1.DataSource = Obra.bindingSource1;
           //FUNCIONA
           dataGridView2.DataSource = RelBindinSource;
           //
           // deberia funcionar :P
           txtPrueba.DataBindings.Add(new Binding("Text", RelBindinSource, "eccod", true));
           //
           bindingNavigator1.BindingSource = Obra.bindingSource1;
                   
       }
   }


Al menos es eso desde mi punto de vista, tendria que probar