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ú

Mensajes - overxfl0w13

#61
Programación C/C++ / [Aporte] Deletreador C++
14 Agosto 2012, 02:58 AM
Buenas compañeros, vengo a dejar el code de un deletreador hecho en C++ con Gui en Qt, que aunque estoy de vacaciones, siempre sale tiempo para programar algo :).

La voz es mia (cutre) porque no he podido encontrar nada por google y actualmente solo tiene las letras en español con posible ampliación a letras en inglés (si encuentro alguna).

Screen:

Descarga Exe: http://www.mediafire.com/?u4oa2f857av35kl


Headers:

Deletreador.hpp:

Código (cpp) [Seleccionar]
#include <QtGui>

class deletreador
{
       public:
           deletreador(QString texto,QString idiomasel);

       private:
           QString textRead;
           QSound *letraRead;
};



Window.hpp:

Código (cpp) [Seleccionar]
#include <QObject>
#include <QtGui>
#include <QMessageBox>

class window : public QMainWindow
{
       Q_OBJECT

       public:

             window();
             void compruebaPalindromo();
             void primeLetra();
             void ultimLetra();
             void longiCadena();
             void funcionReves();

       private slots:

             void deletrear();

       public:

             QWidget *myWindow;
             QVBoxLayout *mainLayout,*izqLayout,*derLayout;
             QHBoxLayout *izqderLayout,*buttonLayout;
             QLineEdit *textIn;
             QPushButton *acceptButton;
             QLabel *ultimaLetra,*primeraLetra,*longitudCadena,*palindroma,*mainImage,*mainCongratulations,*mainSpace,*spaceTwo,*spaceThree,*textoReves,*selecIdioma,*labelTexto;
             QString textoDel,ulLetra,priLetra,textPalin,acumPalin,textoRev,idiomasel;
             QPixmap *image;
             QToolBar *languageToolbar;
             QMessageBox *mensaje;
             QComboBox *idiomas;
};



Sources:

Window.cpp:

Código (cpp) [Seleccionar]
#include "window.hpp"
#include "deletreador.hpp"

window::window()
{
   // Definicion

   myWindow = new QWidget;
   mainLayout = new QVBoxLayout;
   izqLayout = new QVBoxLayout;
   derLayout = new QVBoxLayout;
   izqderLayout = new QHBoxLayout;
   textIn = new QLineEdit;
   idiomas = new QComboBox;
   buttonLayout = new QHBoxLayout;
   labelTexto = new QLabel("Inserta el texto");
   labelTexto->setAlignment(Qt::AlignCenter);


   /***********************************/

   idiomas->addItem("Español");
   idiomas->addItem("Inglés");
   acceptButton = new QPushButton("Deletrear");
   mainImage = new QLabel;
   mensaje = new QMessageBox;
   mensaje->setText("Cadena Vacia");
   image = new QPixmap("Resources/Images/libro.png");
   mainImage->setPixmap(*image);
   mainImage->setAlignment(Qt::AlignCenter);
   ultimaLetra = new QLabel("La ultima letra es: ");
   textoReves = new QLabel("La cadena invertida es: ");
   selecIdioma = new QLabel("Idioma seleccionado: " + idiomas->currentText());
   mainSpace = new QLabel(" ");
   spaceTwo = new QLabel(" ");
   spaceThree = new QLabel(" ");
   primeraLetra = new QLabel("La primera letra es: ");
   longitudCadena = new QLabel("La longitud del texto es: ");
   palindroma = new QLabel("La palabra es palindroma: ");
   mainCongratulations = new QLabel("By Overxfl0w");
   mainCongratulations->setAlignment(Qt::AlignCenter);
   mainCongratulations->setText("<font size=3 color=#0000FF>By Overxfl0w to elhacker.net</font>");
   idiomas->setFixedSize(100,20);

   // Conexiones

   QObject::connect(acceptButton,SIGNAL(clicked()),this,SLOT(deletrear()));

   // Construccion

   myWindow->setMinimumSize(420,360);
   myWindow->setMaximumSize(420,360);
   buttonLayout->addWidget(idiomas);
   buttonLayout->addWidget(acceptButton);
   izqLayout->addWidget(primeraLetra);
   izqLayout->addWidget(ultimaLetra);
   izqLayout->addWidget(textoReves);
   derLayout->addWidget(selecIdioma);
   derLayout->addWidget(palindroma);
   derLayout->addWidget(longitudCadena);
   izqderLayout->addLayout(izqLayout);
   izqderLayout->addLayout(derLayout);
   mainLayout->addWidget(mainImage);
   mainLayout->addWidget(spaceThree);
   mainLayout->addWidget(labelTexto);
   mainLayout->addWidget(textIn);
   mainLayout->addLayout(buttonLayout);
   mainLayout->addWidget(mainSpace);
   mainLayout->addLayout(izqderLayout);
   mainLayout->addWidget(spaceTwo);
   mainLayout->addWidget(mainCongratulations);
   myWindow->setLayout(mainLayout);
   myWindow->setWindowTitle("Speller By Overxfl0w");
   myWindow->show();
}

void window::deletrear()
{
   if(textIn->text() != "")
   {
       primeLetra();
       ultimLetra();
       funcionReves();
       compruebaPalindromo();
       longiCadena();
       delete selecIdioma;
       idiomasel = idiomas->currentText();
       selecIdioma = new QLabel("Idioma seleccionado: " + idiomasel);
       derLayout->addWidget(selecIdioma);
       deletreador deletreador(textIn->text(),idiomasel);
   }
   else
   {
       mensaje->exec();
   }

}

void window::primeLetra()
{
   priLetra = textIn->text();
   delete primeraLetra;
   primeraLetra = new QLabel("La primera letra es: " + priLetra[0]);
   izqLayout->addWidget(primeraLetra);

}

void window::ultimLetra()
{
   int longitud = textIn->text().length();
   ulLetra = textIn->text();
   delete ultimaLetra;
   ultimaLetra = new QLabel("La ultima letra es: " +ulLetra[longitud-1]);
   izqLayout->addWidget(ultimaLetra);
}

void window::longiCadena()
{
   int longitud2 = textIn->text().length();
   delete longitudCadena;
   longitudCadena = new QLabel("La longitud del texto es: " + QString::number(longitud2));
   derLayout->addWidget(longitudCadena);
}

void window::compruebaPalindromo()
{
   textPalin = textIn->text();
   acumPalin = "";
   for(int x = textPalin.length()-1;x>=0;x--)
   {
       acumPalin = acumPalin + textPalin[x];
   }
   if(textPalin == acumPalin)
   {
       delete palindroma;
       palindroma = new QLabel("La palabra es palindroma: Si");
       derLayout->addWidget(palindroma);
       acumPalin = "";
   }
   else
   {
       delete palindroma;
       palindroma = new QLabel("La palabra es palindroma: No");
       derLayout->addWidget(palindroma);
       acumPalin = "";
   }

}

void window::funcionReves()
{
   textPalin = textIn->text();
   textoRev = "";
   for(int x = textPalin.length()-1;x>=0;x--)
   {
       textoRev = textoRev + textPalin[x];
   }
   delete textoReves;
   textoReves = new QLabel("La cadena invertida es: " + textoRev);
   izqLayout->addWidget(textoReves);
}


Deletreador.cpp:

Código (cpp) [Seleccionar]
#include "deletreador.hpp"
#include "window.hpp"
#include <windows.h>

deletreador::deletreador(QString texto,QString idiomasel)
{
   textRead = texto;
   if(idiomasel == "Español")
   {
   for(int x=0;x<textRead.length();x++)
   {
       if(textRead[x] != ' ')
       {
       letraRead = new QSound("Resources/Sounds/Spanish/"+textRead[x]+".wav");
       letraRead->play();
       Sleep(1100);
       }
   }
   }
   if(idiomasel == "Inglés")
   {
       for(int x=0;x<textRead.length();x++)
       {
           if(textRead[x] != ' ')
           {
           letraRead = new QSound("Resources/Sounds/English/"+textRead[x]+".wav");
           letraRead->play();
           Sleep(1100);
           }
       }
       }
   }


Main.cpp:

Código (cpp) [Seleccionar]
#include "window.hpp"

int main(int argc, char *argv[])
{
   QApplication app(argc, argv);
   window window;
   return app.exec();
}


PD: Usa windows.h para el Sleep si surge cualquier problema, incluir la libreria stdio.h con la función sleep pasándole un int como valor para los segundos.
Un saludo :)
#62
Scripting / Re: FTP ver archivos
4 Agosto 2012, 01:15 AM
Cita de: puntoinfinito en  3 Agosto 2012, 02:24 AM
ls

Aro, estás en linux, los comandos varían pero vamos, no es nada del otro mundo  :)
#63
Scripting / Re: FTP ver archivos
3 Agosto 2012, 02:00 AM
ftp
open
ftp.debian.org --> ejemplo

Y ya dentro navegas por los directorios mirando los archivos desde el shell.

dir,cd,cd.. etc

Pero busca en google que hay muchísima info tio
#64
WarZone / Re: Hack-Web_Foro
30 Julio 2012, 21:42 PM
:D  ;-) :laugh:  :rolleyes: son estos el truco no? ;).

Lo que no se me ocurre es la forma mediante la cual pueda meterlos porque se filtran igual  :¬¬

Superada, sin usar smileys ni bbc, la mayoría de las pistas de este post no son útiles, únicamente la de que filtra tags iniciales, cosa que se puede ver fácilmente :)
#65
Dudas Generales / Error Wamp
27 Julio 2012, 16:48 PM
Tengo instalada la última versión de Wamp junto con Visual C++ 2010 SP1 tal como requiere. El problema viene al iniciar httpd.exe me salta el error de "La aplicación no se pudo iniciar correctamente 0x0000007b" por eso no inicia el servicio de apache y no me permite entrar a localhost.

Ese error me lleva a pensar en el Visual C++ pero no se me ocurre como solucionarlo, he probado poniendo en el mismo directorio la dll msvcr100 que suele dar ese tipo de problemas cuando falta pero nada...

Uso windows 7 y he desinstalado skype por problemas con los puertos :)


Un saludo  :)
#66
WarZone / Re: Hack-Web_Cross
27 Julio 2012, 14:42 PM
Tengo la prueba superada pero no consigo saber porque funciona así, se supone que el form va por POST, es muy rara esa prueba.
#67
Programación C/C++ / Re: funciones duda
26 Julio 2012, 22:57 PM
Cita de: ALONSOQ en 26 Julio 2012, 22:52 PM
Hola me podeis decir que falla en este codigo?

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>

int matriz_aleatoria (int m[3] );
int matriz_aleatoria (int m[3])
{
    int  i;
    srand (time(NULL));
   for (i=0; i<3;i++)
    {
    m[i]= (rand()%16);
    printf("%d",m[i]);
    }   
   
}
   
    int main()
    {
       int matriz[3];
        int contador;
       
       matriz_aleatoria(matriz[contador]);
       
        getch();
    }


muchas gracias

De C poco sé y me lio con sus codes pero que yo vea, la variable contador no está inicializada, si declarada pero no almacena ningun valor, solo basura que le pasas como índice al array matriz.
#68
Para lanzar los módulos crea slots para cada boton y que cada slot maneje uno, pero surge otro problema y es que los slots tienes que declararlos tú, perdiendo dinamicidad y teniendo que modificar el code para cada ejecutable...

Así que no sé me ocurre la manera de hacer lo que quieres, siento no poder ayudarte.

Un saludo  :)
#69
No lo he entendido muy bien, pero si no me equivoco quieres tipo una ventana con botones que lancen los ejecutables ya creados por ti para que éstas no sean independientes no?.

No hace falta calentarse tanto la cabeza ni xml si lo que quieres es eso, crea un widget normal con una cantidad de botones determinada, al conocer la cantidad de aplicaciones y que cada botón ejecute las app's con system() por ejemplo.

De todas formas me reitero, no te he entendido muy bien y si no es ésto lo que quieres esperemos a alguien que lo comprenda  :xD

EDIT: Lo quieres dinámico y no tener que estar recodeando la app principal vale, puedes probar algo así:

Código (cpp) [Seleccionar]

#include <QtGui>

int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
   QWidget *window;
   QVBoxLayout *mainLayout = new QVBoxLayout;
   int contador = 0;
   while(contador<=nºappsenxml) // mientras contador sea menor o igual que la cantidad de apps escritas en el xml
   {
       QPushButton boton = new QPushButton(nombreapp[contador]); // crea botones nuevos con el nombre registrado en el xml
       mainLayout->addWIdget(boton);
       contador += 1;
   }
   window->setLayout(mainLayout);
   window->show();
   return a.exec();
}


Yo de XML no tengo ni idea, por eso te he puesto 2 variables que no pintan nada, además el code no tiene ni pies ni cabeza pero para que te hagas una idea, por ejemplo en el xml declaras una lista con diferentes aplicaciones,siendo nºappsenxml la cantidad de aplicaciones de la lista y nombreapp el nombre de la lista que contiene el nombres de las aplicaciones. En el bucle vas creando nuevos botones con el nombre de la lista y el index contador.

No sé yo si me he explicado bien pero es todo lo que he entendido de tu extenso mensaje. Un saludo y espero que te sirva :)

#70
chmod +x /etc/apt/sources.list
sudo nano /etc/apt/sources.list