Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - |Miguel|

#1
Hola,
¿Qué tal?

Os cuento, he contratado un VPS en Arsys, lleva SO CentOS 7 y trae instalado Plesk. Además de eso, he instalado por recomendación de conocidos WEBMIN (lo comento por si alguien conoce esta herramienta y es posible ayudarme por ese camino).

Mi problema es la configuración del VPS para que el correo funcione correctamente. En las pruebas que he hecho, puedo:

  • Recibir correo, desde casi cualquier dirección (interna al servidor, servicios 'públicos' como gmail/hotmail
  • Enviar correos a direcciones internas

Lo que me falla es:

  • No recibo correos de PayPal (por ahora, es el único proveedor del que no recibo)
  • No puedo enviar correos fuera: ni a gmail, ni hotmail, o direcciones corporativas

Lo que he hecho hasta ahora es,

En la gestión de mi dominio (pongámosle dominio.com):

  • En los servidores DNS por defecto de mi dominio, he modificado la IP de uno de ellos (había 2 con la misma IP) apuntando a la IP de mi VPS
  • En entradas DNS de mi dominio he cambiado las 2 únicas que había (de tipo A) para que apunten a la IP del VPS, las que había eran mi dominio con y sin www. He añadido uno tipo MX 10 para dominio.com apuntando a mail.dominio.com
  • Añadidos 2 de tipo A para mail.dominio.com y webmail.dominio.com apuntando ambos a la IP del VPS
  • Venía uno de tipo CNAME para control.dominio.com apuntando a pdc.servidoresdns.net, que no he tocado.


En el propio VPS:

  • Abiertos todos los puertos necesarios (o creo que no me falta ninguno): 21, 22, 25, 80, 110, 143, 443, 3306, 8443, 10000

A través de PLESK, en Configuración DNS:
   Host                           Tipo de registro   Valor
   ns2.dominio.com.           A   ip vps
   dominio.com.                   A   ip vps
   dominio.com.                   NS   ns2.dominio.com.
   ns1.dominio.com.           A   ip vps
   dominio.com.                   NS   ns1.dominio.com.
   webmail.dominio.com.   A   ip vps
   dominio.com.                   MX (10)   mail.dominio.com.
   dominio.com.                   TXT   v=spf1 +a +mx -all +a:localhost.localdomain
   ftp.dominio.com.           CNAME   dominio.com.
   ipv4.dominio.com.           A   ip vps
   mail.dominio.com.           A   ip vps
   www.dominio.com.           CNAME   dominio.com.

Gracias por vuestra ayuda!!

ah, y antes de que venga alguien preguntándose por qué cojo algo sin asistencia técnica si no sé configurarlo... muy sencillo, quería PHP 7 y en los hosting compartidos no he encontrando ningún hosting que me de esa opción... y los dedicados se van a precios prohibitivos.

Un saludo.
#2
Hola, muy buenas a todos!

Estoy implementado una app para Android en la cual voy a pedir fechas, pero el día y el mes no tienen por qué ser obligatorios, por lo cual quiero añadir guiones en las ruedas del DatePicker.

Para esto, estoy intentando extender la clase DatePicker, pero me encuentro con el problema de que al copiar el constructor de la clase original no me reconoce los id's y recursos internos.

Os copio unos fragmentos, quito los imports y mis variables para no rellenar demasiado:
Código (java) [Seleccionar]

public class DataPickerPersonalizado extends DatePicker{
    public DataPickerPersonalizado(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.date_picker, this, true);
    }
}

En la línea 6 del código dice que no encuentra R.

He probado a importar android.widget.R, a crearme el package android.widget en la raíz del proyecto y meter mi clase DataPickerPersonalizado ahí dentro y peinado Internet durante un par de días y lo más aproximado que he encontrado es otro tío con mi problema pero sin encontrar solución...

A ver si alguien me puede echar un cable, gracias de antemano!
#3
hola a todos ¿qué tal?

tengo un problemilla con el evento keyup de jquery: no es llamado si quiera... :S
este es mi formulario:
Código (html4strict) [Seleccionar]

<form method="post" id="search-form">
    Search for:
    <input id="searched-word" name="searched-word" />
    <input id="btnSearch" class="btnSearch" name="btnSearch" type="button" value="Search" class="btnSearch"
           onclick="javascript:buscar($('#searched-word').val());" />
</form>


y aquí el archivo js (resalto en negrita la parte que no me funciona):
Código (javascript) [Seleccionar]
$(document).ready(function() {   
    $('.menu li a').click(function() {
       
         /* Muestro una animación de carga */
        ($('.content')).addClass("loading");
        ($('.modal')).css('display', 'block');
       
        /* Cambio la pestaña activa */
        $('.menu li a').removeClass('active');
        $(this).addClass('active');
       
        /* Y cargo en el contenedor la página que se esté pìdiendo */
        $('#contenido').load($(this).attr('destino'));
       
        /* Quito la animación */
        ($('.modal')).css('display', 'none');
        $('.content').removeClass("loading");
       
        return false;
    });
   
    [b]$("#searched-word").keyup(function( event ) {
        alert( event );
    }).keydown(function( event ) {
        if ( event.which == 13 ) {
            event.preventDefault();
        }
    });[/b]

});


function buscar(palabra){
    if(palabra.length > 0){
        var parametros = {
            "searched-word" : $('#searched-word').val()
        };
        $.ajax({
            data:  parametros,
            url:   'search.php',
            type:  'post',
            beforeSend: function () {
                $("#resultado").html("Searching. Please, wait.");
            },
            success:  function (response) {
                $("#resultado").html(response);
            }
        });

    }
    else{
        alert('You must write something to search for!');
    }
}


Básicamente lo que quiero es controlar que si se pulsa enter no se haga submit del formulario para que no se recargue la página, porque estoy cargando los resultados por ajax en la misma página...
a ver si me podéis echar un cable.

he probado llamando al evento por id ($("#searched-word").keyup(function( event )) y por clase ($(".searched-word").keyup(function( event )) pero nada, ni si quiera se llama al evento.

por cierto, ya que estoy, el evento de arriba (el del click del menú) sólo me funciona si lo pongo como una clase, si lo pongo por id tp me funcionaba...

Gracias
#4
Hola,

Pues eso, que estoy buscando alguna forma de pasar un programa a portable pero todo el sofware que encuentro lo hace escaneando el sistema antes y después de la instalación del programa que quiera ''portabilizar'', pero ya lo tengo instalado y me da pereza hacerlo (y perder toda la configuración, etc), y además no sé si al desinstalar no me dejará algún rastro por ahí...

Gracias!
#5
Windows / Disco duro desaparece
19 Abril 2013, 17:17 PM
Hola buenas, ¿qué tal?

Bueno al lío... tengo 2 discos duros, en uno de ellos tengo Windows 7 Profesional y todas mis aplicaciones y en el otro guardo fotos, videos, etc...

El caso es que desde que me pasé de XP a Windows 7 el disco duro de datos me desaparece de forma aleatoria (creo). He formateado e instalado distintas versiones de W7, y nada sigue igual. He leído por internet que puede ser un problema de W7 o que el disco esté muriendo.

Cada vez que casca el disco, se crea una entrada en el Visor de Eventos, y esto es lo que me dice, pero yo no sé interpretarlo:
Código (xml) [Seleccionar]
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
   <Provider Name="Disk" />
   <EventID Qualifiers="49156">15</EventID>
   <Level>2</Level>
   <Task>0</Task>
   <Keywords>0x80000000000000</Keywords>
   <TimeCreated SystemTime="2013-04-19T15:05:02.489518000Z" />
   <EventRecordID>111193</EventRecordID>
   <Channel>System</Channel>
   <Computer>Miguel-PC</Computer>
   <Security />
  </System>
- <EventData>
  <Data>\Device\Harddisk1\DR1</Data>
  <Binary>0300800001000000000000000F0004C0040100009D0000C00000000000000000000000000000000011A4010000000000FFFFFFFF000000005800000A0001000000200A124C022000000000003C000000903ADC090000000068C5290880FAFFFF000000000000000060C2290880FAFFFF10804D0780FAFFFF204C600000000000280000604C2000000800000000000000000000000000000000000000000000000000000000000000</Binary>
  </EventData>
  </Event>


¿Pinta error físico del disco o se puede solucionar?
Gracias!
#6
Hola, buenas a todos

Resulta que tengo que hacer una limpieza del PC y he pensado en hacerme un Windows personalizado con RT Seven Lite, pero tengo el problema de que tengo muchísimas actualizaciones y drivers instalados...

Seguro que hay algún programa por ahí que me puede ayudar a sacarlo para meterlos mi Windows fácilmente, pero no lo conozco...

He buscado por el foro y sólo he visto este post pero, solo hablan de drivers.

un saludo y gracias por adelantado!
#7
PHP / file_exists() no devuelve nada...
17 Enero 2013, 16:02 PM
Buenas qué tal?

Pues básicamente eso, que estoy intentado usar esa función en un bucle para ver si existen una serie de archivos en mi servidor y esa función no devuelve nada, ni TRUE ni FALSE... se supone que si el archivo existe pero no tengo acceso a el debería devolver FALSE, pero nada...

Os dejo el código:
Código (php) [Seleccionar]

try {
$existe = file_exists($ruta_imagen);
clearstatcache();
} catch (Exception $e) {
$existe = 'Excepción capturada: '.$e;
}
echo($existe);


No imprime nada...

Gracias.
#8
Buenas, ¿qué tal?

Bueno, mi problema es que tengo un desplegable al que mediante css se le asigna un width de 175px, pero alguno de sus elementos ocupa un ancho mayor de eso y no se ve del todo bien porque el combo está hacia la parte derecha de la web.

El combo tiene que ir ahí, por temas de diseño... y además me piden que deje un pequeño espacio en blanco por la derecha y la izquierda de sus elementos.

he añadido a mi css esto:

Código (html4strict) [Seleccionar]
option {
margin-left:10px;
padding-right:10px;
}

y también:
Código (html4strict) [Seleccionar]
.miClase{
margin-left:10px;
padding-right:10px;
}


Y así intento usar la clase:
Código (html4strict) [Seleccionar]
<option class="miClase" value="http://www.tecnipublicaciones.com/aral/default.asp">Alimentación | No Alimentación | Distribución</option>
Cuando uso lo otro, es lo mismo pero sin la clase, así para todos los option...
y el único explorador que me lo aplica es firefox...

¿alguna idea?
Gracias.
#9
Buenas, ¿qué tal?

Bueno la cosa es que estoy montando una web y necesito un captcha pero no muestra ninguna imagen.

Código (asp) [Seleccionar]

<%@ Register Assembly="WebControlCaptcha" Namespace="WebControlCaptcha" TagPrefix="cc1" %>

[...]

<cc1:CaptchaControl ID="capValidacion" runat ="server" CaptchaBackgroundNoise="none"
               CaptchaLength="1" CaptchaHeight ="50" CaptchaWidth="200" CaptchaLineNoise="None"
               CaptchaMinTimeout="5" CaptchaMaxTimeout="240" Text="Introduce el código:"
               CaptchaChars="a"
           />


Y en mi webconfig:
Código (xml) [Seleccionar]
<add verb="GET" path="CaptchaImage.axd" type="WebControlCaptcha.CaptchaImageHandler, WebControlCaptcha" />

Con el archivo WebControlCaptcha.dll en mi carpeta bin....

Eso me genera imagenes en la ruta: http://localhost:52263/WEBHTML/CaptchaImage.aspx?guid=9983d38f-db66-423e-bc17-7fefd9c47c2b cuando el fichero CaptchaImage.aspx no existe en mi servidor...

¿Alguien ha trabajado con este tipo de control?
Gracias!
#10
PHP / Llamada a WebService mediante SOAP
21 Mayo 2012, 11:59 AM
Hola, buenas

Bueno mi problema es que tengo un WebServie programado en .net funcionando correctamente y no soy capaz de llamrlo desde PHP... Aunque en el título pone que la llamada es mediante SOAP, me da igual la forma de llamarlo, mientras funcione.

Cuando esto funcione bien, llamaré a un WebService que lo que devuelve es un array de objetos de una clase mia propia. ¿Se haría igual que con cadenas?

Aquí os dejo el PHP (el webservice devuelve un string):
Código (php) [Seleccionar]

<?php
try {
$soapClient = new SoapClient('http://localhost:62207/wbsCategorias.asmx?WSDL');
echo('<b>RESPUESTA DE LA CONEXIÓN</b><br />');
$result $soapClient->HelloWorld();
echo("'".$result."'");
} catch (Exception $e) {
echo('<strong>Excepción capturada:</strong> '.  $e->getMessage(). "\n");
}
?>


Y eso devuelve:
RESPUESTA DE LA CONEXIÓN

Catchable fatal error: Object of class stdClass could not be converted to string in X:\Fuentes\prestashop\modules\blockcategories\prob.php on line 7

No entiendo lo que pasa...
Gracias, un saludo.
#11
PHP / PHP se comenta solo...
18 Mayo 2012, 10:15 AM
Hola, buenos días a todos.

Estoy teniendo un pequeño problema... Estoy usando los módulos de PrestaShop, no sé si los conocéis, para hacer una tienda online. La forma que tiene por defecto para llenar una lista de categorías es esta:

<ul class="tree {if $isDhtml}dhtml{/if}">
{foreach from=$blockCategTree.children item=child name=blockCategTree}
{if $smarty.foreach.blockCategTree.last}
{include file="$branche_tpl_path" node=$child last='true'}
{else}
{include file="$branche_tpl_path" node=$child}
{/if}
{/foreach}
</ul>


Y la he cambiado por:

<ul class="tree {if $isDhtml}dhtml{/if}">
{include file="X:\Fuentes\prestashop\modules\blockcategories\prob.php"}
</ul>


Mi fichero prob.php (de momento en pruebas) es:
Código (php) [Seleccionar]

<?
echo("<li>Probando PHP</li>");
?>
<li>Probando HTML</li>


Y cuando ejecuto se me carga esto:
Cita de: Página
Probando PHP"); ?>
Probando HTML

Inspeccionando el código veo esto...
Código (html4strict) [Seleccionar]
<ul style="display: block;" class="tree dynamized">
<!--?
echo("<li-->Probando PHP");
?&gt;
<li class="last">Probando HTML</li>
</ul>


No entiendo porqué se me comenta el código él solito...

Gracias a todos por adelantado.
#12
Hola a todos,
Pues básicamente eso, que tengo unos datos en un DataSet sacados de un fichero XML cargados en un DataGrid, y tengo que pasarlos también a una gráfica con un chart, pero la gráfica se me queda en blanco.

Este es el load de la página:
Código (vbnet) [Seleccionar]

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Session.Item("usuario") Is Nothing Then
            Response.Redirect("error.aspx", True)
        ElseIf Session.Item("usuario").ToString.Trim.Equals(String.Empty) Then
            Response.Redirect("error.aspx", True)
        Else
            lblUsuario.Text = Session.Item("usuario") & " - Área Económica"

            dsEconomica.ReadXml(Server.MapPath("economica.xml"))

            grdEconomica.DataSource = dsEconomica.Tables(0).DefaultView
            grdEconomica.DataBind()

            crtGrafica.DataSource = dsEconomica.Tables(0).DefaultView
            crtGrafica.DataBind()           
        End If
    End Sub

dsEconomica: dataSet que carga los datos del XML
grdEconomica: dataGrid con los datos correctamente cargados
crtGrafica: chart que se queda en blanco...

Gracias!
#13
Hola a todos

Pues esa es mi duda, he estado dos días dándole vueltas y no lo saco... Tengo un DataTable cargado con datos de una consulta SQL y necesito rellenar un comboBox con los datos NO repetidos de una de las columnas por las que pregunto en la consulta.....

Más concretamente, tengo un dataTable con un listado de tiendas con sus datos y tengo que llenar un combo con las ciudades de las tiendas, pero sin q salgan ciudades repetidas....

Y tiene que ser usando DataBinding.

No sé por donde empezar...

Saludos, Gracias
#14
Hola a todos,
Bueno la cosa es la siguiente, me gustaría hacerme una pequeña aplicación que me sirva como biblioteca, que me permita pasar mis libros del PC al ebook, conversiones de formato, cambios en los metadatos... etc

Pero no tengo ni idea de por donde empezar... ¿alguno sabe algo de documentación para empezar?

Gracias!

PD: espero que esta duda no sea demasiado genérica para este foro (mi idea es hacerlo en .net, por eso lo pongo aquí)... un saludo
#15
Hola a todos.

Estoy teniendo un problemilla. Os comento. Tengo un dataGrid asociado a un dataTable, de forma que el dataTable 'hereda' (por decirlo de alguna forma) las restricciones que tiene la tabla SQL de la que cargo los datos.

Todo funciona bien, cuando violo la restricción de clave primaria o cualquier otra me salta el error, pero lo que no sé es cómo identificar la restricción que ha hecho saltar la excepción, para sacar un mensaje distinto en cada caso.

Este es mi evento, y lo que quiero es un mensaje diferente para cada restricción violada, espero haberme explicado.

Código (vbnet) [Seleccionar]

        MessageBox.Show("Errores en los datos. Revise lo siguiente por favor: " & vbCrLf & _
                         " -El valor de 'stor_id' no se puede repetir." & vbCrLf & _
                         " -Longitud de 'stor_id' de entre 1 y 4 caracteres." & vbCrLf & _
                         " -Longitud de 'state' de entre  1 y 2 caracteres." & vbCrLf & _
                         " -Longitud de 'city' de entre 1 y 19 caracteres.")
    End Sub


Saludos.
#16
Windows / Cosas raras en Windows 7
26 Abril 2012, 22:05 PM
Hola a todos, ¿qué tal?

Bueno, pues eso os cuento lo que me pasa. Cada vez que enciendo el ordenador, hay algún dispositivo que tiene que instalar drivers (teclado, ratón y tarjeta de audio son los más habituales, de hecho esos 3 casi siempre me salen...).

También cada vez funciona más lento, sobre todo tarda mucho al encenderse y una vez encendido está lento unos minutos hasta que ''calienta motores''...

Además de eso, lleva 3 días que SIEMPRE cuando apago se tienen que instalar 5 actualizaciones... si reinicio 10 veces seguidas, sigue con las 5 actualizaciones...

No creo que sea virus (aunque puede ser, quien sabe) por que uso el mismo software en el portátil y ese funciona bien. Además ya he formateado varias veces con distintos anti virus y  probando a bajarme otra vez todo mi software y nada, todo igual...

¿Puede ser que mi Windows (no es original) esté corrupto y origine este mal funcionamiento? ¿O qué puede ser, a parte de virus...?
#17
Hola a todos.

Tengo dos códigos que compartir, uno el que he usado siempre y otro que vi ayer. Los dos son para iniciar nuestras aplicaciones desde un método sub main, en lugar de que se lance directamente el formulario principal.

Código (vbnet) [Seleccionar]
Public Class principal
    Public Shared Sub main()
        Application.EnableVisualStyles()

        System.Threading.Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo("es-ES")

        Dim formulario As New frmMenu()
        Application.Run(formulario)

        Application.ExitThread()
        Application.Exit()
    End Sub
End Class


Y la mía:

Código (vbnet) [Seleccionar]
Public Class principal
    Public Shared Sub main()
        Dim formulario As New frmMenu()
        formulario.show()
    End Sub
End Class


La segunda es la que siempre he usado... no sé que ventajas puede tener usar el primer código pero supongo que habrá alguna razón por la que los profesionales lo utilizan, a ver si alguien me puede aclarar esa duda.

Saludos!
#18
Bueno... pues eso..

Tengo unos datos en un data table y quiero visualizarlos en un DataGridView. Lo que veo por todos lados es esto:
Código (vbnet) [Seleccionar]

grdTiendas.DataSource = datos.DefaultView

Pero lo que hace es si tengo 5 filas en el datatable, me pinta 5 filas pero vacías (aunque con el debugger veo que hay datos en el datatable...)

No sé por dónde tirar...
Saludos.
gracias
#19
Hola, buenas.

Tengo dos dudas: la primera es si es mejor usar un datatable o un datareader para rellenar un datagrid...

Y la segunda es cómo se hace.
Este es mi formulario. pero no encuentro la forma de meter en mi datagrid los datos que he recuperado de la consulta...

Código (vbnet) [Seleccionar]
Public Class frmAutores
    Sub New()
        InitializeComponent()
        Dim conexion As String = "server=server; user id=user; Password=pass; Initial Catalog=library;"
        Dim cnn As New Data.SqlClient.SqlConnection(conexion)
        Dim cmd As New Data.SqlClient.SqlCommand("select au_id, au_fname, au_lname, city from authors", cnn)
        'Dim dt As New Data.DataTable
        Dim dRead As Data.SqlClient.SqlDataReader = Nothing
        Try
            cnn.Open()
            dRead = cmd.ExecuteReader
            While dRead.Read

            End While
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            If Not dRead Is Nothing Then
                dRead.Close()
            End If
            cnn.Close()
            cnn.Dispose()
            cmd.Dispose()
        End Try
    End Sub
End Class


Gracias, saludos
#20
Multimedia / .vob a algún formato común ?
17 Abril 2012, 19:29 PM
Hola, ¿qué tal?

Bueno,os comento por encima... tuve que hacer un trabajo para la uni haciendo una grabación de vídeo y mi cámara graba bastante raro... os pongo una captura de lo que ha hecho:


Cuando meto el CD, automáticamente me salta una pantalla de presentación en la que puedo elegir entre todos los vídeos que he grabado (como solo grabé uno, me sale uno).

Supongo que el vídeo bueno es el penúltimo archivo porque es el que más ocupa, pero cuando lo abro con cualquier cosa q no sea con VLC se ven solo los 8 primeros segundos. Con el VLC se ve bien, pero donde pone el tiempo no lo coge bien, y además a saber qué reproductor tiene el profesor, o si lo mirará en casa, etc...

¿ayuda para pasarlo a avi, mpeg, o lo que sea que seguro que se pueda visualizar sin problemas? GRACIAS
#21
Hola a todos, ¿qué tal?

Bueno, os cuento. Tengo un formulario que tiene una lista de clientes en una ListBox que contiene items de una clase mía que he llamado Cliente.

Tengo una función buscar que busca clientes repetidos para actualizar o insertar uno nuevo según el caso. Este es el framento de código:

Código (vbnet) [Seleccionar]
Public Sub actualizar()
        If validar() Then
            Dim posicion As Integer = 0
            Dim nombre As String = txtNombre.Text
            Dim apellidos As String = txtApellidos.Text
            Dim mandarInformacion As Boolean = chkMandarInformacion.CheckState
            Dim analizarRiesgo As Boolean = chkAnalizarRiesgo.CheckState
            Dim direccion As String = txtDireccion.Text
            Dim codigoPostal As String = txtCodigoPostal.Text
            Dim persona As Cliente = New Cliente(nombre, apellidos, mandarInformacion, analizarRiesgo, direccion, codigoPostal)

            If Not buscarCliente(persona, posicion) Then
                lstListaDeClientes.Items.Add(persona)
                lstListaDeClientes.SelectedIndex = lstListaDeClientes.Items.Count - 1
            Else
                lstListaDeClientes.Items.Item(posicion) = persona
            End If
        End If
    End Sub

    Public Function buscarCliente(ByVal persona As Cliente, ByRef i As Integer) As Boolean
        Dim ok As Boolean = False

        For Each cli As Cliente In lstListaDeClientes.Items
            If persona.apellidos.Trim.Equals(cli.apellidos.Trim) AndAlso persona.nombre.Trim.Equals(cli.nombre.Trim) Then
                ok = True
                lstListaDeClientes.SelectedItem = cli
                Exit For
            End If
            i += 1
        Next

        'For i = 0 To lstListaDeClientes.Items.Count - 1
        '    If lstListaDeClientes.Items.Count > 0 Then
        '        lstListaDeClientes.SelectedIndex = i
        '    End If
        '    If persona.apellidos.Trim.Equals(lstListaDeClientes.Items.Item(i).apellidos.Trim) _
        '            AndAlso persona.nombre.Trim.Equals(lstListaDeClientes.Items.Item(i).nombre.Trim) Then
        '        ok = True
        '        Exit For
        '    End If
        'Next
        Return (ok)
    End Function


pero al que manda se le ha puesto entre ceja y ceja 1º que use for each en lugar del for y después que me cargue la i... y no sé hacerlo sin ella...

¿ayuda? Gracias.
#22
Buenas a todos.

Os cuento un poco lo que estoy haciendo, porque es largo de huevos... xD

Tengo una web en la q te puedes registrar. Una vez registrado te logeas y todo muy bien... la url me saca algo de este tipo: ppal/principal.php?u=miguelangelss4@gmail.com.

Bueno, principal.php es una especie de marco, tiene una tabla con una fila superior que uso de menú, la fila central es una celda grande que ocupa toda la pantalla donde voy cargando lo que se selecciona en el menú y la fila de abajo es un simple pie de página.

Bueno, cuando uso esto:
Código (php) [Seleccionar]

$_GET['u']

Desde el archivo principal.php funciona perfecto. El problema es que lo necesito usar desde dentro de las páginas que se cargan en la celda central... y ahí no funciona. He probado a guardarlo en una variable en  principal.php pero no la reconoce, la "olvida", por así decir...

¿Alguna sugerencia? Gracias a todos.
#23
Pues eso.

He mirado por le internete y lo que he visto me da errores....
Código (php) [Seleccionar]

$sql="create table usuario(mail varchar2(30), password varchar2(30), constraint pk_usuario primary key (mail))";
mysql_query($sql) or die(mysql_error());


Cita de: server
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'varchar2(30), password varchar2(30), constraint pk_usuario primary key (mail))' at line 1

Gracias, saludos!


EDITO: versión de mysql: 5.0.91
#24
PHP / script falla por un echo...¬¬
30 Marzo 2012, 12:10 PM
Hola a todos.

Bueno, tengo el siguiente código:
Código (php) [Seleccionar]

<?php
//$query = "select count(*) from usuario where mail='".$_POST["logUsuario"]."' and pass ='".$_POST["logPass"]."';";
$query 1;
echo("<p align=\"center\">");
//echo("<input name='logUsuario' type='text' disabled readonly='true' value='".$_POST["logUsuario"]."' />");
//echo("<input name='logPass' type='text' disabled readonly='true' value='".$_POST["logPass"]."' />");
if($query == 1){
header("Location: http://g16.colegiosteide.com/ppal/principal.php");
}
else{
//$query = "select count(*) from usuario where mail='".$_POST["logUsuario"]."';";
if($query == 0){
echo("E-mail no existente. <a href='http://g16.colegiosteide.com/inicio.html'>Volver al inicio<a>.");
}
else{
echo("Contrase&ntilde;a incorrecta. <a href='http://g16.colegiosteide.com/inicio.html'>Volver al inicio<a>.");
}
echo("Mail o contrase&ntilde;a no v&aacute;lida. <a href='http://g16.colegiosteide.com/inicio.html'>Volver al inicio<a>.");
}
echo("</p>");
?>


Y casca. dice: Warning: Cannot modify header information - headers already sent by ...

pero si comento la línea de echo("<p align=\"center\">"); funciona bien. No entiendo porqué, ¿alguna idea?

Gracias.
#25
Bueno, pues eso, básicamente, xD

Que llevo un par de días intentando hacer una cosa... tengo una tabla (más o menos) así:
___________________________
|      |       |           |         |        |
___________________________
|                                              |
|                                              |
|                                              |
|                                              |
|                                              |
___________________________
|                                              |
|                                              |
___________________________

Donde las celdas de arriba son un menú, la del centro contiene un iframe para cargar lo que quiero ver y lo de abajo es un pie de página sin más.

La función que uso para cargar lo que quiero en el iframe es esta:
Código (javascript) [Seleccionar]

function carga(pagina){
$("#contenido").load(pagina);
}


Y la llamada (he probado esas dos formas para hacer la llamada):
Código (html4strict) [Seleccionar]

<table id="tab" width="100%" align="center" border="1">
  <tr>    
       <td onclick="carga('news.html');" style="cursor: pointer">
        <img src="../img/home.png" alt="Home" />
       </td>
       <td style="cursor:pointer">
        <a href="javascript:carga('perfil');">Mi perfil</a>
    </td>
  </tr>
</table>


Pero no hace nada... ¿alguien sabe dónde he metido la pata?

El código del irame es:
Código (html4strict) [Seleccionar]

<iframe frameborder="0" id="contenido" width="100%" scrolling="auto">
                           
           </iframe>
#26
Hola, buenas a todos.

Quería saber si hay alguna forma sencilla de centrar elementos en la vertical de la pantalla, y prefiero que sea mediante CSS por que cada vez más los exploradores deshabilitan javascript (lo cual es una putada XD).

Llevo tres días buscando en Internet y todas las soluciones que encuentro son antiguas (la más actualizada era un post de 2006...) y desfasadas que ya no funcionan.

Supongo que se entiende bien lo que planteo, pero por si acaso... quiero plantar una tabla en el centro de la pantalla, independientemente de la resolución del cliente. Es más, si puede ser que al reajustar el tamaño de la pantalla se reorganice para que quede igual mejor (pero eso es secundario).

He visto cosas como llenar la página de ifs y programar distintas versiones de la web y redireccionar, pero eso lo veo cutre y estoy seguro de que hay una solución mejor...

Gracias a todos!

Ah casi se me olvida... el alto de la tabla tampoco soy capaz de controlarlo: mide lo que ocupe su contenido, y también me gustaría poder hacerlo parametrizable.

Saludos.
#27
Bueno, la pregunta es justo esa.
Tengo una aplicación que tira de base de datos (en access). Ya he construido mi proyecto. He verificado que dentro del jar que se ha generado va mi archivo de base de datos.

Ahora bien, mi problema está en ¿cómo hago desde el código para conectarme a esa bbdd? es decir, si la dejo fuera sé cómo poner la ruta y tal, pero así no tengo ni idea.

Gracias!
#28
Buenas a todos.

Pues eso, que no sé cómo cerrar un JFrame desde un método....

La historia es que tengo un JFrame con unos cuantos botones. Al pulsarlos, llamo a una función estática y necesito que ese método me cierre el JFrame, con un dispose().

this.dispose() no ha funcionado, y pasar como parámetro al método el JFrame haciendo esto en la llamada tp:
Código (java) [Seleccionar]
metodo((JFrame)getParent()); //esto me da excepción de nullpointer al hacer dispose

Gracias!
#29
Hola, buenas a todos.

A ver si me podéis echar un cable con esto... vamos a ver, tengo un JTable que quiero llenar con los datos obtenidos de un ResultSet. Hasta ahí todo iba perfecto, pero se me ha ocurrido la genial idea (o no tan genial) de intentar usar un método que me rellene cualquier JTable con cualquier ResultSet... (independientemente de la estructura de la tabla/s que formen el ResultSet)...

Y el resultado es que tengo una Tabla en la Base de Datos con 2 columnas y 3 datos (id y nombre) y lo que he hecho me saca el último dato de la tabla 3 veces.

Aquí os dejo el código de los métodos que uso para llenar el JTable:

Código (java) [Seleccionar]

//**************************************************************************
   static void rellenaJTable(JTable tabla, ResultSet res, String entidad){
       temp = (DefaultTableModel) tabla.getModel(); //Más arriba defino temp asi: static DefaultTableModel temp;
       try{
           res.beforeFirst();
           while(res.next()){                
               Object nuevo[] = rellenaFilaJTable(entidad);
               temp.addRow(nuevo);
           }
       }catch(Exception e){
           excepcion(e, "Error 5. No se ha podido cargar Jtable "+tabla.getName());
       }        
   }
   //**************************************************************************
   static Object[] rellenaFilaJTable(String tabla){
       seleccionaTabla(tabla); //método que carga el ResultSet rs con todos los datos de la tabla que le pase como parámetro
       int longitud = 0;
       try{
           ResultSetMetaData rsmd = rs.getMetaData();
           longitud = rsmd.getColumnCount();
       }catch(Exception e){
           excepcion(e, "Error 6. No se ha podido obtener el número de columnas de '"+tabla+"'.");
       }
       Object[] res = new Object[longitud];
       try{
           while(rs.next()){
               for(int i=1; i<=longitud; i++){
                   try{
                       res[i-1] = rs.getObject(i);
                   }catch(Exception e){
                       excepcion(e, "Error 7. No se han podido rellenar las columnas de '"+tabla+"'; columna "+i+".");
                   }
               }
           }
       }catch(Exception e){excepcion(e);}
       return res;
   }


Gracias!
#30
CitarPiensan construir un ascensor de 36.000 km. que nos lleve al espacio en 2050


  • El anuncio lo ha realizado una empresa japonesa y prevén que el viaje demorará una semana
Expertos hablan de la viabilidad del proyecto y ya imaginan un costoso turismo espacial[/li]
[/list]

La idea de construir un ascensor que conecte la Tierra con el espacio no es novedosa. Es una idea en mente desde hace más de cien años. Sin embargo, los expertos creen que con la tecnología actual es posible cristalizar ese sueño y prevén que en 40 años podría estar en marcha.

De concretarse, será un avance notable para el transporte espacial. Ya no se necesitarán los cohetes para llegar a las órbitas terrestres transportar con material o astronautas. Pero algunos creen que esta tecnología no sólo afectará a los astronautas y hablan de la creación de un "turismo espacial" que servirá para recuperar parte de la inversión que se realice en este proyecto.

Según la empresa japonesa que ha realizado el anuncio, la estructura tendrá 36.000 kilómetros de alto, a partir de la unión de 100.000 kilómetros de nanotubos de carbono. Este material es 20 veces más resistente que el acero y es una pieza fundamental para considerar posible esta idea. El ascensor alcanzará una velocidad de 200 kilómetros por hora, por lo que se tardará una semana en llegar al espacio.

Luis Ruiz de Gopegui, licenciado en Ciencias Físicas y exresponsable de las actividades de la NASA en España, ha dicho a Teinteresa.es que se trata "de una idea muy antigua" y ha indicado que los científicos aeronáuticos "creen que es viable, pero extraordinariamente costosa".

El experto ha señalado que con la tecnología actual es "perfectamente posible" llevar a cabo esta iniciativa debido a que la imponente estructura estará sostenida "por acción de la gravedad".

Tras reiterar que el costo que supone semejante obra es la principal barrera para avanzar, Ruíz de Gopegui señaló: "Es posible que los japoneses estén pensando en cobrar mucho para que la gente viaje a una estación espacial.  Eso permitiría recuperar algo de la inversión".

"Un avance tremendo"
El exresponsable de las actividades de la NASA en el país ha manifestado que este ascensor significaría "un avance tremendo". Permitiría que "cargas no muy pesadas" se pongan en órbita con el ascensor, "sin tener que lanzar un cohete espacial, lo que implica una enorme reducción de costos".

Esta tecnología también servirá para transportar astronautas, lo que hace suponer que para 2050 ya no será necesario un riguroso entrenamiento para llegar al espacio. "Los astronautas ya no son los hombres de hierro que eran hace años. Pero con este ascensor ya no hará falta prácticamente ningún entrenamiento", ha puntualizado Ruíz de Gopegui.

El anuncio
La japonesa Obayashi es una de las empresas que en 2008 respondió a una petición del gobierno de ese país para comenzar a trabajar en la construcción del ascensor espacial. En las últimas horas, desde la firma, han comunicado que en 2050  el elevador podría comenzar a operar.

La directora del proyecto, Satomi Katsuyama, ha explicado que el ascensor se desplazará sobre una "cuerda" construida con casi 100 mil kilómetros de nanotubos de carbono y funcionará por el propio movimiento de la Tierra. Si bien Katsuyama ha reconocido que aún quedan algunas trabas por superar, se ha mostrado confiada en que podrán superarse para que pueda comenzar la construcción. ¿Se imaginan ir en ascensor al espacio? En 2050 veremos.

FUENTE: http://www.teinteresa.es/increible/Ascensor-espacio-2050_0_653935739.html
#31
Pues esa es mi pregunta.

Básicamente, si tengo un proyecto al que le adjunto una librería, ¿no hay forma de llamar a los métodos de la librería directamente por su nombre, en lugar de paquete.clase.nombre?

Me parece una forma un poco incómoda de trabajar la verdad...

Gracias, saludos!
#32
Pues básicamente eso, que he instalado esta mañana este programita y cuando voy a Configuración/PHP MyAdmin me sale la siguiente página:
Citar
Acceso prohibido!

Usted no tiene permiso para acceder al directorio solicitado. No existe un documento índice, o el directorio está protegido contra lectura.

Por favor contacte con el webmaster en caso de que usted crea que existe un error en el servidor.

Error 403

127.0.0.1
02/23/12 15:49:17
Apache/2.2.21 (Win32) PHP/5.3.9

Supongo que habrá que tocar algún archivo de configuración o algo, pero no sé dónde más mirar...

Ayuda por favor!
#33
Cita de: 20 minutos

Anonymous desmiente que tenga intención de producir un "apagón mundial" de Internet




  • El grupo hacktivista lo ha desmentido a través de su cuenta de Twitter oficial.
  • Anonymous respondió así a las preguntas de los internautas sobre un rumor que hablaba de un ataque a los principales servidores de Internet el 31 de marzo.
  • Los ciberactivistas también aprovecharon para aclarar unas acusaciones del director de la Agencia Nacional de Seguridad de Estados Unidos.

El grupo hacktivista Anonymous ha negado que estén preparando un ataque que trate de causar un apagón en Internet, en una operación que estaba siendo conocida como Global BlackOut. Anonymous rechazó un posible ataque mundial en la Red. Según publicaron en su cuenta de Twitter oficial, AnonOps, el grupo de ciberactivistas señaló que esta operación, que estaba siendo difundida a través de Pastebin, era falsa.

Ante el constante flujo de preguntas de la gente por este supuesto apagón de Internet mundial, el grupo Anonymous decidió desmentirlo oficialmente, "GlobalBlackOut es otra falsa operación. No hay intención de Anonymous de 'cortar' Internet, por favor dejen de preguntar".

GlobalBlackOut es otra falsa operación. No hay intención de Anonymous de 'cortar' Internet

El falso rumor partió de la página web Pastebin, se trata de un sitio web que había sido utilizado por este colectivo de hackers para lanzar amenazas o reconocer ataques. El supuesto apagón, según publicaron algunos medios de comunicación, se iba a realizar atacando a 13 servidores clave, duraría unas horas o unos días el próximo 31 de marzo.

Los ciberactivistas también aprovecharon para aclarar unas acusaciones del director de la Agencia Nacional de Seguridad de EE UU, Keith Alexander, quien expresó su preocupación por los ciberataques de Anonymous, de acuerdo con The Wall Street Journal.

Según declaró Alexander, este grupo de hackers pueden provocar apagones masivos por medio de ataques y dañar o deshabilitar la red, en reuniones privadas en la Casa Blanca. Estas declaraciones fueron totalmente negadas por Anonymous que declararon a través de un tuit que esto era "Ridículo! ¿por qué Anonymous cortaría el suministro eléctrico? no tiene sentido...".

Sin embargo, Anonymous utiliza su cuenta oficial de Twitter para informar de sus últimos ataques en la red. En España, el ataque realizado durante la gala de los Premios Goya fue oficialmente reconocida por los enmascarados.

No es la primera vez que a este grupo se le atribuyen ataques que ellos mismos no reconocen oficialmente y tienen que desmentirlo publicamente. El año pasado se le atribuyó un ataque contra la red social Facebook, sin embargo Anonymous rechazó este ataque alegando que sería muy tonto por su parte realizar tal cosa teniendo en cuenta que utilizan esta red social para difundir sus actividades.

FUENTE: http://www.20minutos.es/noticia/1316413/0/anonymous/desmiente/apagon/
#34
Hola a todos, ¿qué tal?

Bueno, llevo un par de días como un loco y no doy con el fallo en mi programa... os cuento un poco de qué va la historia. Tengo una BBDD de empleados y departamentos con una relación 1:N donde cada empleado tiene un solo departamento y los departamentos de 0 a N empleados... Pues bien, estoy programando en Java un aplicación sencilla que permita añadir, eliminar y modificar datos de cualquier empleado/departamento.

Lo tengo todo acabado, excepto un JFrame en el que arriba tengo un JTextField con el nombre de un departamento y debajo de éste un JTable en el que se muestran los datos de todos los empleados de ese departamento. Hay también botones para pasar al siguiente, anterior, primer y último departamento, con sus eventos correspondientes que vacían y rellenan de nuevo la tabla con los empleados correspondientes al departamento activo.

Y por último tengo un botón que me permitiría borrar de la BBDD el empleado que esté seleccionado. Este es el código:

Código (java) [Seleccionar]

private void jtblEmpleMouseClicked(java.awt.event.MouseEvent evt) {
       System.out.println("Entro en evento");
       int fila=jtblEmple.getSelectedRow();
       System.out.println("Fila seleccionada: "+fila);
       if(fila >= 0){
           System.out.println("entro en if");
           try{
               System.out.println("entro en el try");
               for(int i=0; i<fila+1; i++){
                   System.out.println("Empleado: '"+rsE.getString("APELLIDO")+"'. Vuelta número: "+i);
                   rsE.next();                    
               }
               System.out.println("Voy a borrar");
               //rsE.deleteRow(); línea comentada para no borrar registros en pruebas y quedarme con 0 empleados... xD
               //(aún así, esta línea me da unas veces la excepción de 'No data found' y otras la de 'estado del cursor no válido').
               System.out.println("He borrado.");
           }catch(Exception e){JOptionPane.showConfirmDialog(null, e, "Error de borrado", JOptionPane.PLAIN_MESSAGE);}
           finally{
               System.out.println("llego al finally");
               limpiaTabla();
               rellenaTabla();
               System.out.println("salgo del finally");
           }
       }
       else
           JOptionPane.showConfirmDialog(null, "Seleccione un departamento para eliminarlo.", "Error de borrado", JOptionPane.PLAIN_MESSAGE);
   }


Donde rsE es un ResultSet con todos los empleados del departamento activo y rsD es otro ResultSet con todos los departamentos. Todos esos println sobran, los he usado para ver qué hace la aplicación y esta me devuelve lo siguiente:

Cita de: NetBeans
run:
Entro en evento
Fila seleccionada: 1
entro en if
entro en el try
// aquí me salta la Excepción e
llego al finally
salgo del finally
BUILD SUCCESSFUL (total time: 10 seconds)

Este código funcionaba perfectamente para borrar departamentos... Y así llevo un par de días. Hoy he pedido ayuda al profesor y ha estado una hora  mirando y tocando sin sacar absolutamente nada, lo cual me hace pensar que seguramente será algún fallo bastante estúpido...

Gracias a todos.
#35
Hola a todos de nuevo.
Bueno, el título lo dice todo: no soy capaz de limpiar los datos que he cargado en un JTable a través de una consulta a BBDD. Este es mi método para vaciar la dichosa tablita:
Código (java) [Seleccionar]

//parte de variables
   static ResultSet rs;
   static Statement st;
   static Connection conn;
   DefaultTableModel temp;

Código (java) [Seleccionar]
//parte de métodos
void limpiaTabla(){
       try{
           temp = (DefaultTableModel) jtablaDepart.getModel();
           int a =temp.getRowCount()-1;
           for(int i=0; i<a; i++)
               temp.removeRow(i);
       }catch(Exception e){
           System.out.println(e);
       }
   }


Java me devuelve la siguiente excepción: java.lang.ArrayIndexOutOfBoundsException: 2 >= 2

La tabla tiene 3 columnas, y (en este momento) 4 filas. Cuando llamo a limpiaTabla, me borra el primer y tercer elemento de la tabla y salta esa excepción ...
#36
Java / ¿Cómo creo un .exe con NetBeans?
16 Febrero 2012, 15:53 PM
Hola a todos.

Bueno la cosa es que tengo una aplicación con acceso a un archivo de base de datos de access e interfaz gráfica y me gustaría saber cómo puedo generar un archivo ejecutable .exe (y recalco el exe) de tal forma que con ese único archivo mi aplicación sea ejecutable en cualquier máquina y pueda trabajar sobre esa base de datos (evidentemente, con los datos que tenga cuando compile).

No me vale la opción build ni la clean & build de NB ya que lo que me genera es un .jar y hay equipos que no son capaces de interpretarlos.

Gracias a todos, Saludos grandes y cordiales  ;D
#37
Java / ¿No se encuentra origen de datos?
14 Febrero 2012, 18:17 PM
Hola, buenas... veamos estoy intentando actualizar una base de datos de Access desde Java con el siguiente código:

Código (java) [Seleccionar]

String nom=jtxtNombre.getText(), ape1=jtxtApellido1.getText(), ape2=jtxtApellido2.getText(), id=jtxtNum.getText();
        String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
        String miDB = "jdbc:odbc:propietarios";
        try {
            Class.forName(DRIVER);
            Connection conexion =  DriverManager.getConnection(miDB);
            PreparedStatement select = conexion.prepareStatement("SELECT * FROM Propietario where dni='"+id+"';");
            ResultSet rs = select.executeQuery();
            select=conexion.prepareStatement("update propietario set nombre='"+nom+"', apellido1='"+ape1+"', apellido2='"+ape2+"' where dni='"+id+"';");
            select.executeUpdate();
            rs.close();
            select.close();
            conexion.close();
        }
        catch (Exception e) {
            System.out.println("Error: " + e);
        }


Y me da el siguiente error (excepción, en realidad):
Cita de: javaError: java.sql.SQLException: [Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especific? ning?n controlador predeterminado

No entiendo qué le pasa. He definido mi archivo de base de datos desde Herramientas administrativas/Orígenes de datos ODBC. Adjunto captura de la configuración...

Saludos, y gracias!
#38
Pues eso... tengo q redimensionar un jPanel... y no soy capaz.

Esto es lo que me hace:

Y esto es lo que debería hacer (para esta imagen he redimensionado 'a mano', una vez la calculadora estaba en ejecución...):

y he aquí la función que he usado (cada línea es un intento fallido)... (mainPanel es de tipo jPanel...):

Código (java) [Seleccionar]

void redimensionar(int x, int y){
       mainPanel.setBounds(mainPanel.getX(), mainPanel.getY(), x, y);
       mainPanel.getParent().repaint(mainPanel.getX(), mainPanel.getY(), x, y);
       mainPanel.getParent().setSize(x, y);
   }
#39
Pues eso... que cuando intento usar esa clase me da un error, y como una imagen vale más que mil palabras...

No entiendo qué es lo que puede pasar... a ver si alguno me echa un cable, a poder ser no al cuello ;P

Os dejo todo el código por si queréis echar un vistazo:

Código (java) [Seleccionar]
/*
* Haz un programa que guarde en un archivo de texto de acceso aleatorio
* una biblioteca de canciones. Los datos de cada elemento serán:
* Título de la canción, autor, año, álbum.
*/
package ejercicio060;

import java.io.*;
import java.util.*;
class noRango extends Exception{}
public class Ejercicio060 {

   public static void main(String[] args) throws FileNotFoundException, IOException {
       String titulo="", autor="", album="", año="";
       Scanner s=new Scanner(System.in);
       ObjetOutputStream oos = new ObjetOutputStream(new FileOutputStream("biblioteca.txt"));
       RandomAccessFile archivo = new RandomAccessFile("biblioteca.txt", "rw");
       int inserciones=0;
       boolean correcto=false;
       
       archivo.seek(archivo.length());
       
       while(inserciones<1){
           System.out.print("¿Cuántas canciones vas a guardar? ");
           try {
               inserciones=s.nextInt();
               if(inserciones<1)
                   System.out.println("Escribe un valor mayor de 0.");
           }
           catch (InputMismatchException e){
               System.out.println("Escribe un valor numérico válido.");
               s.nextLine();
           }
       }
       
       for(int i=0; i<inserciones; i++){
           while(!correcto){
               try{
                   System.out.print("Introduce el título de la canción: ");
                   titulo=s.nextLine();
                   if(titulo.length()!=0)
                       correcto=true;
               }
               catch(Exception e){
                   System.out.println("Introduce un título válido.");
               }
           }
           correcto=false;
           while(!correcto){
               try{
                   System.out.print("Introduce el autor de la canción: ");
                   autor=s.nextLine();
                   if(autor.length()!=0)
                       correcto=true;
               }
               catch(Exception e){
                   System.out.println("Introduce un autor válido.");
               }
           }
           correcto=false;
           while(!correcto){
               try{
                   System.out.print("Introduce el álbum de la canción: ");
                   album=s.nextLine();
                   if(album.length()!=0)
                       correcto=true;
               }
               catch(Exception e){
                   System.out.println("Introduce un álbum válido.");
               }
           }
           correcto=false;
           while(!correcto){
               try{
                   System.out.print("Introduce el año de la canción: ");
                   año=s.nextLine();
                   if(Integer.parseInt(año)>2012)
                       throw new noRango();
                   correcto=true;
               }
               catch(noRango nR){
                   System.out.println("¿Canción del futuro? Escribe un año válido...");
               }
               catch(Exception e){
                   System.out.println("Introduce un año válido.");
               }
           }
           correcto=false;
           
           Cancion canc=new Cancion(titulo, autor, album, Integer.parseInt(año));
           //pd, aqui faltan bastantes cosas... y la clase Cancion está en otro archivo.
       }
       archivo.close();
   }
}
#40
Java / Problema con excepciones.
5 Febrero 2012, 19:29 PM
Hola, muy buenas a todos.
Tengo un problema... no sé porqué no me funciona este ejercicio... al compilar, llego hasta meter el número de elementos del array y ahí ya se queda sin hacer nada, ni da errores, ni sigue pidiendo datos (como debería) ni nada...

Os dejo el código a ver si veis algo. Estoy usando NetBeans 7.0.1
Código (java) [Seleccionar]
/*
* Haz un programa que sume los elementos double de un array dinámico que le
* vamos pasando. Saltarán las excepciones oportunas cuando le pasemos números
* en formato inadecuado.
*/
package ejercicio050;
import java.util.Scanner;

public class Ejercicio050 {

   public static void main(String[] args) {
       String longitud;
       double suma=0;
       Scanner s=new Scanner(System.in);
       System.out.print("¿Cuántos elementos quieres? ");
       try{
           longitud=s.nextLine();
       }
       catch(Exception e){
           do{
               System.out.println("Longitud no válida. Introduzca otra.");
               longitud=s.nextLine();
           }while(!isNumeric(longitud));
       }
       String array[]=new String[Integer.parseInt(longitud)];
       
       for(int i=0; i<Integer.parseInt(longitud); i++){
           System.out.print("Introduce el valor de la posición "+(i+1)+": ");
           array[i]=s.nextLine();
       }
       
       for(int i=0; i<Integer.parseInt(longitud); i++){
           try{
               suma+=Double.parseDouble(array[i]);
           }
           catch(Exception e){
               System.out.println("El elemento "+(i+1)+" no es numérico.");
           }
       }
       System.out.println("La suma de los elementos es: "+suma);
   }
   
   private static boolean isNumeric(String cadena){
try {
Double.parseDouble(cadena);
return true;
} catch (NumberFormatException nfe){
return false;
}
}
}


Gracias a todos.

EDITO: He quitado el s.next(); de las líneas 17,22 y 29 y parece que va bien. lo puse porque a veces da problemas el retorno de carro al leer varias cadenas, voy a hacer unas pruebas a ver que pasa.

EDITO 2: perfecto. Un ejemplo de la ejecución...
run:
¿Cuántos elementos quieres? 5
Introduce el valor de la posición 1: 5
Introduce el valor de la posición 2: 6
Introduce el valor de la posición 3: p
Introduce el valor de la posición 4: 7
Introduce el valor de la posición 5: l
El elemento 3 no es numérico (p).
El elemento 5 no es numérico (l).
La suma de los elementos es: 18.0
BUILD SUCCESSFUL (total time: 23 seconds)
#41
Desarrollo Web / ¿Cómo posicionar una capa?
21 Enero 2012, 12:48 PM
Hola buenas... siguiendo con las funciones del otro post que hice tengo otro problema. En realidad dos problemas.

El primero, es que dependiendo de la configuración de pantalla del PC donde se cargue, el submenú me aparece desplazado. He probado a meter una tabla en la ceda donde se llama al submenú en lugar de usar la capa que he puesto aquí abajo, pero da el mismo resultado. a ver si alguien me puede ayudar a hacer posicionamiento de capas según donde cargue la página, es decir, que la función muestra me calcule la posición donde debe colocar la capa.

Funciones:
Código (javascript) [Seleccionar]
<script type="text/javascript">
function muestra(id)
{
document.getElementById(id).style.visibility='visible';
}

function oculta(id)
{
document.getElementById(id).style.visibility='hidden';
}
</script>


La capa:
Código (html4strict) [Seleccionar]
<div id="subMenu" class="menu" onMouseOut="javascript:oculta('subMenu');">
   <span class="menu">
      <a href="tintos.html">Vinos tintos</a><br/>
      <a href="blancos.html">Vinos blancos</a><br/>
      <a href="mostos.html">Mostos</a>
   </span>
</div>


Y la celda que llama:
Código (html4strict) [Seleccionar]
<td width="116" class="menu" onMouseOver="javascript:muestra('subMenu');" >Nuestros vinos</td>

El segundo problema, que no me importa demasiado la verdad, es que cuando añado lo del submenú, todo se descuadra en Internet Explorer (sólo en ese... ''navegador''). Si no pongo lo del submenú, todo vuelve a estar bien.

Gracias a todos, un Saludo.

PD: si alguien me dice las etiquetas para el tag CODE de html y java script edito el mensaje para que salga el codigo como es debido...
#42
Hola, buenas tardes a todos, ¿qué tal?

Bueno, estoy haciendo una web para el cole y necesito algo sencillo, pero que no sé porqué me está dando un problema...
Tengo una tabla y con un menú de navegación y una de las celdas debe abrir un submenú (que está en una capa DIV) al pasar el ratón por encima, hasta ahí todo bien. El problema viene al quitar el ratón (no desaparece) o al pasar éste sobre las opciones, desaparece en cuanto lo quitas de encima de la 1ª opción... y yo no veo el fallo... en fin,
Funciones:
<script type="text/javascript">
function muestra(id)
{
document.getElementById(id).style.visibility='visible';
}

function oculta(id)
{
document.getElementById(id).style.visibility='hidden';
}
</script>


La capa:
<div id="subMenu" class="menu" onMouseOut="javascript:oculta('subMenu');">
    <span class="menu">
       <a href="tintos.html">Vinos tintos</a><br/>
       <a href="blancos.html">Vinos blancos</a><br/>
       <a href="mostos.html">Mostos</a>
    </span>
</div>


Y la celda que llama:
<td width="116" class="menu" onMouseOver="javascript:muestra('subMenu');" >Nuestros vinos</td>

Gracias a todos, un Saludo.

PD: si alguien me dice las etiquetas para el tag CODE de html y java script edito el mensaje para que salga el codigo como es debido...
#43
Veamos... a ver si me podéis echar un cablecillo...
Dada la siguiente tabla:


Necesito armar una consulta que me diga el requisito de cada uno de los cursos. El Número del requisito es el código de otro de los cursos que están en esa misma tabla. Ahora mismo tengo lo siguiente:
Código (sql) [Seleccionar]
SELECT NOMBRE, REQUISITO
FROM CURSO;

Y devuelve:
Cita de: 'Oracle'NOMBRE   REQUISITO
NINGUNO   0
ESO   0
ESI   1
DAI   2
ASIR   2
BACHILLER   2
ADMINISTRACIÓN   1
FINANZAS   5
COMERCIO   1
MARKETING   7
CONSTRUCCIÓN   5
EDIFICACIÓN   5

¿Cómo hago para sacar el nombre del requisito en lugar del código?

Muchas gracias a todos.
#44
Buenas a todos.
Ante todo, Feliz Navidad y espero q haya habido suerte con la Lotería... a mi me han caído 5€ de *****.. pero bueno algo es algo  :xD, al tema

Tengo esta sentencia:

Código (sql) [Seleccionar]
CREATE TABLE EMPLEADO(
COD NUMBER(4),
NOMBRE VARCHAR2(20),
APELLIDO1 VARCHAR2(20),
APELLIDO2 VARCHAR2(20),
DIRECCION VARCHAR2(30),
TELEFONO VARCHAR2(14),
DNI VARCHAR2(9),
F_NACIMIENTO DATE,
NACIONALIDAD VARCHAR2(15),
SEXO VARCHAR2(6),
FIRMA NUMBER(4),
SALARIO NUMBER (7,2),
CONSTRAINT PK_EMPLEADO PRIMARY KEY (COD),
CONSTRAINT CH_SALARIO CHECK(SALARIO>0),
CONSTRAINT CH_FNACIMIENTO CHECK(F_NACIMIENTO<SYSDATE),
CONSTRAINT CH_SEXO CHECK (SEXO IN ("HOMBRE","MUJER", "hombre", "mujer"))
);


Y las restricciones de F_NACIMIENTO y de SEXO no le gustan demasiado... Básicamente lo que quiero es obligar a que la fecha de nacimiento sea siempre menor a SYSDATE y que el sexo sea uno de los que están puestos ahí...

Errores que da:

  • F_NACIMIENTO: ORA-02436: variable de sistema o de fecha especificada erróneamente en restricción de control (CHECK)
  • SEXO: ORA-00904: "mujer": identificador no válido

En el de sexo, sale "mujer" como no válido por ser el último de la lista.
Gracias a todos.

Un saludo y Feliz Navidad. :rolleyes:
#45
Pues básicamente es eso, que tengo pelis en .mkv y las quiero pasar a .avi porq mi disco duro multimedia no reconoce el primer formato. Me da igual que acaben pesando más, de momento tengo mucho espacio.

He probado con tsMuxer, pero el resultado es bastante extraño... lo primero, en el reproductor vaya por donde vaya la peli en la parte donde dice el tiempo total y el momento por el que vas siempre aparece 00:00:00 / 00:00:00 y por otro lado cuando pinchas en la barra para avanzar o atrasar la reproducción se pixela muchísimo y se cambian los colores hasta que cambia de cámara... bastante raro.

Gracias!