C sharp - [Consulta] Buscar en frase de un chat U$ y convertirla a otra moneda

 
Vista:
sin imagen de perfil

[Consulta] Buscar en frase de un chat U$ y convertirla a otra moneda

Publicado por Enrique (2 intervenciones) el 24/09/2015 21:26:41
Hola,

Espero que puedan ayudarme,

Estoy haciendo un chat en C# (el lenguaje que estoy aprendiendo a usar) donde se hara una conexion entre red local (colocando X IP para broadcast) y necesito que a la hora de que un usuario mande un mensaje con el signo U$, con digitos y la frase dolar o dolares [(por ejemplo U$200, U$100, U$ 58 dolares, etc), los demas usuarios reciban en su chat el mismo valor convertido en otra moneda, es decir:

X usuario envia: Hola, necesito U$100 dolares
Y usuario recibe: Hola, necesito €88.99 euros

1 Euro = 1.12 Dolar

Lo que deberia hacer el programa es detectar cuando un usuario escribe U$, digitos, y la frase "dolar, dolares" al presionar enviar mensaje, y en ese proceso los digitos que van despues de U$ multiplicarlos por un tipo de cambio (el cual podria dejarlo permanente en el codigo del programa, o solicitarselo a los usuarios en un textbox), cambiar el signo de la moneda y cambiar la frase de dolar a euro, o dolares a euros.

Espero me entiendan y alguien sepa como hacerlo, gracias de antemano.

Adjunto parte del codigo que tengo (es una tarea), posee el emisor y receptor.

Codigo Emisor:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Net;
using System.Net.Sockets;
 
namespace Emisor
{
    /// <summary>
    /// Lógica de interacción para MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void btn_enviar_Click(object sender, RoutedEventArgs e)
        {
            txt_chat.Text = txt_chat.Text+ txt_mensaje.Text;
 
            Socket sending_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            IPAddress send_to_address = IPAddress.Parse(txt_receptor.Text);
            IPEndPoint sending_end_point = new IPEndPoint(send_to_address, 10500);
            byte[] send_buffer = Encoding.ASCII.GetBytes(txt_nickname.Text +" Dice: "+txt_mensaje.Text);
            sending_socket.SendTo(send_buffer, sending_end_point);
            sending_socket.Close();
            txt_mensaje.Text = "";
 
        }
 
        private void txt_mensaje_TextChanged(object sender, TextChangedEventArgs e)
        {
 
        }
 
        private void txt_color_TextChanged(object sender, TextChangedEventArgs e)
        {
 
        }
    }
}

Codigo Receptor:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Net;
using System.Net.Sockets;
 
 
namespace ChatReceptor
{
 
    public partial class MainWindow : Window
    { //VARIABLES COMO ATRIBUTOS DE CLASE
        //variable que define el puerto donde se recivira los chat
        int puerto_escucha = 10000;
        public MainWindow()
        {
            InitializeComponent();
 
        }
 
        private void btn_escuchar_Click(object sender, RoutedEventArgs e)
        {
            UdpClient escuchador = new UdpClient(puerto_escucha);
            //udpclain=clase que permite trabajar con socket, crea las condiciones para abrir el puero 10000
            IPEndPoint pre_socket = new IPEndPoint(IPAddress.Any, puerto_escucha);
            //Socket: objeto que contiene el socket, direccion ip y puerto unidos en (socket)
            string text_plano;
            byte[] text_en_bytes;
            //dos variables para almacenar text, la segunda: declara un arreglo de tipo byte que es el texto a recivir 
 
                text_en_bytes = escuchador.Receive(ref pre_socket);//iniciar arecivir paquetes y lo almacenas en formato bytes
                // text_plano = text_en_bytes.ToString();//El string convirte la cadena en texto 
                text_plano = Encoding.ASCII.GetString(text_en_bytes, 0, text_en_bytes.Length);
                //Escucha, cuando llegue algo se almacena en texto_en_bytes. se pasa a text_plano con la funcion 
                txtRecepcion.Text = text_plano;
 
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder