Ir al contenido principal

Recibir datos de la terminal con Rust

El tutorial esta hecho para gente que ya tenga conocimientos básicos de programación, pues no me voy a detener a explicar sobre variables, funciones, métodos, importar, etc etc Sino de como utilizar cargo el gestor de paquetes de rust, y utilizar una librería

Hoy vamos a ver un pequeño tutorial de rust, sobre la librería clap. Que nos ayuda a recibir datos de la terminal mediante flags
user uploaded image

Cramos un nuevo proyecto con:
cargo new nombre 

user uploaded image

 Nos movemos a la carpeta creada, y ahí dentro habrá un archivo llamado Cargo.toml

user uploaded image

Podemos abrirlo con nuestro editor de código favorito, Vim, Nano, VsCode, etc etc

user uploaded image

Y ahí agregamos nuestra dependencia

user uploaded image

Después hay que compilar el proyecto para que este sea descargado, entonces
 cargo run

user uploaded image

Ahora hay que importar clap, con algunos "elementos" que vamos a usar

Arg 
Es para crear nuestros argumentos (flags)

App 
 Será nuestro propio programa, con la información del mismo
user uploaded image

Bien, dentro de nuestra función main vamos a tener una variable llamada app de tipo clap::App

Donde creamos una nueva App con los datos de nuestro programa, ya sea la versión, información, autor, no es necesario ponerlos pero para mostrar la librería esta bien

Ahora, vamos a declarar otra variable que va a recibir las banderas de la terminal esta será tipo clap::ArgMatches, y será igualada a nuestra app con su método get_matches()

user uploaded image

Hay que correr nuestro programa con la bandera help que ya viene por defecto

cargo run -- --help 

Con esto podemos ver los datos que hemos puesto para nuestro programa

Como el autor es Tux

user uploaded image

Con arg vamos a poner nuestros argumentos, tendrán un nombre

Como vamos a hacer una suma, necesitaremos números entonces será number_one y number_two

short, podemos hacer que nuestra bandera sea solo con un caracter

long, nombre completo del argumento

required, si el valor es obligatorio

user uploaded image

takes_value, si hay un valor que pueda ser usado Si volvemos a correr nuestro programa con la bandera help, podemos ver ahora las nuevas opciones

user uploaded image

Para obtener el valor de la bandera, se utiliza de la variable matches, su método value_of con el nombre del argumento a tomar

Este nos va a regresar un defecto un valor de tipo str, y es recomendable pasarlo por referencia

Bien, es momento de probarlo

user uploaded image

Hay que pasarle los argumentos deseados con
cargo run -- -o numero1 -t numero2 

user uploaded image

 El resultado es el esperado

user uploaded image

Ahora vamos a crear una función que retornará un i32, que va a sumar los dos números

 (Solamente para hacer algo con los valores que nos llegaron xD)

user uploaded image

 Así que desde el main, mandamos a imprimir el resultado

user uploaded image

Y listo

Comentarios

Entradas más populares de este blog

3# Criptografía - Cifrado por sustitución Atbash

__ Indice __ ¿Qué es Atbash? Proceso de cifrado Proceso de descifrar  Código Github ¿Qué es Atbash? Atbash es un método de cifrado para el alfabeto hebreo, por lo tanto entra en la clasificación de           - Cifrado Clásico - se le conoce también como el método espejo, pues consiste en sustituir en la que la primera letra (A) será sustituida por la última (Z), la segunda por la penúltima (B - Y) y así sucesivamente. Proceso de cifrado Vayamos a probarlo, vamos a cifrar nuestra palabra de costumbre RegularWeb: R  =   I E  =  V G  =  T U  =  F L  =  O                  Resultado : IVTFOZIDVY A  =  Z R  =  I W =  D E  =  V B  =  Y Proceso de descifrar  Para descifrar es el mismo procedimiento. R  =   I E  =  V G  =  T U  =  F L  =  O                  Resultado : REGULARWEB A  =  Z R  =  I W =  D E  =  V B  =  Y Código Github   https://github.com/NeoTRAN001/Crypt

2# Criptografía - Polybios

__ Indice __ ¿Qué es Polybios? Proceso de cifrado Proceso de descifrar Código Github __ ¿Qué es Polybios? __ Es un sistema de cifrado en el que se coloca todo el alfabeto en una matriz, y cada letra tiene una posición en la que será convertida.  Es considerado el algoritmo de cifrado más antiguo que se tiene registro •Su nombre se le da por el Historiador griego Polybios • Alrededor del año 150 a. C. __ Proceso de cifrado __ Bien, el proceso de cifrado es bastante fácil, tenemos nuestra matriz bidimensional , si queremos traducir el carácter - ? - nos da como resultado [ 0, 0 ] Y pues, eso es todo... Vayamos a cifrar la palabra Hola H = [4, 9]    o = [1 , 9]    l  = [1, 5]     a = [0, 4]  Resultado: 49191504 __ Proceso de descifrar __  Ahora si queremos el proceso inverso, solamente tenemos, tenemos que mandarle las posiciones y este nos devolverá el carácter [4, 9] = H     [1 , 9] = o    [1, 5] = l    [0

Sockets en C#

__ Índice __ ¿Qué son los sockets en programación? Ejemplo en C# Github __ ¿Qué son los socket en programación? __ Un socket es un método de comunicación entre un programa cliente y un servidor. Entonces podemos decir que los sockets, son el "tunel" de comunicación entre dos aplicaciones. __ Ejemplo en C# __ Servidor  Creamos un nuevo proyecto en consola que será el código del servidor Importamos las librerías necesarias para los sockets Declaramos dos variables, una será la dirección del Server , ya que estamos haciendo todo en nuestra pc la dirección debe de ser la local, localhost o 127.0.0.1 La otra variable será el puerto de conexión, es recomendable seleccionar un puerto alto. Es por eso que las aplicaciones utilizan 8080 . Ahora tenemos que crear un objeto de tipo Socket, que nos pide tres parámetro: 1- Esquema del tipo de diccionario: AddressFamily.InterNetwork dice que utilizará una dirección IP