Estoy intentando hacer una pantalla de ayuda en un script
El problema es que me da errores al intentar mostrar estos caracteres:
¿ ´ ' –
# -*- coding: UTF-8 -*-
def help()
print "\n Opciones: \n\n"
print ' -? (Elimina el caracter "¿")' + "\n"
print ' -comilla (Reemplaza "´" por "'")' + "\n"
print ' -ft (Reemplaza " ft " por " feat. ")' + "\n"
print ' -ft. (Reemplaza " ft. " por " feat. ")' + "\n"
print ' -guion (Reemplaza "–" por "-")' + "\n"
Process.exit
end
help()
He intentado mostrar el guión así, pero nada... :
print ' -guion (Reemplaza "\u2013" por "-")' + "\n"
Y una pregunta de paso...
Como puedo hacer esto correctamente?
if (ARGV[0])==""
help()
end
La intención es que reconozca si el argumento está vació.
EDITO:
Vale lo segundo ya lo he conseguido:
if (ARGV[0])==()
help()
end
El problema del primer script está en esta linea:
print ' -comilla (Reemplaza "´" por "'")' + "\n"
En donde debes escapar la comilla simple para que se encierre bien dentro de los pares de comillas, así:
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:
# -*- coding: UTF-8 -*-
def help()
print "\n Opciones: \n\n"
print ' -? (Elimina el caracter "¿")' + "\n"
print ' -comilla (Reemplaza "´" por "\'")' + "\n"
print ' -ft (Reemplaza " ft " por " feat. ")' + "\n"
print ' -ft. (Reemplaza " ft. " por " feat. ")' + "\n"
print " -guion (Reemplaza \"\u2013\" por \"-\")" + "\n"
end
Ahora desde que ARGV es un array puedes comprobar si está vacío de la siguiente manera:
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
Gracias por tu ayuda pero probé el code que me has dado y no me funcionó, daba error en la linea de "-comilla" xD
Pero por suerte he encontrado la lista de los caracteres unicode y gracias a tu ejemplo lo he conseguido:
def help()
print "\n Opciones: \n\n"
print " -c --comilla (Reemplaza \"\u00B4\" por \"\u0027\")" + "\n"
print ' -f --featuring (Reemplaza " ft " por " feat. ")' + "\n"
print ' (Reemplaza " ft. " por " feat. ")' + "\n"
print " -g --guion (Reemplaza \"\u2013\" por \"-\")" + "\n"
print " -i --interrogante (Elimina \"\u00BF\")" + "\n"
Process.exit
end
Lo malo de esto... Es que me dijiste que para usar el script que reemplaza el guion,Debo usar el código de páginas "chcp 1252"
Si activo la página, La ayuda se muestra mal:
(http://img717.imageshack.us/img717/203/prtscrcapture2c.jpg)
Ya no se como lograr hacerlo correctamente, DIOSSS
PD: Como odio el tema de los chars >:( >:( >:(
EDITO:
SOLUCIONADO ^^
system('chcp 850 >NUL')
def help()
system('chcp 850 >NUL')
print "\n Opciones: \n\n"
print " -c --comilla Reemplaza \[\u00B4\] por \[\u0027\]\n\n"
print " -f --featuring Reemplaza [ ft ] por [ feat. ]\n"
print " Reemplaza [ ft. ] por [ feat. ]\n\n"
print " -g --guion Reemplaza \[\u2013\] por \[-\]\n\n"
print " -i --interrogante Elimina \[\u00BF\]\n"
Process.exit
end
Cita de: RyogiShiki en 20 Febrero 2012, 07:47 AM
--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"
Estoy aprendiendo python y la verdad que la syntaxis de ruby es casi igual xD, Prefiero acostumbrarme a usar Print por el momento.
Cita de: RyogiShiki en 20 Febrero 2012, 07:47 AMdesde que ARGV es un array puedes comprobar si está vacío de la siguiente manera:
ARGV.empty?
Lo que devuelve true o false dependiendo si tiene elementos o no.
Uf, No encuentro la manera de utilizar eso...
If (ARGV[0].empty?)=="True"
print "True"
end
ARGV.empty?
If True then
print "True"
else
print "false"
end
Creo que si me recomendases un manual de ruby (en español) dejaría de molestarte ._. La verdad es que no encuentro casi ejemplos de nada, sobre Ruby. Todo lo estoy haciendo basandome en que se parece a python, y viendo ejemplos de ruby de
Doddy xD
la manera de usarlo en el condicional, como devuelve true o false es la siguiente:
if (ARGV.empty?) then
print "ARGV Vacio"
end
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