|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - goldenscriptup
26
« en: Miércoles 8 de Abril de 2009, 23:01 »
Una observacion al arreglo letras le hace falta las comillas entre cada elemento, como se ve en el ejemplo siguiente. Otro error que tienes es que no lleva punto y coma(  al final del if, y en la linea 17 de tu ejemplo que pusiste lo tiene. if (letracalculada != letra); Pon el codigo entre la etiqueta <head> </head> <head> <script type="text/javascript"> var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J','Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T']; var numero = prompt("Introduce tu numero DNI"); var letra = prompt("Introduce la letra de tu DNI (en mayúsculas)"); letra = letra.toUpperCase(); if(numero < 0 || numero > 99999999) { alert("El número proporcionado no es válido"); } else { var letraCalculada = letras[numero % 23]; if(letraCalculada != letra) { alert("La letra o el número proporcionados no son correctos"); } else { alert("Todo correcto"); } } </script> </head>
espero que te sea de utilidad saludos!
27
« en: Martes 7 de Abril de 2009, 10:17 »
Una sugerencia, a como lo explicas creo que tendrias que buscar una rutina ya sea una api de windows que este decierta forma escuchando el puerto usb o utilizar un dll que este hecho en C que realize lo que necesitas para que puedas manipular lo que entra en el puerto usb y que ese programa este corriendo siempre en tu pc.
28
« en: Martes 7 de Abril de 2009, 10:01 »
Celebro que ya soy miembro activo
29
« en: Martes 7 de Abril de 2009, 09:38 »
Estas aplicando mal la Herencia, por que estas usando como tu clase general la clase Figura y dentro de esa clase estas declarando otras clases, diriamos subclases de la clase Figura y aparte a las subclases quieres extenderlas o Heredarlas de la clase Figura, Eso esta mal No te recomiendo que quieras usar una clase para inicializar todas las variables, por que si nada mas quieres saber el perimetro de un cuadrado solo mandas a llamar la clase Cuadrado o si quieres saber los datos de un circulo solo mandas a llamar la clase Circulo y asi sucesivamente. El problema que te ocasionaria si tienes una solo clase que inicializa todas las variables de las clases Cuadrado, Circulo y Triangulo tendrias que mandarle todos los parametros a esta funcion. void atrapando(float a, float b, float c, float tri1, float tri2, float tri3, float tri4) { // los lados del cuadrado side1=a; side2=b; //radio del circulo rad=c; //los elementos del triangulo altura=tri1; ladob=tri2; ladod=tri3; ladoc=tri4; } aunque no fuera necesario enviar todos los parametros. El problema esq en la linea 111, al llamar a "obj.recua" manda error, que puede estar pasando? En este problema haces referencia como si el metodo "recua" le perteneciera a la clase Figura pero no es asi, el metodo "recua" le pertenece a la subclase Cuadrado. En lo personal yo haria 4 clases independientes.  Una clase Cuadrado, Circulo y Triangulo. Cada clase debe de tener sus metodos para realizar sus operaciones y su constructor para inicializar las variables necesarias y la otra clase seria LlamarFiguras u otro nombre pero que esa clase se encargue de llamar a las demas clases. Aqui te pongo un ejemplo que te explica la idea y funciona, solo seria cuestion de que crearas las demas clases faltantes. Creamos una clase Cuadrado public class Cuadrado { private float side1; //Constructor. Inicializa las variables cuando carga la clase public Cuadrado(float a){ side1 = a; } //Funcion que calcula el area. float calcularArea(){ return side1*side1; } //Funcion que calcula el perimetro float calcularPerimetro(){ return side1 * 4; } }
Creamos una Clase LlamarFiguras import javax.swing.JOptionPane; public class LlamarFiguras { public static void main (String args []){ float area, perimetro; /*Se le envia el parametro del lado del cuadro para que el constructor lo cache e inicialice la variable side1. Solamente se manda un lado del cuadrado por que todos sus lados son iguales*/ Cuadrado datoscuadrado = new Cuadrado(5); area = datoscuadrado.calcularArea(); perimetro = datoscuadrado.calcularPerimetro(); JOptionPane. showMessageDialog(null, "El area es: "+area +" n El perimetro es: "+perimetro ); /*De aqui para abajo puedes mandar a llamar las demas clases que serian Circulo y Triangulo. */ } }
Espero que te sea de utilidad y cualquier duda no dudes en postearla. Saludos
30
« en: Martes 7 de Abril de 2009, 00:02 »
Aqui tienes el codigo para que te muestre todas las unidades que tienes en el ordenador y tambien detecta las memorias usb y todas las memorias extraibles que esten conectadas  . 1.- Iniciar un proyecto EXE estándar nuevo. Form1 se agrega de forma predeterminada. 2.- Agregue un DriveListBox a Form1. 3.- Agregue el código a continuación a la sección de declaraciones generales de Form1: Option Explicit Private Declare Function GetDriveType Lib "kernel32" Alias _ "GetDriveTypeA" (ByVal sDrive As String) As Long Private Function DriveType(sDrive As String) As String Dim sDriveName As String Const DRIVE_TYPE_UNDTERMINED = 0 Const DRIVE_ROOT_NOT_EXIST = 1 Const DRIVE_REMOVABLE = 2 Const DRIVE_FIXED = 3 Const DRIVE_REMOTE = 4 Const DRIVE_CDROM = 5 Const DRIVE_RAMDISK = 6 sDriveName = GetDriveType(sDrive & ":") Select Case sDriveName Case DRIVE_TYPE_UNDTERMINED DriveType = "has not been recognized" Case DRIVE_ROOT_NOT_EXIST DriveType = "specified doesn't exist" Case DRIVE_CDROM DriveType = "is a CD-ROM drive." Case DRIVE_FIXED DriveType = "cannot be removed I.E. Hard Disk" Case DRIVE_RAMDISK DriveType = "is a RAM disk." Case DRIVE_REMOTE DriveType = "is a remote I.E Network drive." Case DRIVE_REMOVABLE DriveType = "can be removed I.E. Floppy Disk." End Select End Function Private Sub Drive1_Change() MsgBox "The Drive Type " & DriveType(Left(Drive1.Drive, 1)) End Sub
O no es esto lo que necesitas? Saludos!
31
« en: Lunes 6 de Abril de 2009, 23:27 »
Probablemente lo pudieras hacer con cookies y poner una opcion en tu login que diga, guardar usuario y contraseña o algo similar y grabarlo en la cookie.
Pero regularmente los navegadores guardan esa informacion, pero aveces deshabilitamos la opcion de guardar los datos introducidos en un formulario.
32
« en: Miércoles 1 de Abril de 2009, 12:53 »
Yo creo que si se puede realizar con solo consultas en SQL  , solo hay que usar un poco la imaginacion  . Yo hice este query y me regresa. login ganancia perdida neto 20 25000 -15000 10000 SELECT DISTINCT a.login,(SELECT SUM(df.profit) FROM pruebadatos df WHERE df.profit > 0 AND df.login = a.login) AS ganancia,(SELECT SUM(wq.profit) AS perdida FROM pruebadatos wq WHERE wq.profit < 0 AND wq.login = a.login) AS perdida,(SELECT SUM(lk.profit) FROM pruebadatos lk WHERE lk.profit > 0 AND lk.login = a.login)- ABS((SELECT SUM(yu.profit) AS perdida FROM pruebadatos yu WHERE yu.profit < 0 AND yu.login = a.login)) AS neto FROM pruebadatos a WHERE a.login = 20;
Yo pienso que tambien se puede hacer de alguna otra forma pero esta es la forma que se me ocurrio  . Espero que te sea de utilidad
33
« en: Miércoles 1 de Abril de 2009, 11:44 »
Aqui te paso la sintaxis para que pongas un div autoajustable. En tu CSS creas un identificador como la siguiente o igual la etiqueta div si quieres que todos los divs sean autoajustables <!--Identificador que solo aplicara al div que tiene el nombre en el id = "contenedor"--> #contenedor{border: 1px solid; width:400px; margin: auto;} <!--Poniendo el tag div afecta a todos los divs en general el autoajustarse, dependiendo lo que quieres realizar usas la opcion que mas te convenga--> div{border: 1px solid; width:400px; margin: auto;}
Lo importante para manipular un div que sea autoajustable es usar la propiedad 'margin' y No asignarle el 'height'. La propiedad margin tiene cuatro parametros que recibe ejemplo. {margin: 2px auto auto 10px} (el 2px es el margen superior, el primer auto es el margen derecho, el segundo auto es el margen inferior y el 10px es el margen izquierdo) Va en sentido del reloj o igual lo puedes dejar como esta en el ejemplo. Espero que te sea de utilidad
34
« en: Miércoles 11 de Marzo de 2009, 09:52 »
Aqui no se hacen tareas
35
« en: Miércoles 11 de Marzo de 2009, 09:46 »
Cree un archivo llamado procesar.js en el cual pegue todo el codigo JavaScript // JavaScript Document /*Inicializamos los segundos que tardara en enviarse el formulario. NOTA: Los numeros estan en milisegundos */ var numsegundosenviar = 8000; //Con esta variable llevaremos el control de los segundos que van transcurriendo num = 1 function mostrarsegundos(){ //Muestra los segundos en la etiqueta <p> </p> que esta vacia en el body. var nuevoP = document.createElement("p"); var texto = document.createTextNode("Segundos: "+ num); nuevoP.appendChild(texto); /*Obtiene la segunda etiqueta <p> por que es un arreglo que va de 0 a n... numeros La etiqueta <p>Tienes 7 segundos para contestar</p> le corresponde el 0 y a la etiqueta vacia le corresponde el 1*/ var anteriorP = document.body.getElementsByTagName("p")[1]; anteriorP.parentNode.replaceChild(nuevoP, anteriorP); num = num + 1; } function enviarinfo(){ //Enviar el formulario document.formulario.submit(); } //Esta funcion envia el formulario, solo se ejecuta una vez con el setTimeout setTimeout(enviarinfo, numsegundosenviar); //Esta funcion al contrario de setTimeout se ejecuta consecutivamente. setInterval(mostrarsegundos,1000);
El documento Html quedo asi. En la etiqueta <HEAD> </HEAD> mando a llamar el archivo JS. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Enviar formulario automaticamente</title> <script type="text/javascript" src="procesar.js"></script> </head> <body> <form method="post" action="datos.php" name="formulario"> Nombre:<br> <input type="text" name="nom"><br> Oficio:<br> <input type="text" name = "oficio"><br> <!--Notese que el TYPE es BUTTON no submit y se agrega el EVENTO onClick y manda a llamar una funcion de javascript--> <input type="button" name="enviar" value= "Enviar respuestas" onClick="javascript: enviarinfo();"> </form> <p>Tienes 7 segundos para contestar</p> <!--Mostrara los segundos que van transcurriendo--> <p> </p> </body> </html>
Lo probe en dos navegadores diferentes y funciona bien este codigo con el archivo separado. Correlo asi como esta para que lo pruebes. Recuerda si agregas mas etiquetas <p></p> en el documento Html donde esta el form tienes que cambiar el index en el codigo JavaScript, recuerda que es un arreglo de etiquetas <p></p> y se cuentan de arriba a abajo empezando del 0,1,2... a "n" etiquetas para que te muestre los segundos en el documento. Recuerda que esta variable "var numsegundosenviar = 8000" tenga un valor. Si llegas a tener un problema espeficica el navegador que usas y si puedes mostrar el codigo del JS mejor para revisarlo. Saludos!
36
« en: Martes 10 de Marzo de 2009, 10:55 »
Respecto a tu necesidad te desarrolle este ejemplo  , espero que te sea de utilidad. Lee los comentarios que te anote en el codigo, ahi explica el funcionamiento. <body> <form method="post" action="datos.php" name="formulario"> Nombre:<br> <input type="text" name="nom"><br> Oficio:<br> <input type="text" name = "oficio"><br> <!--Notese que el TYPE es BUTTON no submit y se agrega el EVENTO onClick y manda a llamar una funcion de javascript--> <input type="button" name="enviar" value= "Enviar respuestas" onClick="javascript: enviarinfo();"> </form> <p>Tienes 7 segundos para contestar</p> <!--Mostrara los segundos que van transcurriendo--> <p> </p> </body> <script language="javascript"> /*Inicializamos los segundos que tardara en enviarse el formulario. NOTA: Los numeros estan en milisegundos */ var numsegundosenviar = 8000; //Con esta variable llevaremos el control de los segundos que van transcurriendo num = 1 function mostrarsegundos(){ //Muestra los segundos en la etiqueta <p> </p> que esta vacia en el body. var nuevoP = document.createElement("p"); var texto = document.createTextNode("Segundos: "+ num); nuevoP.appendChild(texto); /*Obtiene la segunda etiqueta <p> por que es un arreglo que va de 0 a n... numeros La etiqueta <p>Tienes 7 segundos para contestar</p> le corresponde el 0 y a la etiqueta vacia le corresponde el 1*/ var anteriorP = document.body.getElementsByTagName("p")[1]; anteriorP.parentNode.replaceChild(nuevoP, anteriorP); num = num + 1; } function enviarinfo(){ //Enviar el formulario document.formulario.submit(); } //Esta funcion envia el formulario, solo se ejecuta una vez con el setTimeout setTimeout(enviarinfo, numsegundosenviar); //Esta funcion al contrario de setTimeout se ejecuta consecutivamente. setInterval(mostrarsegundos,1000); </script>
Saludos!
37
« en: Sábado 7 de Marzo de 2009, 03:03 »
Aqui tienes un ejemplo que recopile de este sitio. (w3).tek-tips.com/viewthread.cfm?qid=1390120&page=1 Creas una funcion. //FUNCTION: uf_file_last_mod( as_filename ) -- returns String //SCRIPT: String ls_path, ls_file, ls_test DateTime ldt_ret OLEObject obj_shell, obj_folder, obj_item obj_shell = CREATE OLEObject obj_shell.ConnectToNewObject( 'shell.application' ) ls_path = Left( as_filename, LastPos( as_filename, "" ) ) ls_file = Mid( as_filename, LastPos( as_filename, "" ) + 1 ) IF FileExists( as_filename ) THEN obj_folder = obj_shell.NameSpace( ls_path ) IF IsValid( obj_folder ) THEN obj_item = obj_folder.ParseName( ls_file ) IF IsValid( obj_item ) THEN ls_test = obj_folder.GetDetailsOf( obj_item, 3 ) END IF END IF END IF DESTROY obj_shell DESTROY obj_folder DESTROY obj_item RETURN ls_test
Si quieres que el return sea datetime es cuestion de que lo modifiques. Y para que hagas una prueba rapida creas un boton en la ventana y escribes esto pero primero debes de crear el ARCHIVO "c:texto.txt" String ls_file ls_file = "c:texto.txt" MessageBox("Fecha",uf_file_last_mod(ls_file))
En la funcion tiene esta sintaxis "ls_test = obj_folder.GetDetailsOf( obj_item, 3 )" y el numero 3 le corresponde a un tipo de propiedad del archivo, el 3 es la fecha de modificacion del archivo y el 4 es la fecha de la creacion del archivo. En la parte de abajo te pongo la lista disponible. Cualquier duda no dudes en postearla, espero que te sea de utilidad. Saludos! 0 = "Filename" 1 = "Size" 2 = "Type" 3 = "Modified date" 4 = "Created date" 5 = "Unknown" 6 = "Attributes" 7 = "???" 8 = "Domene" 9 = "Artist" 10= "Tittle" 11= "" 12= "Genre" 13= "" 14= "Comments" 15= "" 16= "Artist" 17= "Album title" 18= "Year" 19= "" 20= "Genre" 21= "Duration" 22= "Bitrate" 23= "Protected" 24= "" 25= "" 26= "" 27= "" 28= "" 29= "" 30= "" 31= "" 32= "???" 33= "Audio sample rate" 34= "Channels"
38
« en: Jueves 26 de Febrero de 2009, 10:18 »
Si en la tabla famosoempleado tienes los datos de los empleados y asignado a que departamento pertenece y para saber cuantos empleados tiene un departamento seria de esta forma: SELECT COUNT(idempleado),nombreempledo,departamento FROM famosoempleado GROUP BY departamento;
Si tienes alguna duda posteala y se un poco mas descriptivo con los datos que proporcionas.
39
« en: Jueves 26 de Febrero de 2009, 10:04 »
Me parece que quieres hacer como una implementacion de un foro por la descripcion "Titulo del post" y "Contenido" y el nombre de la tabla "posts", o de comentarios. ¿Estoy en lo correcto? ó si me equivoco se un poco mas especifico de lo que quieres hacer Si estoy en lo correcto postea y te paso un ejemplo Es verdad lo que te dice tu amigo necesitas un id que es el numero del mensaje y si de ese mensaje tienes alguna respuesta ocuparias un campo identificador que obtendra el id del mensaje. En mi punto de vista tu tabla esta mal diseñada.
40
« en: Jueves 26 de Febrero de 2009, 09:10 »
Lo que yo te recomendaria es que usaras alguna api de windows que te realizara la busqueda de los archivos. En el siguiente link hay un ejemplo que hace algo como lo que tu necesitas pero esta en Visual Basic (w3).recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/8.htm Algunas soluciones que te puedo sugerir serian:- Que el codigo de esa pagina lo pases a PoweBuilder
- Comentas en tu post que la programacion principal ya la tienes :blink: (En si quiero pensar que tienes algunos procesos ya realizados para tratar la informacion que te regresaria la busqueda, si no es asi especifica que quieres decir con eso por favor)
si es asi como pienso puedes correr la aplicacion de Visual Basic desde PowerBuilder mandandole parametros de los archivos que quieres buscar y cuando el programa de Visual Basic termine puedes grabar los resultados en un archivo .txt para que lo leas en PowerBuilder :)
41
« en: Martes 17 de Febrero de 2009, 22:13 »
La duda que tengo consiste en que tengo una tabla de facturas que tiene datos generales como cliente, fecha y porsupuesto el numero de factura entre otros campos, pero al momento de grabar la factura quiero que el numero de factura se incremente automaticamente para que el usuario no lo capture para eso tengo otra tabla que se llama numfacturas que contiene un campo que tiene el numero de la factura que sigue, digamos cuando le doy grabar hago un select a la tabla numfacturas digamos que me arroja el 47 y a ese numero le sumo uno y el que sigue seria 48 al momento de grabar la factura la grabo con el 47 y en la tabla numfacturas se grabara el 48 que seria la factura siguiente creo que hasta aqui seria algo logico, pero no se si ocacione algun problema que dos o mas usuarios quisieran grabar una factura al mismo tiempo, digamos dos usuarios hacen clic en el boton para grabar y digamos al usuario 1 le da el 47 y seguidamente al usuario 2 tambien le da el 47 y despues el usuario 1 actualiza y quedaria el 48 en la tabla numfacturas y al usuario 2 tambien le quedaria el mismo numero de factura que seria el 47. ¿Me explico? ¿Como pudiera controlar los numeros de facturas o si tengo que ordenar el select y el update de una forma para que no ocasione ningun problema?, ya que el sistema tendra varios usuarios al mismo tiempo un dato extra por si es util utilizo php y mysql De antemano gracias por sus sugerencias y comentarios.
42
« en: Domingo 15 de Febrero de 2009, 02:29 »
Gracias por la ayuda a edo y a shadow_rev. Implemente las sintaxis que me proporcionaron y funciona bien en los dos exploradores.
43
« en: Sábado 14 de Febrero de 2009, 11:38 »
Me pueden asesosar o sugerir por favor para resolver el inconveniente del siguiente codigo. El problema consiste que en IE6 si funciona la validacion de los campos pero al hacer pruebas en Firefox3 no funciona. De antemano gracias.
<div id="formu"> <form method="post" action="contacto.php" name = "cont"> <div id="error"></div> <table> <tr> <td class="colortitulo"> Nombre:<br> <input type="text" name="nombre" maxlength="40" size="40"> </td> </tr> <tr> <td class="colortitulo"> Empresa:<br> <input type="text" name="empresa" maxlength="40" size="40"> </td> </tr> <tr> <td class="colortitulo"> Correo electronico:<br> <input type="text" name="email" maxlength="40" size="40"> </td> <td class="colortitulo"> Telefono:<br><input type="text" name="tel" maxlength="40" size="15"> </td> </tr> <tr> <td class="colortitulo" colspan="2"> Solicitud de información - Comentarios:<br> <textarea name="comentarios" cols="65" rows="4"></textarea> </td> </tr> <tr> <td colspan="2" style="text-align:center"> <input name="enviar" value="Enviar consulta" type="button" onClick="javascript: ejecutar();"> </td> </tr> </table> <script type="text/javascript"> function ejecutar() { var nombre = cont.elements.nombre; var empresa = cont.elements.empresa; var email = cont.elements.email; var tel = cont.elements.tel; var comentarios = cont.elements.comentarios; if (nombre.value == "") { nombre.focus(); error.innerHTML = "Por favor ingrese su nombre"; return; } if (empresa.value == "") { empresa.focus(); error.innerHTML = "Por favor ingrese el nombre de la empresa"; return; } if (email.value == "") { email.focus(); error.innerHTML = "Por favor ingrese el correo electronico"; return; } if (tel.value == "") { tel.focus(); error.innerHTML = "Por favor ingrese el telefono"; return; } if (comentarios.value == "") { comentarios.focus(); error.innerHTML = "Por favor ingrese los comentarios"; return; } cont.submit(); }
</script> </form>
</div>
|
|
|