PREGUNTAS CONTESTADAS -

 Hay un total de 745 Preguntas.<<  >> 

    Pregunta:  3336 - CONTENEDORES DE STL
Autor:  Andoni
Hola a todos, y gracias de antemano.
Estoy programando un lector de XML con la librería de microsoft MsXml.dll. Una vez leído el fichero xml queremos meterlo en una estructura en memoria y habíamos pensado en un contenedor STL, pero no consigo instanciar uno. Alguien sabe como se hace?
He probado con lo que viene en la ayuda
es decir, primero hacer el include del map
#include <map>
y definir el conjunto:
typedef map< int, string, less<int>, allocator<string> > tipochupi>;
pero me da error. Supongo que será un error de sintaxis pero es que no consigo encontrarlo.
En fin. Eso es todo.
Gracias de nuevo.
  Respuesta:  Carlos Antonio
Ante todo un saludo:
Ese problema con la clase map puede ser algo que me sucedio a mi hace un tiempo y es lo siguiente:
parece que para poder "meter" algo dentro de un mapa el objeto a colocar debe tener un constructor vacio o sea
debe tener esto en el .cpp
clase1::clase1()
{

}
espero que te sirva de lago
  Respuesta:  Albert Sansó Garrido
#include <conio.h>
#include <stdio.h>
#include <iostream.h>

#include <list>

using namespace std;

void main(void)
{
list<int> lst;

lst.push_front(12);
lst.push_front(15);
cout << lst.back() << endl;
}

// y lo mismo haciendo el include con <deque>, <vector>, <stack> ...
// pero siempre con el "using namespace std"

    Pregunta:  3380 - LISTAS ENLAZADAS
Autor:  ALDAIR PIRRINHA DE LOS SANTOS
urgente!! soy estudiante de la UTC en Quintana Roo, Mexico, y tengo una dificultad para poder construir listas en lazadas en Tc++, desde crear el primer elemento, recorrer la lista, insertar...etc. si alguien pudiera ayudarme a construir la lista, y enviarme una breve explicacion, de verdad!!! se lo agradeceria...!!! Muchas gracias!!
  Respuesta:  Endos
/*******************************************************
* Demostracion del uso de listas doblemente enlazadas *
* (c)2000 Endos, [email protected] *
* - Dominio publico - *
*******************************************************/

#include <stdio.h>

struct ListaDoble
{
int UnDato; // Colocar los datos que sean necesarios
// ...

ListaDoble *Siguiente; // Puntero a la siguiente lista
ListaDoble *Anterior; // Puntero a la anterior lista
}inicioListaDoble;


// Devuelve un puntero a la lista que sigue a ´ListaActual´
ListaDoble *SiguienteLista(ListaDoble *ListaActual)
{
return ListaActual->Siguiente;
}

// Devuelve un puntero a la lista anterior a ´ListaActual´
ListaDoble *AnteriorLista(ListaDoble *ListaActual)
{
return ListaActual->Anterior;
}

// Inserta una nueva lista justo detras de ´ListaActual´
ListaDoble *InsertarLista(ListaDoble *ListaActual)
{
// Crear una nueva
ListaDoble *NuevaLista= new ListaDoble;

// Actualizar punteros anterior y siguiente

NuevaLista->Anterior=ListaActual;
NuevaLista->Siguiente=SiguienteLista(ListaActual);

if(NuevaLista->Siguiente) // Solo si no es NULL
NuevaLista->Siguiente->Anterior=NuevaLista;

ListaActual->Siguiente=NuevaLista;

return NuevaLista; // Retornar la nueva lista creada
}

// Elimina la lista ´ListaActual´ y devuelve un puntero a la siguiente lista
ListaDoble *EliminarLista(ListaDoble *ListaActual)
{
ListaDoble *Siguiente;

// Actualizar los punteros de las listas anterior y siguiente a la actual

Siguiente=SiguienteLista(ListaActual); // Aprovechar para guardar el siguiente
ListaActual->Anterior->Siguiente=Siguiente;

if(ListaActual->Siguiente) // Solo si no es NULL
ListaActual->Siguiente->Anterior=AnteriorLista(ListaActual);

// Ahora que ya tenemos resueltos los punteros podemos eliminar la lista
delete ListaActual;

return Siguiente;
}

// Test simple
// NOTA: !!La lista 0 no se creo con ´new´ asi que no puede eliminarse!!
int main(void)
{
ListaDoble *Primera=&inicioListaDoble; // Puntero a la primera lista
ListaDoble *OtraLista;
ListaDoble *Ultima;

// Indicar que no hay nada antes y despues
Primera->Anterior=NULL;
Primera->Siguiente=NULL;
Primera->UnDato=0; // Colocar un dato (lo haremos coincidir con su posicion)

OtraLista=InsertarLista(Primera); // Insertar una nueva lista
OtraLista->UnDato=1;

for(int bucle=2; bucle<17; bucle++) // Insertar 15 listas mas
{
OtraLista=InsertarLista(OtraLista);
OtraLista->UnDato=bucle;
}

// Listar los datos (Hay 17 listas - de 0 a 16 -)
OtraLista=Primera; // Del principio al final

printf("Aqui estan todas las listas creadas\n\n");

// Aprovecharemos tambien para borrar una lista
while(OtraLista) // Repetir hasta alcanzar el NULL
{
printf("%u - ",OtraLista->UnDato);

if(OtraLista->UnDato==8) // Si es la 8 borrarla
OtraLista=EliminarLista(OtraLista);
else
OtraLista=SiguienteLista(OtraLista);
}

// Ahora volveremos a listar para ver si se eliminio la entrada novena (8)
// a la par que insertamos una nueva entrada en medio de la lista
// Las anteriores inserciones fueron al final de esta
// Tambien eliminamos una entrada para que se vea que es posible insertar
// y eliminar en cualquier parte sin problemas

OtraLista=Primera; // Del principio al final

printf("\n\nListando de nuevo, ahora no debe salir el 8"
" que borramos antes\n pero si el 17 que insertamos ahora"
" detras del 12\n\n");

while(OtraLista) // Hasta alcanzar el NULL que indica el final
{
Ultima=OtraLista; // Guardar la ultima

printf("%u - ",OtraLista->UnDato);

if(OtraLista->UnDato==2) // Si es la 2 borrarla
OtraLista=EliminarLista(OtraLista);
else
if(OtraLista->UnDato==12) // Si es la 12 insertar una nueva (Nº17)
{
OtraLista=InsertarLista(OtraLista);
OtraLista->UnDato=17; // Colocar aqui un 12 causaria un bucle infinito
}
else
OtraLista=SiguienteLista(OtraLista);
}

// Ahora solo nos falta recorrer la lista al reves

printf("\n\nListando de nuevo, ahora del ultimo al primero."
" El 2 fue eliminado antes\n\n");

OtraLista=Ultima; // Ahora del ultimo al primero

while(OtraLista)
{
printf("%u - ",OtraLista->UnDato);
OtraLista=AnteriorLista(OtraLista);
}

// Ya hemos terminado y debemos liberar la memoria ocupada por las listas

printf("\n\nBorrando todas las listas para liberar la memoria\n");

// RECUERDA:
OtraLista=SiguienteLista(Primera); // La primera lista no se creo con ´new´
// asi que borrar a partir de la segunda

printf("\nEliminando Listas ");
while(OtraLista) // Repetir hasta que sea la ultima (NULL)
{
printf("%u, ",OtraLista->UnDato);
OtraLista=EliminarLista(OtraLista);
}

// La memoria esta libre, insertamos, eliminamos y listamos en ambos sentidos

printf("\n\nTest finalizado OK\n");

return 0;
}
  Respuesta:  Eduard Garcia
Puedes realizar la lista de dos maneras. La puedes realizar simplemente apuntada o doblemente apuntada.
El metodo más adequado y que utilizo siempre es la lista doblemente apuntada, es mas compleja en su realización pero es mucho más fácil de recorrer.

Por la largada de la respuesta, esta en el archivo resp3380.txt

    Pregunta:  3387 - ARCHIVOS EN ESCALAS DE GIRS
Autor:  juan guillermo jaramillo arias
Necesito leer un archivo gráfico en escala de grises, he encontrado que lee archivos bmp a 16 colores y pcx a 256, pero no en escala de grises, agradezco a quien pueda colaborme.
  Respuesta:  Christian González Catalán
Si deseas abrir un archivo que ya esta en escala de grises solo tienes que cargar la paleta utilizando por ejemplo el formato pcx que creo que es el más facil. Si lo que quieres es mostrar en grises uno que está en color es algo distinto, no lo he hecho nunca pero me imagino que es facil. Si necesitas ayuda escribeme nomás...

    Pregunta:  3439 - COMANDOS DEL MODEM
Autor:  Antonio Moyar López
Tengo un modem externo y me gustaría saber como, a través de los comandos de modem, puedo colgar, marcar. Como el modem tiene microfono y altavoz necesito saber la forma de activarlos y desactivarlo.
Estaria muy agradecido a esa mano amiga. Gracias
  Respuesta:  Pedro Pablo
Yo solo sé como se marca. Hay que enviar al modem la siguiente orden:

ATDT<nº teléfono>

si marcas por tonos, o

ATDP<nº teléfono>

si marcas por pulsos.

No hay que poner espacios entre ATP? y el número de teléfono.

Espero que te sirva para algo.

    Pregunta:  3449 - E-MAIL EN BUILDER C++ 1.0
Autor:  Francisco Becerra Pinos
Por favor necesitaria un ejemplo de como leer correo electrónico . Los ejemplos de los libros que he leido no dan error al ejecutarse pero se desconectan y no leen el correo. Uso Builder C++ 1.0 y los componentes estandar.
  Respuesta:  Pedro Pablo
Yo también he tenido problemas con esto. He estado haciendo pruebas para mirar los mensajes desde un programa en C++ Builder, pero tampoco lo he conseguido. Sin embargo, mi problema ha sido otro. Yo sí he conseguido conectarme al servidor, y mirar el número de mensajes. Mi problema es que cuando solicito cualquiera de ellos, el programa efectúa
una operación no válida, y todo termina ahí :-?.
Supongo que estás utilizando el componente TPOP.
Si puedes, mandame alguno de los ejemplos de los que hablas, y los pruebo yo aquí, a ver si a mí también me fallan. Además, si quieres, te mando mi mini-programa.
Mi dirección es [email protected]

    Pregunta:  3522 - CREAR EJECUTABLE EN C++ IDE
Autor:  JUAN JARAMILLO
Cuando se compila un programa que incluye modo grafico en c++ crea un archivo ejecutable, pero ese ejecutable no corre en otra lugar si no estan las librerias de inicializacion de la tarjeta, en este caso aparece error en initgraph, la pregunta es como hago para generar un ejecutable(exe), que pueda ser corrido en donde no este instalado el c o en otra plataforma.
  Respuesta:  Daniel Azkona Coya
Hola,

¿En que sistema operativo y con que compilador trabajas?
Por lo que dices supongo que será en MsDOS y con TurboC o alguno parecido.
Cuando usas modo grafico y luego quieres distribuir el programa, es necesario que al lado del ejecutable suministres las librerias gráficas del compilador.
Otra forma de hacerlo es insertando, en el código fuente, rutinas en ASM que realicen las funciones graficas y de esta manera no necesitas mas que tu ejecutable.
Si quieres más información, dimelo.

    Pregunta:  3532 - YACC (COMPILADOR DE COMPILADORES)
Autor:  German Cravero
Donde Puedo encontrar manuales sobre YACC?
  Respuesta:  Cristian Prieto
Mira, se que existe una direccion en internet en donde se encuentran los manuales o algo por el estilo en donde puedes encontrar algo sobre YACC, Bison o algo asi... en este momento no me la se porque estoy de viaje y cargo la portatil.... escribe a mi correo electronico y te la dare con gusto...
  Respuesta:  Irancho
Mira no se si conoces el libro de aho, llamado compiladores: herramientas y conceptos de la editorial mc graw hill; alli podras encontrar una instrucciones de YACC

    Pregunta:  3537 - MANEJO DE PUERTOS EN VISUAL C++6.0
Autor:  Maocast
Quisiera saber el procedimiento detallado para controlar los puertos serial y paralelo desde VC++6.0 o VB6.0, gracias
  Respuesta:  Carlos Maldonado
Si estas trabajando con V. C++ hay que incluir rutinas en ensamblador para poder leer o escribir datos al puerto.
Yo he utilizado vc++ para unicamente enviar datos al puerto paralelo.
char salida;
asm{
mov DX,378h
or salida,01h; //0000 0001
mov AL,salida
out DX,AL
}
Con esto envias el numero 1 al puerto de la impresora LPT, recuerda que debes escribir el numero en Hexadedimal.
Espero y sea de utilidad, a mi me ha funcionado.Saludos
  Respuesta:  José Manuel Muélledes
Los puertos en Win32 no son mas que ficheros por lo que puedes utilizar el API CreateFile (...) (mira la ayuda para los parámetros. Los nombres de los ficheros a abrir siguen la sintaxis //./COM<n> donde <n> es el numero del puerto.
  Respuesta:  Ana Lilia López Islas
Existen las funciones outportb e inportb que permiten enviar y recibir informacion del puerto deseado.
Su prototipo esta en dos.h y la sintaxis es:
outportb(#puerto deseado, dato a enviar)

    Pregunta:  3539 - COMUNICACIONES Y WINDOWS API-16BITS
Autor:  Víctor Tapias
Debo hacer un programa para comunicaciones por puerto serie en BORLAND C++. Este debe ser capaz de recibir y enviar cadenas de caracteres. El problema es que no se la forma de hacer que envíe la cadena entera de una sola vez, es decir, no de carácter en carácter (esto es fácil), si no toda de una vez. No se si esto será posible, igualmente, si no lo es me gustaría saber el porqué. También se que con las API de Windows (16-bits), en concreto la librería "windows.h", esto es posible, pero no tengo nada al respecto, así que si tuvierais o conocierais de algún manual al respecto, os agradecería que alguien me lo pasara, me facilitara su ubicación o simplemente, si es un libro, me diga el titulo y el autor, solo de las de 16-bits por favor.
Gracias a todos y un saludo.
  Respuesta:  Richard Mac
En el Borland 4.0 además de las librerías windows.h, estan las winsock.h con esta función:

Description Send data on a connected socket.

#include <winsock.h>

int PASCAL FAR send ( SOCKET s, const char FAR * buf, int len, int flags );

s A descriptor identifying a connected socket.

buf A buffer containing the data to be transmitted.

len The length of the data in buf.

flags Specifies the way in which the call is made.

    Pregunta:  3550 - LIBRO SOBRE VISUAL C++
Autor:  uriel Rivera
Estoy empezando a programar en visual c++, tengo conocimientos de pascal, clipper y foxpro, pero visual c++ es completamente nuevo para mi. Que libro, autor y de que editorial me recomiendan (que sea claro y con bastantes ejemplos) para poderlo comprar y consultarlo.

gracias
  Respuesta:  Quique Marti
Si tienes conocimientos de C/C++, un muy buen libro es "Programación avanzada con Visual C++ " de David J. Kruglinski, editorial McGraw-Hill, serie Microsoft Press.
Si no los tienes, un consejo sería aprender un poco de C++ antes de aventurarte con este libro y con cualquier otro sobre Visual C++.

|<  <<  12 13 14 15 16 17 18 19 20 21 22  >>  >|