Foro Oficial de C#

PHP:
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.IO;

namespace EjercicioCS
{
    public partial class WinnerForm : Form
    {
        public WinnerForm()
        {
            InitializeComponent();
        }

        StreamWriter sw = new StreamWriter(@"D:\pptptj.txt", true);
        String [] result = new String [5];
        int cont = 0;

        private void btn_winner_MouseClick(object sender, MouseEventArgs e)
        {
            if (cont < 5)
            {
                result[cont] = txt_Ganador.Text+" "+lwin1.Text + "/" + lwin3.Text;
                for (int x = 0; x <= cont; x++)
                {
                    sw.WriteLine(result[x]);
                }
            }
            sw.Close();
            this.Hide();
            cont++;
        }

    }
}

antes de hacer
PHP:
sw.Close();
te recomiendo hacer
PHP:
sw.Flush();

por el momento lo dejaria asi pero creo que te esta funcionando de milagro... porque me late que cada vez creas una nueva instancia del form, y por ende una nueva instancia del StreamWriter... de no ser así fallaria porque el StreamWriter lo cierras todas las veces...
 
PHP:
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.IO;

namespace EjercicioCS
{
    public partial class WinnerForm : Form
    {
        public WinnerForm()
        {
            InitializeComponent();
        }

        StreamWriter sw = new StreamWriter(@"D:\pptptj.txt", true);
        String [] result = new String [5];
        int cont = 0;

        private void btn_winner_MouseClick(object sender, MouseEventArgs e)
        {
            if (cont < 5)
            {
                result[cont] = txt_Ganador.Text+" "+lwin1.Text + "/" + lwin3.Text;
                for (int x = 0; x <= cont; x++)
                {
                    sw.WriteLine(result[x]);
                }
            }
            sw.Close();
            this.Hide();
            cont++;
        }

    }
}

antes de hacer
PHP:
sw.Close();
te recomiendo hacer
PHP:
sw.Flush();

por el momento lo dejaria asi pero creo que te esta funcionando de milagro... porque me late que cada vez creas una nueva instancia del form, y por ende una nueva instancia del StreamWriter... de no ser así fallaria porque el StreamWriter lo cierras todas las veces...

ok, tomare en cuenta tus indicaciones, pero una pregunta, ke hace el flush()?
 
ok, tomare en cuenta tus indicaciones, pero una pregunta, ke hace el flush()?

cuando haces cualquier operacion de escritura usualmente esto pasa por un buffer intermedio, de tal forma que le envias a escribir pero realmente solo escribe en disco cada X tiempo. esto para ahorrar tiempo yen do muchas veces al disco, asi que escribe en memoria y de vez en cuando ecribe en disco.

por este tema a veces sucede que le das close y se quedan las cosas en memoria y no en el disco... flush desocupa ese buffer de memoria y envia todo al disco de una vez.-
 
  • Me gusta
Reacciones: 2 personas
cuando haces cualquier operacion de escritura usualmente esto pasa por un buffer intermedio, de tal forma que le envias a escribir pero realmente solo escribe en disco cada X tiempo. esto para ahorrar tiempo yen do muchas veces al disco, asi que escribe en memoria y de vez en cuando ecribe en disco.

por este tema a veces sucede que le das close y se quedan las cosas en memoria y no en el disco... flush desocupa ese buffer de memoria y envia todo al disco de una vez.-

ke bien!! muchisimas gracias!!!!
 
hola de nuevo!!
bueno lo de la escritura y todo me salio bien y me muestra los resultados y todo ^^ gracias por sus indicaciones muchachos!!

estube tratando de ordenar los datos del archivo (mayor a menor) para solo mostrar los 5 mas altos para esto meti los datos del archivo en una matriz pero al intentar mostrarlos me aparece un error.

al hacer clic sobre la opcion puntajes en el menu, se abre un formulario al cual llame "puntos" y muestro los resultados en 5 labels que son los que estan al final, si le kito el ordenamiento de la matriz me los muestra pero en desorden obviamente y los kiero presentar ordenados de mayor a menor.

Este es el codigo....

private void puntajesToolStripMenuItem_Click(object sender, EventArgs e)
{
String line;
StreamReader sr = new StreamReader(@"D:\pptptj.txt");
puntos = new Puntaje();
int n = File.ReadAllLines(@"D:\pptptj.txt").Length;
int x=0, refe, cont=0, z, y=0;
String[,] result = new String[n,3];
String nom, pun, tot;

//Se introducen los datos del archivo en una matriz

for (x = 0; x < n; x++)
{
line=sr.ReadLine();
refe = line.IndexOf(" ");
result[x, 0] = line.Substring(0, refe);
result[x, 1] = line.Substring(refe + 1, 1);
result[x, 2] = line.Substring(refe + 2, 2);
}

//Ordenar los datos de la matriz de mayor a menor

cont = n;

for (z = 0; z < cont-1; z++)
{
for (y = 0; z < cont - 2; y++)
{
if (int.Parse(result[y, 1]) < int.Parse(result[y + 1, 1])) --------> AQUI ME SALE EL ERROR
{
nom = result[y, 0];
pun = result[y, 1];
tot = result[y, 2];

result[y, 0] = result[y + 1, 0];
result[y, 1] = result[y + 1, 1];
result[y, 2] = result[y + 1, 2];

result[y + 1, 0] = nom;
result[y + 1, 1] = pun;
result[y + 1, 2] = tot;
}
}
}

//Mostrar los 5 primeros Puntajes

Puntaje.puntaje1.Text = result[0, 0] + " " + result[0, 1] + result[0, 2];
Puntaje.puntaje2.Text = result[1, 0] + " " + result[1, 1] + result[1, 2];
Puntaje.puntaje3.Text = result[2, 0] + " " + result[2, 1] + result[2, 2];
Puntaje.puntaje4.Text = result[3, 0] + " " + result[3, 1] + result[3, 2];
Puntaje.puntaje5.Text = result[4, 0] + " " + result[4, 1] + result[4, 2];

puntos.ShowDialog();
sr.Close();
}

Espero me puedan ayudar, muchisimas gracias nuevamente!
Saludos!

PD: bueno cabe resaltar ke los datos en la matriz los dividi asi:
Ej: uno de los datos del archivo seria asi: alguien 2/3
en la matriz esta guardado asi: [0,0]="alguien" ; [0,1]="2" ; [0,2]="/3"

espero me puedan ayudar :(
 
Hola, al parecer el error puede deberse a que la función int.Parse está intentando convertir un valor no válido (caracter no numérico) a número. Algo asi como int.Parse(" ")...

Te puedo recomendar dos opciones

1. Usar más bien la función int.TryParse en lugar de int.Parse. para convertir los valores que necesitas comparar
Esta función tiene la siguiente sintaxis
bool respuesta = int.TryParse(valor_que_quiero_convertir, out variable_que_recibe_el_valor_convertido)
Y devuelve true si pudo realizar la conversion, y de lo contrario devuelve false

2. Tener la conversión aparte de la comparación y meterla dentro de un bloque try - catch, y luego hacer la comparación.

A mi me gusta más la primera opción, es más compacta y fácil de leer. Aplicándola sería algo así

int valor1;
int valor2;
int.TryParse(result[y, 1], out valor1);
int.TryParse(result[y + 1, 1], out valor2);

if (valor1 < valor2)
{
...
...
...

Por cierto, consejo personal, aprende Linq, te va a ahorrar mucho y te dará más potencia, con él podrás sacar los 5 puntajes más altos en una sola instrucción.

Saludos
 
Hola, al parecer el error puede deberse a que la función int.Parse está intentando convertir un valor no válido (caracter no numérico) a número. Algo asi como int.Parse(" ")...

Te puedo recomendar dos opciones

1. Usar más bien la función int.TryParse en lugar de int.Parse. para convertir los valores que necesitas comparar
Esta función tiene la siguiente sintaxis
bool respuesta = int.TryParse(valor_que_quiero_convertir, out variable_que_recibe_el_valor_convertido)
Y devuelve true si pudo realizar la conversion, y de lo contrario devuelve false

2. Tener la conversión aparte de la comparación y meterla dentro de un bloque try - catch, y luego hacer la comparación.

A mi me gusta más la primera opción, es más compacta y fácil de leer. Aplicándola sería algo así

int valor1;
int valor2;
int.TryParse(result[y, 1], out valor1);
int.TryParse(result[y + 1, 1], out valor2);

if (valor1 < valor2)
{
...
...
...

Por cierto, consejo personal, aprende Linq, te va a ahorrar mucho y te dará más potencia, con él podrás sacar los 5 puntajes más altos en una sola instrucción.

Saludos

hola muchisimas gracias peor tarde he leido este mensaje jejejeje la verdad estube revisando y solo cambie la opcion de .ShowDialog() con la que mostraba el formulario donde se mostraban los puntajes por la de .Show() solamente y ya me funciono :S sin embargo tendre en cuenta tu consejo para ponerlo en practica de ahora en adelante y ya varios me han dicho de linq, voy a comenzar a investigar a ver ke tal me va gracias!
 
No sé si ya lo hayan puesto antes, pero ésta página me pareció muy interesante: http://www.programacionfacil.com/csharp_net/start

Muy bueno... le recomiendo uno que es de MSDN

https://skydrive.live.com/?cid=84ec...CB1F0425&id=84EC702DCB1F0425!555&sc=documents


Ahi puede encontrar varios de MS, pero con lo que aprenda de C# se homologa facilito a Java o a cualquier lenguaje OPP, por eso recomiendo ese videotutorial de MSDN ;).... tambien hay de SQL y ASP.NET


SuerteX ;)
 
  • Me gusta
Reacciones: 4 personas
Se dice proxy. jajajaja, En la casa lo descargaré! Gracias!

lol.... yo estoy detras de proxy y no tengo ese problema :p

another-problem-en-000000

SuerteX :)
 
Para comentar que por acá estoy molestando con el Proyecto Mono para C# en Lubuntu 11.10 y desafortunadamente muchos enlaces de los tutoriales que quiero hacer están rotos en las imágenes :S

En general, ya le estoy cogiendo el gusto a tirar código y se me van horas así sea haciendo pequeños ensayos :p, pensé que metía las patas al inicio del semestre, pero ya me estoy animando cada vez más en éste cuento.

Por eso le dije que para aprender el IDE de M$ era el idoneo para aprender :p


SuerteX :)
 
  • Me gusta
Reacciones: 2 personas
Hola muchachos, resulta que estoy iniciandome en desarrollo de windows phone, queria saber si alguno de ustedes sabe como manejar artos formularios en una aplicacion. Que quiero decir, por ejemplo en una aplicacion siempre se crea la Mainpage.xaml y esa es la qeu al compilar el codigo se ejecuta, pero tambien tengo otro form en mi caso es page2.xaml y yo quiero que al oprimir un boton en el mainpage me lleve al page2, quisiera saber si alguno de ustedes sabe he mirado y mirado y no encuentro nada

Gracias
 
Hola muchachos, resulta que estoy iniciandome en desarrollo de windows phone, queria saber si alguno de ustedes sabe como manejar artos formularios en una aplicacion. Que quiero decir, por ejemplo en una aplicacion siempre se crea la Mainpage.xaml y esa es la qeu al compilar el codigo se ejecuta, pero tambien tengo otro form en mi caso es page2.xaml y yo quiero que al oprimir un boton en el mainpage me lleve al page2, quisiera saber si alguno de ustedes sabe he mirado y mirado y no encuentro nada

Gracias

Los XAML son formularios WPF, si sabes WinForm supongo que sabras que se hace con un .Show(), sino estoy mal, debe ser similar a la programacion para Windows.


http://msdn.microsoft.com/es-es/windowsphone/hh307892


Creo que eso le puede ayudar.


SuerteX :)
 
Hola!

Tiempo sin pasarme por acá.

Alguno de uds ha consumido los Web Services de Amazon para hacer consultas sobre su catálogo?

Estoy utilizando este tutorial: http://www.sitepoint.com/amazon-web-services-asp-net/

Pero no dejo de obtener el error que se ve en la imagen :(

Ese error se supone que es porque se está asignando un tipo de objeto a otro tipo no compatible, pero esa asignación se está haciendo en el constructor de la clase AWSECommerceService la cual yo no poseo y no se cómo hacer :/

Cualquier ayuda se les agradece! :D
 

Archivos adjuntos

  • Amazon.jpg
    Amazon.jpg
    126.4 KB · Visitas: 89
Los XAML son formularios WPF, si sabes WinForm supongo que sabras que se hace con un .Show(), sino estoy mal, debe ser similar a la programacion para Windows.


http://msdn.microsoft.com/es-es/windowsphone/hh307892


Creo que eso le puede ayudar.


SuerteX :)

Men gracias por el link bastantes cosas interesantes!!

y si yo tambien pense que podria ser un .show(); pero estuve mirando un metodo parecido para implementar en WP7 seguiré indagando!
 
Hola!

Tiempo sin pasarme por acá.

Alguno de uds ha consumido los Web Services de Amazon para hacer consultas sobre su catálogo?

Estoy utilizando este tutorial: http://www.sitepoint.com/amazon-web-services-asp-net/

Pero no dejo de obtener el error que se ve en la imagen :(

Ese error se supone que es porque se está asignando un tipo de objeto a otro tipo no compatible, pero esa asignación se está haciendo en el constructor de la clase AWSECommerceService la cual yo no poseo y no se cómo hacer :/

Cualquier ayuda se les agradece! :D

Creo, segun el error que se lee al iniciar, es que esta tratando de convertir una imagen a un un arreglo o algo asi....


No es que conozca mucho de programacion Web, pero el error indica eso :p


SuerteX :)
 

Los últimos temas