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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 80
161  Programación / Java / Re: cannot find class en: 20 Febrero 2012, 18:18 pm
Código
  1. Ventana v1 = new Ventana("Ventana 1", true);
  2. v1.mover()
  3.  

Los atributos suelen ser privados y es bueno especificarlo.

Más info: http://foro.elhacker.net/empty-t345736.0.html

Saludos
162  Programación / Scripting / Re: [Ruby] Me ayudan a corregir este script? en: 20 Febrero 2012, 17:43 pm
Mirándolo rápido no veo nada que objetar, para lo que mencionas al principio puedes usar "or":

Código
  1. if (ARGV[0])=="-h" or "--help"
  2. help()

--EDIT--
Para que el archivo no se reemplace con File.rename puedes comprobar si el archivo ya existe con File.exist?(file)

Esta podría ser la forma correcta:
Código
  1. if (File.exist?(path_to_file))
  2.    print "ERROR!!"
  3.  

--EDIT--
Una sugerencia más, para reducir la cantidad de lineas, puedes definir una función más genérica, que reciba parámetros, y llamar a la función en base a los argumentos. Me refiero a que se simplifica mucho de la siguiente forma:

Código
  1. def reemplazar(caracter_a_reemplazar, nuevo_caracter)
  2.    Find.find(ARGV[1].gsub("\\", "/")) { |path|
  3. path = path.encode('utf-8')
  4. if path[caracter_a_reemplazar] then
  5. File.rename(path, path.gsub(caracter_a_reemplazar, nuevo_caracter))
  6. $renamed += 1
  7. end
  8. $total += 1
  9.    }
  10. end
  11.  
  12. if (ARGV[0] == "-c" or "--comilla")
  13.  reemplazar("\u004B", "\u0027")
  14. else if ...

Saludos
163  Programación / Scripting / Re: (Solucionado) [RUBY] Mostrar caracter unicode en: 20 Febrero 2012, 16:18 pm
la manera de usarlo en el condicional, como devuelve true o false es la siguiente:

Código
  1. if (ARGV.empty?) then
  2.    print "ARGV Vacio"
  3. end
  4.  

Como no se ha pasado ningun elemento como argumento entonces ARGV[0] que es el primer elemento del array no existe, por eso el método empty? se aplica al array como tal y no a un elemento de este

Existe buena documentación en la página de Ruby: http://www.ruby-lang.org/es/documentation/

En cuanto a lo del material, revisa este hilo: http://foro.elhacker.net/scripting/introducing_ruby_lo_que_debes_saber_sobre_ruby-t321085.0.html

Saludos
Saludos
164  Programación / Scripting / Re: [Ruby] Error "undefined method" en: 20 Febrero 2012, 16:11 pm
El problema de este Script está en las variables. Las variables tienen un "scope" o contexto en el que son usadas. Al terminar dicho contexto la variable desaparece. En este caso las variables se crean en el método reset(), y cuando el método reset desaparece las variables desaparecen con este y no se pueden usar en otro método diferente. Para solucionar este problema se usan las denominadas variables globales, que en Ruby se identifican porque empiezan con un signo "$". Así si defines el método reset así no debería haber más problemas:

Código
  1. def reset()
  2. $renamed = 0
  3. $total = -1
  4. end
  5.  

Y recuerda entonces que para usarlas siempre han de estar antecedidas con el signo "$" por ejemplo: "#{$total}" si las quieres mostrar dentro de la cadena sin concatenar.

Saludos
165  Programación / Scripting / Re: [RUBY] Mostrar caracter unicode en: 20 Febrero 2012, 07:47 am
El problema del primer script está en esta linea:

Código
  1. print ' -comilla    (Reemplaza "´" por "'")' + "\n"

En donde debes escapar la comilla simple para que se encierre bien dentro de los pares de comillas, así:

Código
  1. print ' -comilla    (Reemplaza "´" por "\'")' + "\n"

Ahora para mostrar caracteres de tipo unicode debes usar comillas dobles y escapar el resto de comillas dobles de la siguiente forma:

Código
  1. # -*- coding: UTF-8 -*-
  2.  
  3. def help()
  4. print "\n Opciones: \n\n"
  5. print ' -?          (Elimina el caracter "¿")' + "\n"
  6. print ' -comilla    (Reemplaza "´" por "\'")' + "\n"
  7. print ' -ft         (Reemplaza " ft " por " feat. ")' + "\n"
  8. print ' -ft.        (Reemplaza " ft. " por " feat. ")' + "\n"
  9. print " -guion      (Reemplaza \"\u2013\" por \"-\")" + "\n"
  10. end

Ahora desde que ARGV es un array puedes comprobar si está vacío de la siguiente manera:

Código
  1. ARGV.empty?

Lo que devuelve true o false dependiendo si tiene elementos o no.

--EDIT--
Puedes usar puts (put string) envés de print y esté adicionará el salto de linea al final sin necesidad de especificarlo con "\n"

Saludos
166  Programación / Scripting / Re: Ayuda xD [RUBY] Renombrando un caracter ilegal en: 20 Febrero 2012, 05:28 am
Al parecer es culpa del cmd de Windows, que no está pasando los argumentos encodeados en utf-8 la solución usar este comando antes de correr el Script:

Código:
chcp 1252>NUL

y usar este Script:

Código
  1. # -*- coding: UTF-8 -*-
  2.  
  3. require 'find'
  4. exit if Object.const_defined?(:Ocra)
  5.  
  6. rename = 0
  7. total = 0
  8.  
  9. Find.find(ARGV[0].gsub("\\", "/")) { |path|
  10. path = path.encode('utf-8')
  11. if path["\u2013"] then
  12. File.rename(path, path.gsub("\u2013", "-"))
  13. rename += 1
  14. end
  15. total += 1
  16. }
  17.  
  18. puts "Procesados: #{total} archivos" + " | " + "Renombrados: #{rename} archivos"

Saludos
167  Programación / Scripting / Re: (Solucionado) [RUBY] Renombrando un caracter ilegal en: 20 Febrero 2012, 03:57 am
Tienes razón me estaba dando cuenta de eso ahora iba a editar el script

Y esto debe quedar así:
Código
  1. total = -1

Salu2

Eso si quieres empezar el conteo desde 0

Saludos.
168  Programación / Scripting / Re: (Solucionado) [RUBY] Renombrando un caracter ilegal en: 20 Febrero 2012, 03:43 am
Hola.!

Bien me alegra que haya sido de ayuda. Con respecto a las modificaciones un simple arreglo. la variable total no te va a devolver la cantidad de archivos analizados, sino que te va a devolver la cantdad de archivos que no fueron renombrados, o los que en su nombre no tenian el caracter ilegal, para obtener el total has de hacer la suma por fuera del condicional if:

Código
  1. # -*- coding: UTF-8 -*-
  2.  
  3. require 'find'
  4. exit if Object.const_defined?(:Ocra)
  5.  
  6. rename = 0
  7. total = 0
  8.  
  9. Find.find(ARGV[0].gsub("\\", "/").encode('utf-8')) { |path|
  10. path = path.encode('utf-8')
  11. if path["\u2013"] then
  12. File.rename(path, path.gsub("\u2013", "-"))
  13. rename += 1
  14. end
  15. total += 1
  16. }
  17.  
  18. puts "Procesados: #{total} archivos" + " | " + "Renombrados: #{rename} archivos"
  19.  

Saludos.
169  Programación / Java / Re: Problemas con jTextarea en: 20 Febrero 2012, 03:09 am
Bueno si no vemos algo de código entonces no podremos ayudarte mucho.

Igual te dejo un ejemplo de como lo haria:

Código
  1. package jtarea;
  2.  
  3. import java.awt.FlowLayout;
  4. import java.awt.event.ActionEvent;
  5. import java.awt.event.ActionListener;
  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.JTextArea;
  9. import javax.swing.JTextField;
  10.  
  11. /**
  12.  *
  13.  * @author ryogi
  14.  */
  15. public class JTArea extends JFrame implements ActionListener{
  16.  
  17.    private JTextArea textArea = new JTextArea(10, 10);
  18.    private JTextField textToAppend = new JTextField(15);
  19.    private JButton button = new JButton("Agregar a JTextArea");
  20.  
  21.    public JTArea() {
  22.        setSize(200, 300);
  23.        setResizable(false);
  24.        setDefaultCloseOperation(EXIT_ON_CLOSE);
  25.        setLayout(new FlowLayout());
  26.  
  27.        button.addActionListener(this);
  28.        button.setActionCommand("Append");
  29.  
  30.        add(textArea);
  31.        add(textToAppend);
  32.        add(button);
  33.  
  34.        setVisible(true);
  35.  
  36.    }
  37.  
  38.    public static void main(String[] args) {
  39.        JTArea jtarea = new JTArea();
  40.    }
  41.  
  42.    @Override
  43.    public void actionPerformed(ActionEvent e) {
  44.        if (e.getActionCommand().equals("Append")) {
  45.            textArea.append(textToAppend.getText());
  46.        }
  47.    }
  48. }
  49.  

Como veo que hasta ahora inicias, No sigas al pie de la letra el ejemplo, esto es solo un ejemplo y ésa no es la manera de estructurar una aplicación con GUI en Java.

Saludos
170  Programación / Scripting / Re: [RUBY] [BATCH] Renombrando un caracter ilegal en: 20 Febrero 2012, 01:27 am
Eso del ARGV[0] me parece raro, ya que argv(0) siempre ha sido el propio script.

Si bueno eso en C y entros lenguajes si quieres saber eso en ruby es con:

Código
  1. __FILE__

Saludos
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ... 80
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines