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 - tonilogar

#1
Scripting / Pasar if de c++ a bat
1 Diciembre 2016, 18:23 PM
Tengo este pequeño codigo en c++
Código:
Código (cpp) [Seleccionar]

   double xe=10;
   double xo=2;
   double yn=10;
   double ys=2;

   double xe1=0;
   double xo1=2;
   double yn1=11;
   double ys1=0;

   if (!(xo1 > xe || xe1 < xo || yn1 < ys || ys1 > yn) )
   {
     qDebug()<<"Hay pixels dentro de la imagen origen";
   }
   else
  qDebug()<<"No Hay pixels dentro de la imagen origen";


Y me estoy dando cabezazos para poder utilizarlo en un bat, pero no logro hacerlo.
¿Es posible trabajar con este código de forma similar en bat?

Un saludo y gracias por vuestro tiempo


Mod: Los códigos deben ir en etiquetas GeSHi
#2

Necesito hacer un "contenedor" de variables string o char* y que se puedan ir introduciendo las variable una a una con getline, y que las variables no se duplique si se entra la misma variable por error.

Y otro "contenedor" en que las variables serán el contenido de un directorio

Estaba empollandome los vectores para crear los contenedores y después utilizar las herramientas de comparación.

Pero por un lado me recomiendan que utilice deque y por otro que utilice los map.
¿Que me recomendáis para crear este tipo de "contenedores" vectores deque mapas ?????
¿Otro método?

Un saludo y gracias por vuestro tiempo.
#3
Gracias por tu ayuda fantasma306.

Al  final he seguido todas tus indicaciones, utilizando el open y sin crear una variable nueva.
Así queda el código:


Código (cpp) [Seleccionar]


void ImagenEntrada()
{
cin.ignore();

//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string Imagen;


do
{
cout << "entra datos";
cout << endl<< endl;

getline (cin,Imagen);
fstream fichero(Imagen.c_str(), ios_base::in | ios_base::binary);
    if (fichero.is_open())
    {
       cout << "el fichero existe" << endl;
       fichero.close();

    }
   else if (Imagen.length()==0)
   {
      cout << "OK" << endl;
    }

    else
    {
      cout << "El fichero no existe" << endl;
    }

}
while (Imagen.length()!=0);
cout << endl<< endl;
}


Un saludo.
#4
Gracias por tu ayuda fantasma306, este fin de semana intentare limpiar el código.
#5
El  cout <<  endl; detras del cin es porque despues se imprime la variable Imagen y lo veo mas claro.
Pero bueno como comentas en el código final no sirve para nada.

En principio lo he solucionado con el fstream
Código (cpp) [Seleccionar]

void ImagenEntrada()
{
std::cin.ignore();

//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
std::string Imagen;


do
{
cout << "entra datos";
cout << endl<< endl;

getline (cin,Imagen);
const char *ImagenChar=Imagen.c_str();
fstream fichero(ImagenChar, ifstream::in);
    if (!fichero)
    {
       cout << "L'imatge a transformar no es correcta" << endl;

    }
   /* else if(fichero<1)
    {
       cout << "Fin entrada de Imagenes" << endl;
    }*/
    else
    {
      cout << "OK" << endl;
    }

}
while (Imagen.length()!=0);
cout << endl<< endl;
}

Fantasma306 probare como me indicas, para ver que solución es la que mas me conviene.
En principio es para windows, pero en casa utilizo linux y prefiero que el código sea portable.


Pues como de primeras no entiendo mucho Died, pero me lo mirare con detenimiento (soy un novato).

Si veis alguna pega sobre la solución que he utilizado no dejéis de criticar todo lo criticable.

Un saludo y gracias por vuestro tiempo.






#6
En esta aplicación, entro un dato con  getline  y utilizo el tipo de variable string por si el nombre tiene espacios.

Hay alguna forma de detectar si el fichero existe o no, con una variable del tipo string.

Parecido a como se hace con el variables de tipo char*.



Código (cpp) [Seleccionar]

int main ()

{

 char * Imagen;

 int com;

   cout <<  endl;

   cout <<  endl;

   cout << "selecciona imatge a transformar";

   cout <<  endl;

   cout <<  endl;

   cin >> Imagen;

   cout <<  endl;



cout <<  Imagen;

   ifstream fich (Imagen, ios::in | ios::binary);

   com=(fich.good());

   cout <<  endl;



   if (com==0) cout <<  "La imagen no existe";

   else cout <<  "La imagen existe";

   cin.get();

}




O con el open de ifstream



Un saludo a todos y gracias por vuestra ayuda.
#7
Arreglado.
Mira que era sencillo.
Poco a poco


Código (cpp) [Seleccionar]

/CUERPO DE FUNCION/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
void ImagenEntrada()
{
std::cin.ignore();

//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string fichero;


do
{
cout << "entra datos";
cout << endl<< endl;
getline (cin,fichero);

}
while (fichero.length()!=0);

}

Un saludo a todos
#8
Pues de nuevo con el getline.

La ultima función "void ImagenEntrada();".

Lo único que hace es pedir que entre datos y cuando tecleo return  sale del while.
Probando en un fichero separado va perfecto.

Código (cpp) [Seleccionar]

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main()
{
string fichero;


do
{
cout << "entra datos";
cout << endl<< endl;
getline (cin,fichero);

}
while (fichero.length()!=0);


cin.get();
return 0;
}


Pero a la que lo adjunto en un fichero con mas código.

Cuando entro el primer dato me echa del programa.

Por lo que leído el buffer del cin se queda con algún dato, y tengo que borrar el buffer.
¿me equivoco?

Lo he intentado con flush, ignore, cleaner etc pero no logro dar con el código correcto.

Estoy equivocado y no tiene que ver el buffer de cin.

Aquí dejo el código.



Fichero header:
Código (cpp) [Seleccionar]

#ifndef PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks
#define PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks

//Declaracion de funciones

string MenuPreguntas();

string ConversorImagenes();

void EntraDatos();

#endif // PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks


Fichero definición de funciones
Código (cpp) [Seleccionar]

//CUERPO DE FUNCION/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

string MenuPreguntas()
{
//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string Elegir;


   while (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") {
     cout << endl << endl;
       cout << "-----TRIAR SOFTWAREA A UTILITZAR" << endl << endl;
       cout << "1: Conversor d'imatges" << endl<< endl;
       cout << "2: Crear, tallar mosaics" << endl<< endl;
       cout << "3: Buscar, renombrar, copiar, esborrar, moure fitxers" << endl<< endl;
     cout << "4: Mapa de diferencies" << endl<< endl;
     cout << "5: Treballar amb canals" << endl<< endl;
     cout << "Q: Sortir de l'aplicacio" << endl<< endl;
       cout << "Seleciona opcion :"<< endl<< endl;
       cin >> Elegir;
      if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula).

     else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA";
}
  cout<< endl;
  cout<< endl;
  return Elegir;
}

//CUERPO DE FUNCION/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

string ConversorImagenes()
{
//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string Elegir;


   while (Elegir!="1" && Elegir!="2" && Elegir!="3"&&  Elegir!="a" && Elegir!="q") {
     cout << endl << endl;
     cout << "-----coversor .RF .TIF .JPG" << endl << endl;
       cout << "-----TRIAR OPCIO" << endl << endl;
       cout << "1: Seleccionar imatges" << endl<< endl;
       cout << "2: Seleccionar llistat d'imatges" << endl<< endl;
     cout << "3: Seleccionar directori on es troben les imatges a transformar" << endl<< endl;
     cout << "A: Tornar al menu anterior" << endl<< endl;
     cout << "Q: Sortir de l'aplicacio" << endl<< endl;
       cout << "Seleciona opcion :"<< endl<< endl;
       cin >> Elegir;
      if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula).
     else if (Elegir == "A") Elegir="a"; //Si la opcion elegida es A(mayuscula) pasarla a a(minuscula).
     else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="a" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA";
}
  cout<< endl;
  cout<< endl;
  return Elegir;
}



//CUERPO DE FUNCION/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
void EntraDatos()
{


//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string fichero;


do
{
cout << "entra datos";
cout << endl<< endl;
getline (cin,fichero);

}
while (fichero.length()!=0);
cout << endl<< endl;
cout << fichero;
}

Fichero main
Código (cpp) [Seleccionar]

#include <iostream>
#include <string>
#include <fstream>
using namespace std;
#include "ProyectoBase.hpp"//Fichero header
#include "ProyectoBase.cpp" //Fichero de funciones

//Variables
string VariableMenuPreguntas;
string VariableConversorImagenes;

int main()
{
   VariableMenuPreguntas=MenuPreguntas();

if (VariableMenuPreguntas == "1") VariableConversorImagenes=ConversorImagenes();
else if (VariableMenuPreguntas == "2") cout << "VariableMenuPreguntas 2";
else if (VariableMenuPreguntas == "3") cout << "VariableMenuPreguntas 3";
else if (VariableMenuPreguntas == "4") cout << "VariableMenuPreguntas 4";
else if (VariableMenuPreguntas == "5") cout << "VariableMenuPreguntas 5";

if (VariableConversorImagenes == "1") EntraDatos();
else if (VariableConversorImagenes == "2") cout << "VariableConversorImagenes 2";
else if (VariableConversorImagenes == "3") cout << "VariableConversorImagenes 3";
else if (VariableConversorImagenes == "4") cout << "VariableConversorImagenes 4";
else if (VariableConversorImagenes == "5") cout << "VariableConversorImagenes 5";

   cin.get();
   return 0;


Un saludo y gracias por vuestro tiempo.
#9
Como decía Queta los includes al fichero de cabecera y al fichero de las definiciones de función, estaban mal.

A parte que algún que otro despropósito del código.

Aquí dejo el código con la funciona en su sitio.



Fichero header:
#ifndef PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks
#define PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks

//Declaracion de funciones
Código (cpp) [Seleccionar]

string MenuPreguntas();

string ConversorImagenes();

void EntraDatos();

#endif // PROYECTOBASE_HPP_INCLUDED//Codigo del editor code::blocks


Fichero definición de funciones
Código (cpp) [Seleccionar]

//CUERPO DE FUNCION/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

string MenuPreguntas()
{
//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string Elegir;


   while (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") {
cout << endl << endl;
       cout << "-----TRIAR SOFTWAREA A UTILITZAR" << endl << endl;
       cout << "1: Conversor d'imatges" << endl<< endl;
       cout << "2: Crear, tallar mosaics" << endl<< endl;
       cout << "3: Buscar, renombrar, copiar, esborrar, moure fitxers" << endl<< endl;
cout << "4: Mapa de diferencies" << endl<< endl;
cout << "5: Treballar amb canals" << endl<< endl;
cout << "Q: Sortir de l'aplicacio" << endl<< endl;
       cout << "Seleciona opcion :"<< endl<< endl;
       cin >> Elegir;
   if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula).

else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="4" && Elegir!="5" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA";
}
cout<< endl;
cout<< endl;
return Elegir;
}

//CUERPO DE FUNCION/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////

string ConversorImagenes()
{
//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string Elegir;


   while (Elegir!="1" && Elegir!="2" && Elegir!="3"&&  Elegir!="a" && Elegir!="q") {
cout << endl << endl;
cout << "-----coversor .RF .TIF .JPG" << endl << endl;
       cout << "-----TRIAR OPCIO" << endl << endl;
       cout << "1: Seleccionar imatges" << endl<< endl;
       cout << "2: Seleccionar llistat d'imatges" << endl<< endl;
cout << "3: Seleccionar directori on es troben les imatges a transformar" << endl<< endl;
cout << "A: Tornar al menu anterior" << endl<< endl;
cout << "Q: Sortir de l'aplicacio" << endl<< endl;
       cout << "Seleciona opcion :"<< endl<< endl;
       cin >> Elegir;
   if (Elegir == "Q") Elegir="q"; //Si la opcion elegida es Q(mayuscula) pasarla a q(minuscula).
else if (Elegir == "A") Elegir="a"; //Si la opcion elegida es A(mayuscula) pasarla a a(minuscula).
else if (Elegir!="1" && Elegir!="2" && Elegir!="3" && Elegir!="a" && Elegir!="q") cout << endl << "-----LA SELECCIO ES ERRONEA";
}
cout<< endl;
cout<< endl;
return Elegir;
}



//CUERPO DE FUNCION/////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
void EntraDatos()
{


//VARIABLES DE FUNCION/////////////////////////////////////////////////////////////////////////
string fichero;


do
{
cout << "entra datos";
cout << endl<< endl;
getline (cin,fichero);

}
while (fichero.length()!=0);
cout << endl<< endl;
cout << fichero;
}


Fichero main
Código (cpp) [Seleccionar]

#include <iostream>
#include <string>
#include <fstream>
using namespace std;
#include "ProyectoBase.hpp"//Fichero header
#include "ProyectoBase.cpp" //Fichero de funciones

//Variables
string VariableMenuPreguntas;
string VariableConversorImagenes;

int main()
{
   VariableMenuPreguntas=MenuPreguntas();

if (VariableMenuPreguntas == "1") VariableConversorImagenes=ConversorImagenes();
else if (VariableMenuPreguntas == "2") cout << "VariableMenuPreguntas 2";
else if (VariableMenuPreguntas == "3") cout << "VariableMenuPreguntas 3";
else if (VariableMenuPreguntas == "4") cout << "VariableMenuPreguntas 4";
else if (VariableMenuPreguntas == "5") cout << "VariableMenuPreguntas 5";

if (VariableConversorImagenes == "1") EntraDatos();
else if (VariableConversorImagenes == "2") cout << "VariableConversorImagenes 2";
else if (VariableConversorImagenes == "3") cout << "VariableConversorImagenes 3";
else if (VariableConversorImagenes == "4") cout << "VariableConversorImagenes 4";
else if (VariableConversorImagenes == "5") cout << "VariableConversorImagenes 5";

   cin.get();
   return 0;

Y ahora a seguir con el programática.

Gracias por vuestro tiempo y ayuda.


#10
Gracias Queta, esta noche pruebo y comento.

Un saludo.