Hay un total de 745 Preguntas. | << >> |
Pregunta: | 31 - INT. O FORMA DE LEER/ESCRIBIR EL NUMERO DE SERIE DEL VOLUMEN |
Autor: | JairA. |
Deseo conocer la interrupción o la forma de leer/escribir el numero de serie del volumen que aparece al dar DIR y que es asignado automáticamente al formatear un disco o disquete, preferiblemente la forma de accesarlo desde C o Assembler, no algo hecho. Gracias |
Respuesta: | Alvaro Salvatierra |
Te sugiero usar la función API de Windows: GetVolumeInformation() , en su primer parámetro se especifica la unidad ( p.ej. "A:" o NULL para la unidad desde donde se ejecuta la llamada) y en el cuarto parámetro se especifica el puntero a la variable que recibirá el número de volumen ( p.ej. & dwvolserial, siendo dwvolserial definido como unsigned long)
Saludos |
Respuesta: | Vicente Serrano |
1.-Crea un fichero con un directorio (el de trabajo)(Ejemplo: DIR >ficheros.txt) 2.-Dentro del programa, abre el fichero.txt, en bajo nivel, y puedes tomas el numero del Disco Duro. 3.-Puedes borrar el fichero.txt VSF |
Respuesta: | Pablo Castrillon |
Este es un archivo por lotes (tomado de la PC Magazine) que utiliza el debug del DOS, con el puede modificar el numero serial de cualquier unidad de disco. Espero que esto te sirva de respuesta. Ver resp31.txt |
Respuesta: | Endos |
Este programa de ejemplo viene incluido con el Borland C++. El programa es específico de este compilador, pero es facilmente adaptable a ensamblador. Ver resp31b.txt |
Pregunta: | 42 - IMPLEMENTAR LAS MATRICES CON PUNTEROS EN C++ |
Autor: | Daniel |
Parece ser que hubo problemas con una pregunta que hice el otro día, así que voy a intentar aclararla: Estoy intentando implementar el tipo matrices (en C++). La manera lógica era, como ha respondido la mayoría de la gente, hacerlo con arrays. Pero esto tiene el problema de que tienes que imponer el tamaño de la matriz en el momento de la programación (si no fuera así, por favor, decirme como se hace), lo que limita mucho el programa. La otra forma lógica de hacerlo es con punteros. Con punteros té quitas el problema del tamaño, ya que en tiempo de ejecución del programa puedes decidir qué tamaño va a tener la matriz con la que vas a trabajar. Pero aparece el problema de la memoria (en el supuesto de trabajar con matrices muy grandes). Y mi pregunta sería : ¿Implementando las matrices con punteros, hay alguna forma especialmente eficiente de hacerlo? Esperando que quede aclarada la pregunta, espero vuestra contestación. |
Respuesta: | Daniel Salazar |
Hola Tocayo:
Lo que quieres hacer (matrices vía punteros) es posible con punteros dobles. Te coloco este ejemplo para enteros: int **matriz,filas,columnas; void main(){ //puedes leer los valores de filas y columnas como te convenga //acá los coloco como una asignación simple filas = 5; columnas = 3; matriz = new int* [filas]; for(int i=0;i<filas;i++) matriz[i] = new int [columnas]; //luego puedes acceder a cada posición con la notación matricial matriz[1][1] = 10; } //Espero te sea útil |
Respuesta: | jenny jenny |
hola:
con la lista de la que te hablan los demas podes usar una funcion llamada malloc que va piediendo memoria a medida que la vas usando o necesitando espero que te sirva bye pd: en el help tenes los parametros que le tenes que pasar lo que te debue es la direccion de memoria en la que vas a guardar ese nodo bye |
Respuesta: | alguien |
Lo que quieres hacer se puede hacer de varias maneras, se denomina array indeterminado; lo puedes crear por lista enlazada, arbol binario, técnicas hash(extraer el indice de un elemento del array directamente de la información guardada en él) y por array de punteros; es demasiado extenso para explicarlo aquí con detenimiento, por lo que te ruego te informes con un buen manual... |
Respuesta: | Sergio |
Si lo que pretendes es implementar las matrices has de hacerlo con una lista doblemente enlazada de punteros en caso de dos dimensiones, triplemente enlazada para tres, etc... donde el primer nivel serian las filas de la matriz, el segundo las columnas de una fila en cuestión, y así sucesivamente. En el caso de querer implementar matrices casi vacías (donde un valor se repite muchas veces), puedes prescindir de codificar este valor e implementar en la lista solo los valores que son distintos a este, incluyendo en nodo de la lista índices que te indiquen la posición de ese elemento, por ejemplo, si quieres implementar la matriz identidad de 4x4 seria algo parecido a [1000][0100][0010][0001], como el valor cero se repite mucho, se codifica solo los valores 1, de manera que cada nodo de la lista tiene un cursor que indica fila y columna del valor distindo de cero, algo parecido a [fila1,col1:1][fila2,col2:1][fila3,col3:1][fila4,col4:1] de forma que consigues representar un elemento bidimensional (matriz de 4x4) con una sola lista unidimensional, lo que simplifica el trabajo de programación y optimiza la ocupación de memoria. |
Respuesta: | Willser F. González C. |
La siguiente estructura implementa una matriz usando listas enlazadas:typedef struct NodoLa clave está en implementar las funciones que permitan ubicarse en una posición [i,j] de la lista en forma de matriz 2D. |
Respuesta: | Fernando Canzani |
Hola, soy de Uruguay, para implementar la clase matriz, te aconsejo que lo agas con punteros, con ellos te puedes crear arrays dinamicos que especificas el tamaño en tiempo de compilacion. ej: class array {private: int tamanio;con esto te definis un array de longitud tamanio en tiempo de ejecucion;
|
Pregunta: | 43 - BASES DE DATOS EN VISUAL C++ 4.0 |
Autor: | Mariano |
Cuando creo un proyecto en Visual C++ 4.0 y quiero que este tenga soporte para base de datos, me da dos opciones ya sea por la DAO o por la ODBC, pero en ambas me exigen ingresar una base de datos ya creada e indicar las tablas que uso de ellas. Sin embargo en la aplicación que yo estoy creando, el usuario me puede indicar cualquier nombre de base de datos y cualquier tabla. Existe alguna forma de cambiar la BD y sus tablas en el momento de ejecución? Bueno si puede , por favor envíame la respuesta pronto. Te estaré eternamente agradecido. Hasta Pronto... |
Respuesta: | Cesar Armando Cruz Mendoza |
Hola Mariano:
No es necesario que especifiques algún tipo de base de datos previamente, solo basta con que establezcas tu conexión con el ADO o el ODBC adecuado al tipo de tabla que quieres utilizar, para ello Microsoft ya te ofrece varios ADO que te permiten interactuar con diversos tipos de tablas. Dices que tu aplicación debe de ser abierta a cualquier tipo de tabla que el usuario especifique, eso es sencillo, basta con que identifiques el tipo de archivo que esta seleccionando (pudiera ayudarte la extensión del archivo) y en base a esto establecer la conexión con el ADO indicado. Espero que esto te sea de ayuda. Yo estoy terminando precisamente una aplicación en C que maneja archivos DBF por medio de SQL. Saludos. |
Respuesta: | Alfredo Barrios |
Pero por supuesto, crea el proyecto normal, con soporte para base de datos, luego busca donde grabo el nombre de la base datos, entonces intercambia ese dato por una variable, alimenta la variable desde un archivo ini ó como parametro ya sea al inicio de la aplicación o con un cuadro de dialogo que crees para que el usuario indique el archivo y las tablas. |
Respuesta: | Alonso Salazar |
Yo tengo el VC5 pero no creo que cambie mucho la interfase del Visual Studio. Crea tu aplicación comúnmente, el AppWizard te creara una clase que hereda de CDaoRecordset en caso de DAO o de CRecordset en caso de ODBC, esta clase contiene una función miembro llamada GetDefultDbName la cual se utiliza para la construcción del objeto y esta retorna la dirección de la base de datos necesaria, luego existe también otra que se llama GetDefualtSQL la cual retornara la tabla que se desea abrir, con lo indicado anteriormente podrás abrir cualquier base de datos indicada, el único problema es que deberás manejar los campos a mano, debido a que cada campo de la tabla que selecciones en el Wizzard este automáticamente te lo pone como un dato miembro del Record Set y de esta manera se maneja los campos si no sabes o no tienes una noción de los nombres o tipos de datos que se abrirán deberás manejas esto a mano como un vaquero, existe un ejemplo en el VC que yo tengo en el cual uno selecciona una base de datos y el programa lee todas las tablas y campos que se tienen en la BD y me permite cambiar y otras cosas si lo necesitas comunícate con migo y te lo doy el ejemplo. |
Pregunta: | 47 - CONTROLAR EL RATON EN C |
Autor: | Ramon |
Me gustaria saber las instrucciones en C para controlar el ratón. Estoy haciendo un programa de dibujo estilo Paintbrush en Turbo C++ 1.01. |
Respuesta: | RENE CABALLERO |
tengo un programa estilo paint en borland c++ 5.01 con manejo del raton,seleccion de color ,lineas y rellenos. |
Respuesta: | Hugo Aquino Navarrete |
Actualmente cuento con una rutina para poder manejar el ratón con la posiblidad de añadir más punteros a una resolución mayor de 640 x 480 a 16 colores, o sea 640 x 480, 800 x 600, 1024 x 768 y 1280 x 1024 todas a 256 colores, así como el BGI para inicializar el monitor a esas resoluciones y por lo tanto darle mayor presentación a su interfaz gráfica. |
Respuesta: | Nock-fort |
Yo tengo unas más féaciles en ensamblador aquí estan: int posicionvertical(){ asm mov ax, 03h asm int 33h return _CX; CX= posicion vert. } int posicionhorizontal(){ asm mov ax, 03h asm int 33h return _DX; DX= posicon hori. } int botonpulsado(){ asm mov ax, 03h asm int 33h return _BX; BX = boton pulsado 0 = ningun boton } 1 = izq. 2 = der. int mostrarpuntero(){ asm mov ax, 01h asm int 33h } int ocultarpuntero(){ asm mov ax, 02h asm int 33h } para moverlo registro de entrada ax = 04h cx = posicion horizontal dx = posicion vertical |
Respuesta: | Gustavo Muro |
debido a la demanda de la rutina aqui esta resp47.txt |
Respuesta: | Gustavo Muro |
Tengo una rutina de manejo de ratón, si te interesa, mándame un email. |
Respuesta: | Jorge Gutierrez |
Si te interesa poder crear tus propias funciones que manipulen el raton, te recomiendo que utilices las interrupciones del dos, (que en este caso le corresponde a la interrupcion 33H). Algunos ejemplos son los siguientes: COMPROBAR LA INSTALACIÓN DEL MOUSE void comprueba (void){PARA VISUALIZAR EL CURSOR DEL RATON |
Respuesta: | Sergio Pacho |
Puedes encontrar una rutina para controlar el ratón en http://www.programando.com/c/cworld |
Pregunta: | 69 - AYUDA EN VISUAL C++ 5 |
Autor: | Alonso |
Necesito algún buen samaritano que me ayude con el Visual C++ 5 ya que no he podido comprender el método de programación que propone Microsoft en este, he logrado hacer algunas aplicaciones pero solo con ayuda de libros, necesito alguna guía para la MFC 4.21 y sobre el ambiente de programación, alguien me puede ayudar o indicar donde puedo conseguir información sobre esto, ya que Microsoft en mi país (Costa Rica) ni las escuelas certificadas por ellos tienes personas preparadas para ello. |
Respuesta: | Mano |
Esixte un web, en el que puedes encontrar un manual introductorio al Visual C++ 5.0 http://www.iftech.com. A mi me ha ido muy bien, considerando que como tu hace 3 dias no sabia nada del Visual C++ 5.0 |
Pregunta: | 88 - ENVIAR DATOS A TRAVÉS DEL PUERTO PARALEL |
Autor: | Jesus |
Quisiera saber como podía hacer mis circuitos eléctricos y controlarlos por un programa mío en C++. Para ello, querría saber como enviar un 0 ó un 1 a través del puerto paralelo. Os ruego que contestéis. Gracias. :-) |
Respuesta: | Rosalío Morales Rizo |
Pues yo he utilizado las funciones de C inportb y outportb (para 8 bits) bajo Visual C y no hay ningun problema, bueno el problema se presentaria si corres tu programa bajo un NT (por aquello de las peticiones de acceso a puertos...) Por lo general la dirección de salida para un puerto paralelo se encuentra en la 0x378... asi que si quieres "activar" el bit uno del puerto paralelo (pin 2 del DB25), podría ser: outportb(0x378,1); Ahora bien, si lo que deseas es leer un dato, la entrada esta por lo general en la 0x379 (esto depende de la dirección fisica de tu puerto paralelo...) mmhh no todos los bits de este registro son de entrada, y uno esta invertido... podrias leer entonces con algo como mi_variable=inportb(0x379); Yo he podido leer 8 datos del puerto paralelo juntando la información de la dirección 0x379 y 0x37A... Nota: Las direcciones que pongo no son absolutas cambian de ordenador a ordenador... (asi como puede encontrarse a partir de la dirección 0x378, puede ser que este en la 0x3BC, 0x278,0x2BC,...) |
Respuesta: | Armando Nava |
Es muy sencillo en C cuentas con la funcion outport(889,2); /*Envias un 00000010 a los pines de salida */ /*la configuracion de puerto la puedes encontrar en algun libro de ensamble de computadoras */ //y para leer el puerto unsigned int dato=inport(888); |
Respuesta: | Pachi |
Yo he logrado enviar datos a través del puerto paralelo, a través de una dll (Win95io.dll), si me proporcionas tu dirección electrónica, te la paso, yo le he programado en VB4, pero supongo que no será un problema. |
Respuesta: | Julio Alejandro |
Es fácil, solo tienes que direccionar el puerto de salida y el dato de tipo caracter, si sabes Hexadecimal o Binario podrás fácilmente manipular los 8 bits, esta función esta provada en C++ 3.0void Out(unsigned char dato)Ademas realiza una Or Exclusiva para que si algún pin estaba en 1, lo pone a 0 o si ya había algun dato, lo mantiene. Gracias
|
Respuesta: | Cesar Quispe |
No si tengas nocion de assembler, conocerlo te da mas posibilidades de entenderlo y luego pasarlo a c++ es mas facil, si es asi me gustaria me escribas. El enviar datos por el puerto paralelo es bastante facil, lo unico que tiene que verificar es el puerto presente el el pc, los mas conocidos son 3bch, 278h y 378h, esto lo puedes averiguar utilizando el MSD del DOS. En assembler: **Describire lo que hace el programa: Nota: Como se habra notado el programa acepta todo tipo de datos,pero el que lo desee probar debera hacerlo solo con numeros.Este programa lo he empledo para ver lo que envio y comprobar si es el dato que encuentro a la salida, y ¿como?, facil coloquen un led ala salida de de cada uno de los pines que conforman el bus de datos de la impresora y verifiquen. Codigo segmentEN C++ |
Pregunta: | 108 - IMPLEMENTACIÓN DE LOS METODOS DE HASHING POR DIVISION Y MULT |
Autor: | BastardMan |
Necesito saber la implementación, aunque sea con pseudocodigo, de los metodos de Hashing por division y multiplicación en C o C++, o bien las funciones hash mas utilizadas en programación. Gracias |
Respuesta: | sinapse |
Hash por division:
int hash_div(int numero,int tamano_tabla) { return (numero%tamano_tabla); } Hash por Multiplicacion: Ahora mismo no me acuerdo, pero era muy corta. Escribeme y te la digo |
Respuesta: | Fernando Castro |
Ante todo un saludo. Referente a la implementacion de Hashing o comunmente conocido como implementacion de tablas Hash, decirte que existe varios tipos de Hash. Su existencia se debe fundamentalmente a la teoria de las colisiones en tablas hash. El hashigh ,que creo que lo sabes, consiste en el acceso directo a un registro de una tablas. Para el caso de las colisiones, existe el anterior mente mencinado abierto y cerrado(hashing).Personalmente utiliza el hash por division en modulo, por lo que, si te interesa el codigo de la funcion comunicamelo. Para el caso de hash de division solo habra que cambiar el algoritmo. Es especialmente recomendado en tablas que contengan estructuras. Si me explicas mas a fondo que quieres hacer, te puedo ayudar mas a fondo Saludos |
Respuesta: | Carlos Barrantes |
Revisa la funcion GetSystemMetrics del sistema:Declare Function GetSystemMetrics Lib "User32" (ByVal n As Integer) As IntegerEsta te devuelbe valiosa informacion acerca del sistema, como detectar si el mouse está conectado a la PC, por ejemplo. |
Pregunta: | 114 - LEER ARCHIVOS GRÁFICOS |
Autor: | Jorge |
Como puedo leer un archivo Gif (o cualquier otro) para poder mostrarlo en pantalla en C/C++ |
Respuesta: | David Esparza |
Puedo facilitarte la forma de leer un fichero .PCX o .BMP. Lo parte más importante es la estructura a utilizar para leer el fichero. Si te interesa puedo mandarte unos listados de ejemplo. |
Respuesta: | Sergio Pacho |
Puedes encontrar una rutina para leer archivos .PCX en http://www.programando.com/c/cworld |
Respuesta: | Jose Manjon |
Para leer archivos graficos existen multitud de librerias que te pueden resolver la papeleta ... Te aconsejo un paquete de librerias que se llama CIMAGE, con este paquete puedes leer imagenes BMP,JPG,GIF,PCX,PNG,etc .. Ademas incluye una demo para que veas la utilizacion de cada uno de los metodos ... Este paquete lo puedes encontrar en: suerte |
Respuesta: | Douglas Cruz |
hola, tengo un ejemplo que lee un archivo gif, si lo necesitas aun mandame un correo |
Pregunta: | 118 - LISTADO DE INTERRUPCIONES EN C+ |
Autor: | JuanCarlos |
Hola Amigos, mi pregunta es si alguien tiene un listado completo de interrupciones en C++. De antemano Gracias!!! |
Respuesta: | Rosalío Morales Rizo |
0H Divide by zero exception 1H Single step 2H Nonmaskable 3H Breakpoint 4H Overflow 5H Print screen (BIOS) 6H RESERVADA 7H RESERVADA 8H Time of day service (Hardware) 9H Keyboard service (Hardware) AH RESERVADA BH Communications service COM2 CH Communications service COM1 DH Disk service(IRQ5 fixed disk adapter) EH Diskette service(IRQ6 floopy disk adapter) FH Printer service (IRQ7 LPT1) 10H Video I/O 11H Equipment check 12H Memory size 13H Disk I/O 14H Comuunications 15H PC:cassette, AT: extended services 16H Keyboard I/O 17H Printer 18H Resident BASIC 19H Bootstrap 1AH Time of day 1BH Keyboard break 1CH Timer tick 1DH Video parameters 1EH Disk parameters 1FH Video graphics 20H Program termination 21H General function services 22H Terminate address 23H CTRL-C exit address 24H Critical-error-handler address 25H Absolute disk read 26H Absoulte disk write 27H Terminate/stay resident 28H Idle handler 29H . . RESERVADAS... tanto por DOS, BIOS... . 66H 68H . . SIN UTILIZAR... . 6FH a esta lista le faltan unas cuantas... pero al menos es una idea de las existentes... |
Respuesta: | Enrique Carro |
Si te refieres a las interrupciones del DOS, existe una lista (inmensa), recopilada por Ralf Brown, donde encontraras todas las documentadas y una gran parte de las que no. Puedes encontrarla en multitud de sitios en la red (buscando por el nombre del autor). Uno de estos lugares es el Grupo Universitario de Informatica (GUI), en la siguiente direccion: ftp://ftp.gui.uva.es/pub/doc/interrupt/dos En otros tiempos, esa misma asociacion proporcionaba dicho listado en formato impreso, a precio de costo. No se si seguiran haciendolo. |
Respuesta: | Jorge Gutierrez Bustos |
Hola amigo ... En cuanto a tu peticion te mando esta lista que contiene la lista de interrupciones, si quieres las funciones mandame un e-mail con la interrupcion que te intereso, y yo te mandare la lista de funciones para esa interrupcion. EN FORMA GENERAL SON ESTAS (PERO FALTA SUS FUNCIONES) 10H Presenta los servicios de video 13H Servicios de Disco 14H Servicios de Cominicaci¢n en serie 16H Servicios de teclado 17H Servicios de Impresora 1AH servicios de reloj 11H Obtener configuracion 12H Obtener memoria convencional 18h Llamar ROM-BASIC 19H Reinicializar el sistema 15H SERVICIOS VARIOS // SUS FUNCIONES SON MUCHAS E INTERESANTES!!! :) UFF. SON TODAS LAS QUE HE APRENDIDO :) PD. NO LISTE SUS FUNCIONES PORQUE VERDADERAMENTE SON MUCHAS Y EN TODO UN DIA NO TERMINARIA.. |
Pregunta: | 124 - SALTAR A LA DIRECCION DE MEMORIA ffff:000 EN BORLAND C++ |
Autor: | Domingo |
Tengo que hacer un salto a la dirección de memoria, y no sé como hacerlo desde Borland C++ 3.0. Una posible solución es utilizar asm {jmp..} pero no sé lo que va despues de jmp. |
Respuesta: | Miguel Sepúlveda |
Creo que puede ser de las siguientes formas:asm jmp ffff:0000 óEspero que te sirva. Hasta otra.
|
Respuesta: | Endos |
Supongo que deseas hacer un ´reboot´ del ordenador y por eso deseas llamar esa dirección. Esto compila con Borland C++ 4.5, supongo que con la versión 3.0 también.void reset(void) |
|< << 1 2 3 4 5 6 7 8 9 10 11 >> >| |