|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - nicokiki
Páginas: 1 ... 5 6 [7] 8 9 ... 12
151
« en: Domingo 16 de Mayo de 2004, 20:04 »
Hola tiwas!!!!
Te cuento q
152
« en: Domingo 16 de Mayo de 2004, 17:22 »
Hola de nuevo!!
Los arreglos en C/C++ se empiezan a contar desde cero asi q va de 0-5 para referenciarlos. En cuanto a por q no te anda, yo calculo porque las matrices en C/C++ se referencian primero por la columna y despues por la fila, o sea, deberias hacer esto:
void Disparo(int fila, int columna) {
if ( (fila < CANTIDADFILAS) && (columna < CANTIDADCOLUMNAS) ) { if(Matriz[columna][fila]==1) printf("\nTocado"); else printf("\nFallaste"); } }
Lo q estas haciendo mal es q en esta funcion tuya no estaba recibiendo lo q ingresaba el usuario, o sea, no le pasabas la fila y la columna por parametro. Estas declarando dos variables locales fila y columna y luego verificabas la matriz en esas coordenadas q es exactamente lo mismo q hacer esto Matriz[0][0] ya q las variables locales son automaticamente inicializadas en cero (supuestamente).
Espero q te sirva
Salu2!!!!!
153
« en: Domingo 16 de Mayo de 2004, 02:30 »
Mira, la verdad es q yo no busque mucho, pero estoy 100% seguro q en www.java.sun.com tiene q haber porque ahi esta todo lo de JAVA. Si no encontras nada, postea una pregunta al foro de JSP del sitio de SUN y ahi hay pibes mas q capos q te responden al toque (a mi me respondieron en 5 minutos algo no tan dificil ni tan facil). Salu2!!!!!!
154
« en: Domingo 16 de Mayo de 2004, 02:04 »
Hola de nuevo!!!!!!
El string tampoco es una tipo de datos C ni una clase de C++. Los "strings" en C/C++ se manejan a traves de punteros a caracteres (no es como en Pascal q tenes un string de 255 caracteres o en JAVA q tenes una clase String, una clase StringBuffer, y asi con todo), o sea, "char*". Para poder manejarlos bien deberias manejar punteros aunque a un nivel bastante simple. Con el uso de char*, para poder realizar las operaciones basicas y q sean standard deberias incluir las librerias q te permiten hacer estas operaciones: strcpy() strcat() strlen() strstr() Con esas deberia alcanzar y mirando las man pages o la MSDN te apareceran referencias a mil mas q son muy utiles.
Ahora, si estuvieras programando en MFC, podrias usar CString como dato "string", o como te dije antes, tambien bajo consola, MFC o lo q sea de GNU/LINUX podes usar los string de la STL, pero..............string como dijiste vos, se puede???? si se puede, quien es el q implemento eso??? o es algo q desarrollaste vos??? Yo tengo entendido y creo no estar equivocado q el string como dijiste vos no existe y si llegara a existir dudo q sea ANSI.
Bueno, te dejo, salu2!!!!!!!!!!
155
« en: Domingo 16 de Mayo de 2004, 01:52 »
Hola de nuevo!!!
Lo primero q deberias hacer para no mandarte en una de meterte en memoria fuera de los limites y q el resultado sea inesperado, es checkear q tanto x como y sean menores o iguales q la dimension de la matriz (CANTIDADCOLUMNAS, CANTIDADFILAS). Una vez q cumple con esto, estas seguro de estar en el rango de coordenadas de la matriz. Luego, con esas coordenadas haces lo q te dije antes:
if ( Matriz[columna][fila] == 1 ) cout << "Le pegaste" << endl; else cout << "Le erraste" << endl;
Donde columna y fila son las coordenadas ingresadas por el usuario.
Salu2!!!!!
156
« en: Sábado 15 de Mayo de 2004, 22:06 »
Hola!!!!!!
Mira, no entiendo q es lo q queres. Queres a partir de unas coordenadas ver el contenido de la matriz en ellas??? Si es eso es facil: if ( Matriz[columna][fila] == 1 ) cout << "Le pegaste" << endl; else cout << "Le erraste" << endl;
No se si era eso,
Salu2!!!!!
157
« en: Sábado 15 de Mayo de 2004, 21:59 »
Hola!!!!!!
Antes q nada la clase String (o el tipo de dato String) como en JAVA no existe en C/C++ por si sola. Vos podes haberte creado una propia pero no es algo standard salvo q sea el de la STL y hayas hecho algo asi:
Typedef std::string String;
y ahi no habria problemas (ojo, no me acuerdo si el typedef iba con mayuscula al principio).
Lo otro q veo q estas haciendo mal es q le estas pusheando al vector el mismo vector, o sea, esta mal eso. Ahhhhhh, estoy viendo q v es de tipo valor y tambien de tipo vector<valor>. Lo q no entiendo es q eso ni te deberia compilar porque tenes dos variables con el mismo nombre. Lo q deberias hacer es algo asi:
Valor MiValor(conocido, atr); //conocido ya seteado lo mismo q atr tal //cual lo hiciste
v.push_back(MiValor);
Espero q haya servido.
P.D.: La STL es mas q agradable te digo, salvo q vos hayas hecho algo mejor q no pierda memoria ni nada por ningun lado, q tenga como 40 metodos, q corra en ambientes UNIX, no se, me parece q es algo bueno o no????
Salu2!!!!
158
« en: Sábado 15 de Mayo de 2004, 18:41 »
Hola!!!!!!!! 3.5E14 es igual a 3.5 x 10^14, o sea, es notacion cientifica
Punto(o coma como lo llamas vos) flotante es un tipo de datos conocido como float en C/C++. Las maquinas representan los numeros usando este tipo de datos: mantisa + exponente. La mantisa vendria a ser 35 y el exponente 14 en el ejmplo de recien. Se llama punto flotante porque se acomoda la coma un lugar a la derecha del 1º digito. Bueno, la verdad es q es muy largo el tema del punto flotante pero la idea es esa. El tema de punto flotante es q los hay de simple, doble o etc precision. En la maquina hay de simple y doble precision. Uno es mas "preciso" q el otro pero ocupa mas espacio.
Espero q te hay servido
Salu2!!!!!
159
« en: Sábado 15 de Mayo de 2004, 14:18 »
Hola!!!!!!
Mira no entiendo algo: 1º) A DNI solo lo declaraste pero nunca lo instanciaste 2º) Cuando lees del archivo y preguntas si estas en un espacio le asignas a una variable Car q no se q es, pero asumo q es una auxiliar, un caracter 10 veces, pero ese caracter lo vas perdiendo en la siguiente asignacion, o sea, vos haces esto: car = 1; car = 3; car = 5;
y si miras eso te das cuenta q para q asignas 1,3 y 5 si solo te queda "vivo" el 5??
Lo otro es q el strcat es para concatenar cadenas, a mi me parece q lo q vos queres hacer es leer de aun caracter y asignarselo a DNI y a medida q seguis leyendo se lo queres concatenar a DNI o algo asi, pero me parece q seria mas piola si tu variable Car es directamente DNI y reemplazaria esto: for(i = 0; i<10; i++) car = fgetc(fp);
por esto: for(i = 0; i < TAMANIODNI, i++) DNI = fgetc(fp);
y LISTO
No se, fijate
Salu2!!!!!
160
« en: Jueves 13 de Mayo de 2004, 20:11 »
Efectivamente los objetos q estas usando son locales al scope donde los declaras. Es por eso q lo q deberias hacer es declarar el objeto no dentro del IF y luego dentro del IF instanciarlo. Algo asi:
//Le cargo un valor valido Fecha d1 = null;
if x { d1 = new Fecha(....) // con todos los datos enteros } else { d1 = new Fecha(.....) // con el segundo dato String }
d1.getFecha()
Y listo
Salu2!!!!!!!!!!!!
161
« en: Miércoles 12 de Mayo de 2004, 19:54 »
Hola de nuevo!!
1º) En disco.h inclui stdio.h y string.h y en disco.c/cpp inclui disco.h y eso tiene q andar si o si.
2º) Tal cual vos lo dijiste. La verdad es q si la inicializas a la variable en el .h deberia andar pero no se, no me fije nunca.
Salu2!!!!!!
162
« en: Miércoles 12 de Mayo de 2004, 03:43 »
Hola!!!!!!!
1º Pregunta: Cuando se incluye algun tipo de libreria standard q viene con el compilador, por mas q vos la incluyas mil veces, en tu proyecto se hace una sola vez debido a instrucciones al PRE-Compilador para q esto ocurra. Lo q yo te recomiendo, es estendible a partir de este ejemplo: clasepadre.h clasehija.h principal.c/cpp
En clasepadre.h inclui todo lo q necesite. En clasehija.h inclui a clasepadre.h mas todo lo referente al archivo donde estas En principal.c/cpp inclui a clasehija.h mas todo lo q necesite este archivo.
A la hora de escribir un punto .h es mas q eficiente y muchas veces necesarios el uso de instrucciones al pre-compilador de este estilo: #ifndef _CLASEPADRE_H #define _CLASEPADRE_H
//Aca pones lo q va realmente en tu .h
#endif
Con esto evitas la referencia circular a .h
Espero q haya sido claro en esto.
2º Pregunta: Si queres usar variables globales a todo tu proyecto deberias anteponerle "extern" en el .h donde este declarada la misma. Pensa q declaracion no es lo mismo q definicion (implementacion). La definicion de la variable la haces en el .c/cpp y luego es compartido ese valor en todo tu proyecto. Si quisieras usar globales locales a tu archivo sin posibilidad de confusion con otra variable con el mismo nombre en otro archivo de tu proyecto, deberias anteponerle la palabra reservada "static".
3º Pregunta: Lo optimo es incluir .h desde algun .h . Deberia ser asi: (DISCO.h) #include "Estructura.h" #include "Memoria.h"
(MEMORIA.h) #include "Estructura.h"
(PRINCIPAL.h) #include "Estructura.h"
Si en esto no haces lo q te dije q hagas en el punto 1 , se generaria una referencia circular y no te andaria nada de nada.
Bueno, espero q haya sido claro y q haya servido
Salu2!!!!!
Desde Buenos Aires
Nicolas
163
« en: Viernes 7 de Mayo de 2004, 13:53 »
Se gun tengo la entendido, la API de WINDOWS es tanto para ser usada desde C o desde C++, pero bueno.... En www.dcp.com.ar hay cosas buenas y en www.recursosprog.com.ar tambien. En este ultimo sitio hay mas cosas "teoricas" de "la cosa". Salu2!!!!!!!!
164
« en: Lunes 3 de Mayo de 2004, 02:57 »
Gracias. Muy bueno, lo q mandaste. No sabia como unir las calls q tenia, pero ahora si. Ahora, una ultima pregunta: como sabemos, la extension de los archivos en GNU/LINUX no significa nada, o sea, q un archivo termine en .txt no implica q sea un archivo de texto, bueno, eso es lo q quiero, saber el tipo de archivo q estoy leyendo. Si lo saben buenisimo
Salu2!!!!!
165
« en: Domingo 2 de Mayo de 2004, 01:34 »
Hola gente, estoy haciendo un sistemita q comparte archivos en una red local y un servidor para mandarlos. El tema del servidor esta listo pero tengo un problema con los archivos. El cliente ingresa el directorio a compartir con los demas y lo q no se como hacer es para obtener todos los archivos q estan en ese sirectorio. O, sea, se como abrrir un directorio, q es con OPENDIR y se como obtener los datos de los archivos con LSTAT o STAT, pero no se como abrir un directorio e ir moviendome por los arhcivos.
Se entiende???
Salu2"!!!!!!
166
« en: Domingo 2 de Mayo de 2004, 00:54 »
No entiendo q hacen y de donde vienen, si dieras la descripcion de lo q queres, capaz q podria llegar a serte util, pero bueno..
Salu2!!!!
167
« en: Jueves 29 de Abril de 2004, 02:41 »
Hola de nuevo. Hice algo, asi q miren el foro de C/C++ q escribi algo ahi
Salu2!!!!!
168
« en: Jueves 29 de Abril de 2004, 02:36 »
Ya lo solucione Salu2!!!! P.D.: si a alguien le interesa la parte de XML del proyecto q estoy haciendo, pidanmelo y se los dare. Quizas, si yo veia esto q estoy ofreciendo ahora una o dos semanas atras, realmente me interesaria. La idea es escribir un mini tutorial del uso de esta libreria, aplicado a mi caso en particular, pero el problema es q no tengo mucho tiempo. Tambien quisiera escribir algo de como conectarse a Interbase desde JAVA. Si a alguien le interesa, insisto, diganmelo. No sere un crack en esto, pero puede ser muy util. Les aclaro de antemano q uso C++ y no C, o sea, todo es OOP en mi proyecto aunque la libxml2 este escrita en C. Salu2!!!! nuevamente
169
« en: Miércoles 28 de Abril de 2004, 04:53 »
Hola gente, les cuento q ya solucione el temita anterior de una manera medio india, pero esta solucionado al fin y al cabo. En conclusion, ya logre parsear un XML de un string de la stl. Ahora se viene el problema inverso. El problema q ahora me lleva a escribirles es q no se como guardar el XML genrado en un string de la STL ni en un char* ni en un xmlChar* ni en nada de eso (porque de cualquiera de esas tres formas, con un simple casteo, puedo cargarlo en un string de la STL). Lo q si se hacer es guardar el XML en un archivo.xml (haciendo xmlSaveFileEnc(const char* Filename, xmlDocPtr Document, (const xmlChar*)Encoding ); ) pero en mi caso eso es innecesario ya q lo q tengo en XML viaja por sockets. Lo q querria saber seria algo asi q no se si existe: "xmlChar* xmlSaveMemory(Document, encoding)" y los q encontre en los .h de la libreria no me resultan intuitivos a la vista. Si alguien sabe como hacer esto q quiero, por favor escucho ofertas.
Salu2!!!!
170
« en: Martes 27 de Abril de 2004, 06:25 »
Hola de nuevo, les quiero corregir unas cositas q escribi por ahi: 1.- El tag archivo me olvide de cerrarlo, perdon, pero no es q copie y pegue cosas, lo hice todo en el momento. 2.- Puse "cout" entre todos los "if", o sea, cuando iba geteando el contenido del XML y los tira perfecto por pantalla, asi q el problema es q los estoy seteando mal en la clase y no me doy ecuenta del error.
Salu2!!!!!!
171
« en: Martes 27 de Abril de 2004, 06:23 »
Hola gente, les escribo para preguntarles algo q se q es una pavada pero q me esta volviendo loco. Estoy haciendo una clase "CXMLParser" y me surgio una duda. Antes q nada, les cuento q estoy usando la libxml2 bajo GNU/LINUX. Personalmente tengo la distribucion Mandrake 9.2, pero creo q no va al caso todo esto.
Les hago una pequeña introduccion: Primero les digo q esto en si no es exactamente lo q estoy haciendo (porque seria demasiado largo de explicar y no va al problema en cuestion) pero la adaptacion q estoy pensando sirve perfectamente y creo q queda bastante clara. Tengo una clase "CInfoDeArchivos", la cual tiene como atributos al nombre del archivo, la fecha de modificacion y al tamaño. Todos estos atributos son de tipo std::string . Tengo obviamente un "seter" para cada atributo. La clase "CXMLParser" tiene como atributo a un objeto de la clase"CInfoDeArchivos" y por supuesto al "seter" correspondiente. El problema viene en esta parte del XML q tengo: ......... <ListaDeArchivos> <Archivo nombre='introduccion.txt' tamanio='5Kb' fechamodif='05042004'> <Archivo nombre='hola.txt' tamanio='50Kb' fechamodif='23022004'> <Archivo nombre='nada.txt' tamanio='37Kb' fechamodif='05092002'> <ListaDeArchivos> ...........
Recorro perfectamente hasta q entro en ListaDeAcrhivos, entro perfectamente y hago algo asi:
xmlChar* ContenidoNombre; xmlChar* ContenidoTamanio; xmlChar* ContenidoFecha; xmlAttr* Atributo; CInfoDeArchivos Info;
Atributo = (xmlAttr *)NodoActual->properties;
while (Atributo != NULL) { if (!xmlStrcmp(Atributo->name, (const xmlChar *) "NOMBRE")) { ContenidoNombre = xmlGetProp(NodoActual, Atributo->name); Info.setNombre(ContenidoNombre); xmlFree(ContenidoNombre); } if (!xmlStrcmp(Atributo->name, (const xmlChar *) "TAMANIO")) { ContenidoTamanio = xmlGetProp(NodoActual, Atributo->name); Info.setTamanio(ContenidoTamanio); xmlFree(ContenidoTamanio); } if (!xmlStrcmp(Atributo->name, (const xmlChar *) "FECHAMODIF")) { ContenidoFecha = xmlGetProp(NodoActual, Atributo->name); Info.setFecha(ContenidoFecha); xmlFree(ContenidoFecha); } Atributo = Atributo->next; } this->getComando().setArchivo(Info);
Y lo q hace la maldita aplicacion es cargar solo de una cosa a la vez. esto entiendo mas o menos porque lo hace, porque recorre los tres atributos del tag <Archivo> pero yo no cargo el "Info" hasta no salir del ultimo scope. Como se ve, lo mio no tiene mucho q ver con el XML, pero quizas el ejemplo sirva de algo. Lo q me esta pasando es q no puedo setear un atributo de un objeto bien. No es q el seter este mal hecho ni nada de eso, es como q esta haciendo algo mal y no me doy cuenta. Aclaro q los xmlFree() deben ir asi porque si no pincha todo.
Les mando salu2 y aquella persona q me pueda dar una mano, se los agradecere
172
« en: Viernes 23 de Abril de 2004, 03:52 »
Lo intente usar pero no se como. Lo q si es q me tiro 7 WARNINGS
Salu2!!!!!
174
« en: Jueves 22 de Abril de 2004, 13:59 »
Antes q nada, perdon para los q ya leyeron este mensaje porque esto mismo lo escribi en la seccion XML, pero me parece q encuadra mejor aca. Ahi va:
Hola a todos de nuevo. Tengo un gran problema y seguramente es debido a q soy demasiado nuevo con el uso de GNU/LINUX. Estoy utilizando KDevelop 3.1.3 (creo) bajo la distribucion MANDRAKE LINUX 9.2 para programar en C++ . Para parsear los docuementos XML deseo utilizar la liberia "libxml2" que me provee la distribucion q tengo.
Como es que hago para hacer un include de este tipo?? me refiero a como importo librerias con el KDevelop:
"#include <libxml/parser.h>"
ya que cuando hago esto, el programa pincha porque no lo encuentra, entonces hago esto:
"#include </usr/include/libxml2/libxml/parser.h>"
pero sigue pinchando.
A lo q voy es q por ejemplo en Visual Studio (obviamente bajo WINDOWS) en Project->Setting->blñablabla hay un cuadrito donde ponemos las librerias q vamos a utilizar, por ejemplo cuando usamos sockets o threads. Bueno, justamente eso es lo q necesito pero para KDevelop.
Si alguien me puede dar una mano, gracias
Sau2!!!!!
175
« en: Miércoles 21 de Abril de 2004, 03:55 »
Te dije cualquier cosa aunque era lo q te queria decir Ahi va lo verdadero:
doc = xmlParseFile(docname); /*si el documento esta mal parseado, aviso*/ if (doc == NULL ) { /*Imprimo en el archivo*/ fprintf(stderr,"Document not parsed successfully. \n"); return; }
Espero q sirva
Salu2!!!!!
Páginas: 1 ... 5 6 [7] 8 9 ... 12
|
|
|