elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  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:

Código:
######################################################
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:

Código
  1. #!/bin/bash
  2.  
  3. echo ""
  4. echo "LISTADO DE PRODUCTOS"
  5. echo "-------------------------------------------"
  6. cat /home/barea/unity/ejercicios_de_Scipt_en_Bash/cut/ejer57/productos.txt
  7. echo "-------------------------------------------"
  8. echo ""
  9.  
  10. i=1
  11. read -p "elige el producto $i que desees o S para salir: " prod
  12. echo "prod1: "$prod
  13.  
  14. #        en la variable codig quiero guardar la primera columna del fichero, pero me sale toda la columna en una linea y creo que es
  15. # por eso por lo que no me funciona lo que he realizado mas adelante de del head | tail, como lo tendria que hacer???
  16. codig=$(cat /home/barea/unity/ejercicios_de_Scipt_en_Bash/cut/ejer57/productos.txt | cut -d "#" -f 1 | grep '^[C,c]\.[0-9]\{3\}$')
  17. echo "Codig: "$codig
  18.  
  19. while [ $prod != 'S' ]
  20. do
  21. echo "i: "$i
  22. linea_cod_fich=$(head -$i /home/barea/unity/ejercicios_de_Scipt_en_Bash/cut/ejer57/productos.txt | tail -1)
  23. i=$(expr $i \+ 1)
  24. read -p "elige el producto $i que desees o S para salir: " prod
  25. echo "prod1: "$prod
  26. echo "Cod_fich: "$cod_fich
  27. echo "linea_cod_fich: "$linea_cod_fich
  28. exit while
  29. done
  30.  

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:
Código
  1. Public Class Form1
  2.    ' Una máquina expendedora de dinero necesita calcular el número de billetes y monedas que corresponden
  3.    ' a una cantidad (sin decimales.) Elaborar una aplicación que a través de un TEXTBOX introduzca una cantidad
  4.    ' y con LABELS que me muestre cuántos billetes de 500 100 50 20 10 5 hay en esa cantidad. Ejemplo: 472 -> 4
  5.    ' 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)
  6.  
  7.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  8.  
  9.    End Sub
  10.  
  11.    Private Sub btn_Desglosar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Desglosar.Click
  12.        Dim resto As Integer = 0
  13.        Dim b_500, b_200, b_100, b_50, b_20, b_10, b_5, m_2, m_1 As Integer
  14.  
  15.        '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
  16.  
  17.        Try
  18.            If txt_Cantidad.Text = "" Then
  19.                MessageBox.Show("No ha introducido ninguna cantidad a desglosar", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information)
  20.            End If
  21.  
  22.            If txt_Cantidad.Text > 500 Then
  23.                b_500 = CInt(txt_Cantidad.Text) / 500
  24.                txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_500 * 500)
  25.                MessageBox.Show("Billetes de 500: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK)
  26.            End If
  27.  
  28.            If txt_Cantidad.Text > 200 Then
  29.                b_200 = CInt(txt_Cantidad.Text) / 200
  30.                txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_200 * 200)
  31.                MessageBox.Show("Billetes de 200: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK)
  32.            End If
  33.  
  34.            If txt_Cantidad.Text > 100 Then
  35.                b_100 = CInt(txt_Cantidad.Text) / 100
  36.                txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_100 * 100)
  37.                MessageBox.Show("Billetes de 100: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK)
  38.            End If
  39.  
  40.            If txt_Cantidad.Text > 50 Then
  41.                b_50 = CInt(txt_Cantidad.Text) / 50
  42.                txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_50 * 50)
  43.                MessageBox.Show("Billetes de 50: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK)
  44.            End If
  45.  
  46.            If txt_Cantidad.Text > 20 Then
  47.                b_20 = CInt(txt_Cantidad.Text) / 20
  48.                txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_20 * 20)
  49.                MessageBox.Show("Billetes de 20: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK)
  50.            End If
  51.  
  52.            If txt_Cantidad.Text > 10 Then
  53.                b_10 = CInt(txt_Cantidad.Text) / 10
  54.                txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_10 * 10)
  55.                MessageBox.Show("Billetes de 10: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK)
  56.            End If
  57.  
  58.            If txt_Cantidad.Text > 5 Then
  59.                b_5 = CInt(txt_Cantidad.Text) / 5
  60.                txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (b_5 * 5)
  61.                MessageBox.Show("Billetes de 5: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK)
  62.            End If
  63.  
  64.            If txt_Cantidad.Text > 2 Then
  65.                m_2 = CInt(txt_Cantidad.Text) / 2
  66.                txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (m_2 * 2)
  67.                MessageBox.Show("Monedas de 2: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK)
  68.            End If
  69.  
  70.            If txt_Cantidad.Text >= 1 Then
  71.                m_1 = CInt(txt_Cantidad.Text) / 1
  72.                txt_Cantidad.Text = CInt(txt_Cantidad.Text) - (m_1 * 1)
  73.                MessageBox.Show("Monedas de 1: " & txt_Cantidad.Text, "informacion", MessageBoxButtons.OK)
  74.            End If
  75.            txt_Cantidad.Text = ""
  76.  
  77.            MessageBox.Show("La cantidad desblosada en billetes es: " & vbCrLf &
  78.                        "Billetes de 500: " & b_500 & " Billetes" & vbCrLf &
  79.                        "Billetes de 200: " & b_200 & " Billetes" & vbCrLf &
  80.                        "Billetes de 100: " & b_100 & " Billetes" & vbCrLf &
  81.                        "Billetes de 50: " & b_50 & " Billetes" & vbCrLf &
  82.                        "Billetes de 20: " & b_20 & " Billetes" & vbCrLf &
  83.                        "Billetes de 10: " & b_10 & " Billetes" & vbCrLf &
  84.                        "Billetes de 5: " & b_5 & " Billetes" & vbCrLf &
  85.                        "Monedas de 2: " & m_2 & " Monedas" & vbCrLf &
  86.                        "Monedad de 1: " & m_1 & " Monedas" & vbCrLf, "Billetes", MessageBoxButtons.OK)
  87.        Catch ex As Exception
  88.  
  89.        End Try
  90.  
  91.    End Sub
  92. End Class
  93.  
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.

Código
  1. # Crear un script que intente adiviar un numro que tenemos en mente. El programa debera ir
  2. #preguntando al usuario si el numero mostrado es mayor o menor.
  3.  
  4. #!/bin/bash
  5.  
  6. fin=10
  7. inicio=1
  8. cont=0
  9. intento=$(($RANDOM%fin+inicio))
  10.  
  11. echo 'El numero es: '$intento ' S/N?: '
  12. read resp
  13.  
  14. while [ $resp == 'N' ] && [ $inicio -lt $fin ]
  15. do
  16. echo 'inicio: '$inicio
  17. echo 'fin: '$fin
  18. echo 'si el numero es MAYOR (M) o menor (m)?'
  19. read resp1
  20. echo ''
  21. if [ $resp1 = 'M' ]
  22. then
  23. inicio=$(expr $intento \+ 1)
  24. #fin=$fin
  25. intento=$(($RANDOM%fin+inicio))
  26. echo ''
  27. echo 'intento2: '$intento
  28. echo ''
  29. else
  30. if [ $resp1 = 'm' ]
  31. then
  32. #inicio=$inicio
  33. fin=$(expr $intento \- 1)
  34. intento=$(($RANDOM%fin+inicio))
  35. echo ''
  36. echo 'intento3: '$intento
  37. echo ''
  38. fi
  39. fi
  40. echo 'El numero es: '$intento ' S/N?: '
  41. read resp
  42. done
  43. echo 'Numero encontrado: '$intento
  44.  
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.

Código
  1. # Crear un script que dados 3 ficheros: Equipos.txt, Resultados.txt,
  2. # Equipos2.txt, permita generar el fichero Quiniela.txt que contiene las
  3. # lineas de la quiniela formada por los equipos que estan en el fichero
  4. # Equipos1.txt, el resultado del fichero Resultados.txt y los equipos de
  5. # Equipos2.txt. El script debera comprobar que dichos fichreros tienen el
  6. # mismo numero de elementos para que la quiniela se pueda generare
  7. # correctamene.
  8.  
  9. #!/bin/bash
  10. # generamos el fichero quiniela.txt
  11. echo '' >> ./quiniela.txt
  12.  
  13. # comprobar que los 3 ficheros tienen el mismo numero de lineas
  14. eq1=$(cat ./equipos1.txt | wc -l ./equipos1.txt | cut -d " " -f 1)
  15. eq2=$(cat ./equipos2.txt | wc -l ./equipos2.txt | cut -d " " -f 1)
  16. result=$(cat ./resultados.txt | wc -l ./resultados.txt | cut -d " " -f 1)
  17. echo ''
  18. echo 'Equipos1: '$eq1
  19. echo 'Equipos2: '$eq2
  20. echo 'Resultados: '$result
  21. echo ''
  22. cont=0
  23. if $(test $eq1 -eq $eq2) && $(test $eq2 -eq $result)
  24. then
  25. echo 'Empezamos a confeccionar la quiniela...'
  26. for i in $(cat ./equipos1.txt)
  27. do
  28. echo 'equipo1: '$(head $i ./equipos1.txt | tail -1)
  29. #$eq2=$(head $i ./equipos2.txt | tail -1)
  30. #$result=$(head $i ./resultados.txt | tail -1)
  31. # introducimos la linea en el fichero quiniela.txt
  32. #echo '1. '$(head $i ./equipos1.txt | tail -1)' - '$(head $i ./equipos2.txt | tail -1)' '$(head $i ./resultados.txt | tail -1)
  33. # echo '1. ' $(head $1 ./equipos1.txt | tail -1)' - '$(head $j ./equipos2.txt | tail -1)' - '$(head $k ./resultados.txt | tail -1)
  34. #cont=$(expr $cont \+ 1)
  35. done
  36. else
  37. echo 'Los ficheros no tienen los mismos elementos.'
  38. fi
  39.  

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:

Código
  1. Public Class frm_Alumno
  2.  
  3.    Public Structure str_Alumnos
  4.        Public nombre As String
  5.        Public apellidos As String
  6.        Public direccion As String
  7.        Public telefono As String
  8.        Public fecha_nac As Date
  9.    End Structure
  10.  
  11.    Dim nregistros As UShort
  12.    Public S_Alumnos() As str_Alumnos
  13.  
  14.    Private Sub cmb_Borrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Borrar.Click
  15.        txt_Nombre.Text = ""
  16.        txt_Apellido.Text = ""
  17.        txt_Direccion.Text = ""
  18.        txt_Telefono.Text = ""
  19.        txt_Fecha_Nacimiento.Text = ""
  20.    End Sub
  21.  
  22.    Private Sub cmb_Insertar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Insertar.Click
  23.  
  24.  
  25.        'pnl_Alumno.Visible = True
  26.  
  27.        '        aqui le tendria que realizar un bucle, para que recorra los campos de la estructura tantas veces
  28.        ' como yo quiera, pero nuse de que manera lo tendría que realizar, me pueden ayudar??
  29.        S_Alumnos(CInt(lbl_Contador.Text)).nombre = txt_Nombre.Text
  30.        S_Alumnos(CInt(lbl_Contador.Text)).apellidos = txt_Apellido.Text
  31.        S_Alumnos(CInt(lbl_Contador.Text)).direccion = txt_Direccion.Text
  32.        S_Alumnos(CInt(lbl_Contador.Text)).telefono = txt_Telefono.Text
  33.        S_Alumnos(CInt(lbl_Contador.Text)).fecha_nac = CDate(txt_Fecha_Nacimiento.Text)
  34.        lbl_Contador.Text = CInt(lbl_Contador.Text) + 1
  35.    End Sub
  36.  
  37.    Private Sub cmb_Buscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Buscar.Click
  38.        Dim i As Integer
  39.        Dim buscar_nombre, buscar_apellido As String
  40.  
  41.        buscar_nombre = InputBox("Introduce el nombre a buscar: ")
  42.        buscar_apellido = ("Introduce el apellido a buscar: ")
  43.  
  44.        For i = 0 To nregistros
  45.            If S_Alumnos(i).nombre = txt_Nombre.Text = S_Alumnos(i).apellidos = txt_Apellido.Text Then
  46.                MsgBox("Nombre: " & txt_Nombre.Text & vbCrLf &
  47.                       "Apellido: " & txt_Apellido.Text & vbCrLf &
  48.                       "Direccion: " & txt_Direccion.Text & vbCrLf &
  49.                       "Telefono: " & txt_Telefono.Text & vbCrLf &
  50.                       "Fecha de Nacimiento: " & txt_Fecha_Nacimiento.Text)
  51.            End If
  52.        Next i
  53.    End Sub
  54.  
  55.    Private Sub frm_Alumno_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  56.        Dim nregistros As UShort
  57.        nregistros = CUShort(InputBox("Introduce el numero de registros"))
  58.        lbl_Total.Text = nregistros
  59.        'pnl_Alumno.Visible = False
  60.    End Sub
  61. End Class
  62.  

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???
Páginas: 1 2 3 4 [5] 6 7 8 9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines