|
Mostrar Temas
|
Páginas: 1 2 3 4 [5] 6 7 8 9
|
41
|
Programación / Scripting / ayuda con Script en Bash
|
en: 26 Enero 2012, 18:28 pm
|
Hola a todos, estoy realizando un Script en Bash y tengo algunas dudas las cuales me gustaría que me las resolvieran a medida que voy haciendo el script. Enunciado del Script: Crear un script que permita generar una factura por pantalla. para ello, se debera pedir en primer lugar, nombre y dni del usuario, y a continuacion cuantos articulos se van a comprar. a partir de ahi, existe un fichero en la misma carpeta del scipt, llamado productos.txt, donde estan los codigos, los nombres y el precio de cada producto. el usuario mostrara en pantalla el codigo de cada uno de los productos que desea comprar y la cantidad de ellos, y el script ira guardando todo esto en un fichero pra generar despues lafacura que recogera lo siguiente: ###################################################### FACTURA ###################################################### Fecha: ---------------- Cliente: -------- DNI: ----------- ###################################################### Codigo####Descripcion####Cantidad####U.P.####Total#### ###################################################### C.2110 producto1 3 5.30 15.90 C.2012 producto2 8 15.20 121.60 ###################################################### SUBTOTAL: 137.50 IVA 18%: 24.75 ############### IMPORTE: 162.25
IDEA: usar la calculadora bc: c=$(echo 22.5 + 3.75 | bc) y el comando cut para acceder a los codigos, precio y nombres de los productos. el fichero productos.txt puede ser el siguiente: C.001#caja de CD's 32x 25uds, Verbatin#5.25 C.002#raton laser, logitec#4.50 C.003#pen drive 8GB, Kingston#7.10 C.004#kiingston micro SD 4GB#3.90 Ahora os pongo el codigo que he realizado y os comento la duda dentro del código: #!/bin/bash echo "" echo "LISTADO DE PRODUCTOS" echo "-------------------------------------------" cat /home/barea/unity/ejercicios_de_Scipt_en_Bash/cut/ejer57/productos.txt echo "-------------------------------------------" echo "" i=1 read -p "elige el producto $i que desees o S para salir: " prod echo "prod1: "$prod # en la variable codig quiero guardar la primera columna del fichero, pero me sale toda la columna en una linea y creo que es # por eso por lo que no me funciona lo que he realizado mas adelante de del head | tail, como lo tendria que hacer??? codig=$(cat /home/barea/unity/ejercicios_de_Scipt_en_Bash/cut/ejer57/productos.txt | cut -d "#" -f 1 | grep '^[C,c]\.[0-9]\{3\}$') echo "Codig: "$codig while [ $prod != 'S' ] do echo "i: "$i linea_cod_fich=$(head -$i /home/barea/unity/ejercicios_de_Scipt_en_Bash/cut/ejer57/productos.txt | tail -1) i=$(expr $i \+ 1) read -p "elige el producto $i que desees o S para salir: " prod echo "prod1: "$prod echo "Cod_fich: "$cod_fich echo "linea_cod_fich: "$linea_cod_fich exit while done
Espero que me puedan ayudar, saludos
|
|
|
42
|
Sistemas Operativos / GNU/Linux / Debian
|
en: 10 Enero 2012, 19:18 pm
|
Hola a todos, tengo que realizar el montaje de un servidor con si Sistema Operativo Debian, se me estan planteando algunas dudas que son las siguientes:
- Me gustaría saber si las cuestiones que están a continuación las tendría que incluir en: /etc/profile o en /etc/bash.bashrc??
- Quiero guardar en un fichero (que lo llamaremos por ejemplo secion.dat) que va a estar en /root/registros/, el usuario, la hora y la fecha a la que inicio sesion en dicho equipo.
- También quiero que la carpeta personal del usuario no supere los 500 MB, si los supera, se enviara un echo al terminal ttyX correspondiente diciendole: "Acceso denegado a Shell" y se le impedira el acceso a la Shell la proxima vez.
Espero que me puedan ayudar.
|
|
|
43
|
Programación / .NET (C#, VB.NET, ASP) / desglosar
|
en: 3 Enero 2012, 13:56 pm
|
Hola a todos, estoy realizando una aplicación que me desglose una cantidad que le introduzco por teclado en los billetes y monedas correspondientes, aquí os dejo el programa y el código que he implementado yo, en el código le he introducido algunos Messagebox para que me enseñe por pantalla lo que me va devolviendo en la operación de la cantidad que le introduzco. código de la aplicación: Public Class Form1 ' Una máquina expendedora de dinero necesita calcular el número de billetes y monedas que corresponden ' a una cantidad (sin decimales.) Elaborar una aplicación que a través de un TEXTBOX introduzca una cantidad ' y con LABELS que me muestre cuántos billetes de 500 100 50 20 10 5 hay en esa cantidad. Ejemplo: 472 -> 4 ' de 100, 1 de 50, 1 de 20 (me sobran 2 euros que no los tengo presentes pues no hay un billete de 2 euros) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub btn_Desglosar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Desglosar.Click Dim resto As Integer = 0 Dim b_500, b_200, b_100, b_50, b_20, b_10, b_5, m_2, m_1 As Integer 'b_500 = 0 & b_200 = 0 & b_100 = 0 & b_50 = 0 & b_20 = 0 & b_10 = 0 & b_5 = 0 & m_2 = 0 = 0 & m_1 = 0 Try If txt_Cantidad.Text = "" Then MessageBox.Show("No ha introducido ninguna cantidad a desglosar", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information) End If If txt_Cantidad.Text > 500 Then b_500 = CInt(txt_Cantidad.Text) / 500 txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_500 * 500) MessageBox.Show("Billetes de 500: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK) End If If txt_Cantidad.Text > 200 Then b_200 = CInt(txt_Cantidad.Text) / 200 txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_200 * 200) MessageBox.Show("Billetes de 200: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK) End If If txt_Cantidad.Text > 100 Then b_100 = CInt(txt_Cantidad.Text) / 100 txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_100 * 100) MessageBox.Show("Billetes de 100: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK) End If If txt_Cantidad.Text > 50 Then b_50 = CInt(txt_Cantidad.Text) / 50 txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_50 * 50) MessageBox.Show("Billetes de 50: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK) End If If txt_Cantidad.Text > 20 Then b_20 = CInt(txt_Cantidad.Text) / 20 txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_20 * 20) MessageBox.Show("Billetes de 20: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK) End If If txt_Cantidad.Text > 10 Then b_10 = CInt(txt_Cantidad.Text) / 10 txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_10 * 10) MessageBox.Show("Billetes de 10: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK) End If If txt_Cantidad.Text > 5 Then b_5 = CInt(txt_Cantidad.Text) / 5 txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_5 * 5) MessageBox.Show("Billetes de 5: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK) End If If txt_Cantidad.Text > 2 Then m_2 = CInt(txt_Cantidad.Text) / 2 txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (m_2 * 2) MessageBox.Show("Monedas de 2: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK) End If If txt_Cantidad.Text >= 1 Then m_1 = CInt(txt_Cantidad.Text) / 1 txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (m_1 * 1) MessageBox.Show("Monedas de 1: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK) End If txt_Cantidad.Text = "" MessageBox.Show("La cantidad desblosada en billetes es: " & vbCrLf & "Billetes de 500: " & b_500 & " Billetes" & vbCrLf & "Billetes de 200: " & b_200 & " Billetes" & vbCrLf & "Billetes de 100: " & b_100 & " Billetes" & vbCrLf & "Billetes de 50: " & b_50 & " Billetes" & vbCrLf & "Billetes de 20: " & b_20 & " Billetes" & vbCrLf & "Billetes de 10: " & b_10 & " Billetes" & vbCrLf & "Billetes de 5: " & b_5 & " Billetes" & vbCrLf & "Monedas de 2: " & m_2 & " Monedas" & vbCrLf & "Monedad de 1: " & m_1 & " Monedas" & vbCrLf, "Billetes", MessageBoxButtons.OK) Catch ex As Exception End Try End Sub End Class
|
|
|
44
|
Sistemas Operativos / GNU/Linux / Servidor debian
|
en: 7 Diciembre 2011, 21:09 pm
|
Hola a todos, tengo que realizar el montaje de un servidor con si Sistema Operativo Debian, se me estan planteando algunas dudas que son las siguientes:
- Quiero guardar en un fichero (que lo llamaremos por ejemplo secion.dat) que va a estar en /root/registros/, el usuario, la hora y la fecha a la que inicio sesion en dicho equipo.
- También quiero que la carpeta personal del usuario no supere los 500 MB, si los supera, se enviara un echo al terminal ttyX correspondiente diciendole: "Acceso denegado a Shell" y se le impedira el acceso a la Shell la proxima vez.
Espero que me puedan ayudar.
|
|
|
45
|
Programación / .NET (C#, VB.NET, ASP) / Microsoft Visual Studio 2010
|
en: 23 Noviembre 2011, 15:30 pm
|
Me ha pasado algo en el programa Microsoft Visual Studio 2010 que no se como solucionarlo, se me han ido del cuadro de herramientas todos los botones, label, textbox, .......... me gustaria saber porque me ha ocurrido eso o donde puedo encontrar estas herramientas por otro sitio.
Saludos
|
|
|
46
|
Programación / Scripting / Script adivinar numero en bash
|
en: 11 Noviembre 2011, 17:56 pm
|
Hola a todos, he realizado un script y una vez realizado no es del todo eficiente. El problema lo tengo con los números aleatorios de inicio y fin, aquí os dejo el script que yo he realizado haber si me pueden ayudar a resolverlo. tiene algunos "echo" de mas porque los he ido utilizado para ayudarme. # Crear un script que intente adiviar un numro que tenemos en mente. El programa debera ir #preguntando al usuario si el numero mostrado es mayor o menor. #!/bin/bash fin=10 inicio=1 cont=0 intento=$(($RANDOM%fin+inicio)) echo 'El numero es: '$intento ' S/N?: ' read resp while [ $resp == 'N' ] && [ $inicio -lt $fin ] do echo 'inicio: '$inicio echo 'fin: '$fin echo 'si el numero es MAYOR (M) o menor (m)?' read resp1 echo '' if [ $resp1 = 'M' ] then inicio=$(expr $intento \+ 1) #fin=$fin intento=$(($RANDOM%fin+inicio)) echo '' echo 'intento2: '$intento echo '' else if [ $resp1 = 'm' ] then #inicio=$inicio fin=$(expr $intento \- 1) intento=$(($RANDOM%fin+inicio)) echo '' echo 'intento3: '$intento echo '' fi fi echo 'El numero es: '$intento ' S/N?: ' read resp done echo 'Numero encontrado: '$intento
|
|
|
47
|
Programación / Scripting / script con ficheros
|
en: 1 Noviembre 2011, 11:26 am
|
Hola a todos, tengo un problemilla con este script, tengo que realizar una quiniela, los problemas que na da son los siguientes: 1. al comprobar que los 3 ficheros tienen la misma cantidad de elementos, comparo los 2 primeros y me sale bien, pero al meterle el tercero me salta el error, la verdad es que nose porque. 2. para sacar el nombre del equipo de cada fichero, si no me equivoco lo tendría que realizar con $(head -x | tail -1) pero no consigo realizarlo. Aqui dejo el codigo que tengo confeccionado, haber si me pueden ayudar. el enunciado se los he dejado comentado al principio de scirpt, tambien le he comentado algunas lineas para que me ayuden en la depuracion del script. # Crear un script que dados 3 ficheros: Equipos.txt, Resultados.txt, # Equipos2.txt, permita generar el fichero Quiniela.txt que contiene las # lineas de la quiniela formada por los equipos que estan en el fichero # Equipos1.txt, el resultado del fichero Resultados.txt y los equipos de # Equipos2.txt. El script debera comprobar que dichos fichreros tienen el # mismo numero de elementos para que la quiniela se pueda generare # correctamene. #!/bin/bash # generamos el fichero quiniela.txt echo '' >> ./quiniela.txt # comprobar que los 3 ficheros tienen el mismo numero de lineas eq1=$(cat ./equipos1.txt | wc -l ./equipos1.txt | cut -d " " -f 1) eq2=$(cat ./equipos2.txt | wc -l ./equipos2.txt | cut -d " " -f 1) result=$(cat ./resultados.txt | wc -l ./resultados.txt | cut -d " " -f 1) echo '' echo 'Equipos1: '$eq1 echo 'Equipos2: '$eq2 echo 'Resultados: '$result echo '' cont=0 if $(test $eq1 -eq $eq2) && $(test $eq2 -eq $result) then echo 'Empezamos a confeccionar la quiniela...' for i in $(cat ./equipos1.txt) do echo 'equipo1: '$(head $i ./equipos1.txt | tail -1) #$eq2=$(head $i ./equipos2.txt | tail -1) #$result=$(head $i ./resultados.txt | tail -1) # introducimos la linea en el fichero quiniela.txt #echo '1. '$(head $i ./equipos1.txt | tail -1)' - '$(head $i ./equipos2.txt | tail -1)' '$(head $i ./resultados.txt | tail -1) # echo '1. ' $(head $1 ./equipos1.txt | tail -1)' - '$(head $j ./equipos2.txt | tail -1)' - '$(head $k ./resultados.txt | tail -1) #cont=$(expr $cont \+ 1) done else echo 'Los ficheros no tienen los mismos elementos.' fi
Saludos,
|
|
|
48
|
Programación / .NET (C#, VB.NET, ASP) / almacenar estructura en cadena en .NET
|
en: 26 Octubre 2011, 17:48 pm
|
Hola a todos, tengo que almacenar en una cadena una estructura (nombre, apellidos, direccion, ciudad, telefono, fecha_nacimiento) esto lo tengo que hacer en un formulario, yo he realizado el formulario y el siguiente codigo: Public Class frm_Alumno Public Structure str_Alumnos Public nombre As String Public apellidos As String Public direccion As String Public telefono As String Public fecha_nac As Date End Structure Dim nregistros As UShort Public S_Alumnos() As str_Alumnos Private Sub cmb_Borrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Borrar.Click txt_Nombre.Text = "" txt_Apellido.Text = "" txt_Direccion.Text = "" txt_Telefono.Text = "" txt_Fecha_Nacimiento.Text = "" End Sub Private Sub cmb_Insertar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Insertar.Click 'pnl_Alumno.Visible = True ' aqui le tendria que realizar un bucle, para que recorra los campos de la estructura tantas veces ' como yo quiera, pero nuse de que manera lo tendría que realizar, me pueden ayudar?? S_Alumnos(CInt(lbl_Contador.Text)).nombre = txt_Nombre.Text S_Alumnos(CInt(lbl_Contador.Text)).apellidos = txt_Apellido.Text S_Alumnos(CInt(lbl_Contador.Text)).direccion = txt_Direccion.Text S_Alumnos(CInt(lbl_Contador.Text)).telefono = txt_Telefono.Text S_Alumnos(CInt(lbl_Contador.Text)).fecha_nac = CDate(txt_Fecha_Nacimiento.Text) lbl_Contador.Text = CInt(lbl_Contador.Text) + 1 End Sub Private Sub cmb_Buscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Buscar.Click Dim i As Integer Dim buscar_nombre, buscar_apellido As String buscar_nombre = InputBox("Introduce el nombre a buscar: ") buscar_apellido = ("Introduce el apellido a buscar: ") For i = 0 To nregistros If S_Alumnos(i).nombre = txt_Nombre.Text = S_Alumnos(i).apellidos = txt_Apellido.Text Then MsgBox("Nombre: " & txt_Nombre.Text & vbCrLf & "Apellido: " & txt_Apellido.Text & vbCrLf & "Direccion: " & txt_Direccion.Text & vbCrLf & "Telefono: " & txt_Telefono.Text & vbCrLf & "Fecha de Nacimiento: " & txt_Fecha_Nacimiento.Text) End If Next i End Sub Private Sub frm_Alumno_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim nregistros As UShort nregistros = CUShort(InputBox("Introduce el numero de registros")) lbl_Total.Text = nregistros 'pnl_Alumno.Visible = False End Sub End Class
en el codigo les he dejado un comentario en la parte que creo yo que deberia de ir el bucle. espero que me puedan ayudar, saludos
|
|
|
49
|
Programación / Programación Visual Basic / programacion de word
|
en: 23 Octubre 2011, 20:10 pm
|
hola a todos, estoy realizando una factura en Word y tengo unas dudas para hacerla lo mas eficiente posible, las dudas son las siguientes:
1- tengo una tabla en la cual tengo los artículos, en la factura para seleccionar el producto tengo un ComboBox, en el cual quiero que me aparezcan los artículos que tengo en la tabla de los artículos. Cual es el evento para que me aparezcan los artículos en el ComboBox de manera automática???
2- Otra cosilla que quiero hacer es que cuando elija el articulo, le ponga el numero de artículos que quiero, en los label de precio y de total quiero que me aparezca de forma automática en el precio el precio que tiene el articulo en la tabla y el total la multiplicación del numero de artículos por el precio.
La duda que tengo es que no se cual es el evento en el que tengo que realizar etas operaciones.
Espero que me puedan ayudar.
Saludos
|
|
|
50
|
Sistemas Operativos / GNU/Linux / Ubuntu en VirtualBox
|
en: 20 Octubre 2011, 19:32 pm
|
Hola a todos, he instalado Ubuntu en una maquina virtual (VirtualBox) y el inconveniente que tengo es el siguiente:
Me gustaria que la ventana en la cual me aparece Ubuntu fuese a pantalla completa, pero no consigo que sea asi, ya le he instalado en el gestor de paquetes Synaptic el: 1- virtualbox-guest-additions 2- virtualbox-ose-guest-x11
mi pregunta es la siguiente, porque no me aparece la ventana de Ubuntu en pantalla completa, le tendria que instalar algo mas???
|
|
|
|
|
|
|