|
Mostrar Temas
|
Páginas: 1 [2] 3 4 5 6 7 8 9
|
11
|
Programación / Programación C/C++ / Mi ejemplo de array de punteros con template
|
en: 7 Octubre 2016, 15:58 pm
|
buenas a todos me gustaria compartiles algo que estoy haciendo para aprender mas sobre los punteros y los templates, antes que nada se que podria usar una lista enlazada y podria evitarme lo de asignarle memoria dinamica con new pero quiero tenerla asi controlada con tamano fijo. me gustaria sus opiniones. template<class T> class FixedArrayTemplate { private : int max_size; int size; T *Allocate_array; bool Correct; public: FixedArrayTemplate(const unsigned int _size) { Correct = CreateMemoryArray(_size); } bool Push(T element) { if(size < max_size) { Allocate_array[size] = element; size++; return true; } else return false; } bool isCorrect(){return Correct;} void Clean() { if(this->Correct) delete[] this->Allocate_array; this->Allocate_array = NULL; this->Correct = false; size = 0; max_size = 0; } bool CreateMemoryArray(int _size) { if(this->isCorrect()) this->Clean(); max_size = _size; size = 0; Allocate_array = new T[_size]; if(Allocate_array == 0) { Correct = false; return Correct; } else { Correct = true; return Correct; } } T getElement(int e) { if(( e > 0 && e < size ) && e < this->max_size ) { if(this->Correct) return this->Allocate_array[e - 1]; } else { if(this->Correct) return this->Allocate_array[size - 1]; } } ~FixedArrayTemplate() { Clean(); } }; int main() { char *buffer1 ="buffer 1 "; char *buffer2 = "buffer 2"; char *buffer3 = "buffer 3"; char *buffer4 = "buffer 4"; char *buffer5 = "buffer 5"; FixedArrayTemplate<char *>miArray(20); if(miArray.isCorrect()) { miArray.Push(buffer1); miArray.Push(buffer2); miArray.Push(buffer); miArray.Push(buffer3); miArray.Push(buffer4); miArray.Push(buffer5); cout << miArray.getElement(0)<<endl; cout << miArray.getElement(1)<<endl; cout << miArray.getElement(2)<<endl; cout << miArray.getElement(3)<<endl; cout << miArray.getElement(4)<<endl; cout << miArray.getElement(5)<<endl; cout << miArray.getElement(6)<<endl; } }
gracias su opinion es muy importante.
|
|
|
12
|
Programación / Programación C/C++ / Cortar Cadena [slice]
|
en: 29 Septiembre 2016, 23:28 pm
|
Buenas A tod@s en el foro , tengo una duda media boba e interesante he estado viendo varias libreria para manejo de cadenas o mejor dicho un par porque necesito una funcion para cambiar el tamano de una cadena (claro eliminando caracteres ) lamentablemente no encontre ninguna que haga esto eficientemente o que requiera de alguna otra libreria y entonces por esa razon decidi crear una pequena libreria en parte me ha funcionadod correctamente , pero tengo un inconveniente creando una funcion que recorte un mi cadea desde algun punto especifico que pertenezca a ella misma obviamente, quizas se el manejo de memoria. la verdad tengo un par de dias en esto y ya no encuentro como hacer esta funcion , posteare el codigo para recibir su recomendacion para ver si me pueden hechar una mano o algun consejo. ini String::CutString(int beg, int end) { Dbg(__FUNCTION__, __LINE__, ""); if(this->szChars == NULL) return 0; if(this->inlen < end || this->inlen < beg) return 0; int inLen = 0; char *szBeg = NULL; char *szEnd = NULL; char *szCharsCopy = NULL; szBeg = (char *)calloc(inlen, sizeof(char )); szEnd = (char *)calloc(inlen, sizeof(char )); szCharsCopy = (char *)calloc(inlen, sizeof(char )); strncpy( szBeg, &this->szChars[0], beg); strncpy( szEnd, &this->szChars[end], inlen); // memcpy( szBeg, &this->szChars[0], beg); // memcpy( szEnd, &this->szChars[end], inlen); strncat( szCharsCopy, szBeg , strlen(szBeg)); strncat( szCharsCopy , szEnd, strlen(szEnd)); free (this->szChars); this->szChars = NULL; inLen = strlen(szCharsCopy); this->szChars = (char *)calloc(inLen + 1, sizeof(char )); strncat( this->szChars , szCharsCopy, inLen ); this->szChars[inLen + 1] = NULL; if(szBeg) free(szBeg); if(szEnd) free(szEnd); if(szCharsCopy) free(szCharsCopy); if(this->szChars) return strlen(this->szChars); else return 0; }
|
|
|
13
|
Programación / Bases de Datos / jdbc derby , networkserve trace
|
en: 8 Septiembre 2016, 19:11 pm
|
un saludo a tod@ en el foro me disculpan por favor si este tema no va aqui estoy tratando de aprender jdbc y estoy tomando un curso en la escuela y me estan dando derby coml dbms y me pidieron buscar algo como capturar las salida del servidor cuando se realize una transaccion desde un cliente. eso parece algo de la configuracion la aplicacion segun el manual acpta varios parametros uno es trace on y sysinfo pero ningunos me han servido . quizas me falta algo pero no doy con ese asunto. por favor ayuda o me podrian decir en cual tomo de.los manuales puedo conseguir eso. muchas gracias y mis disculpas.
|
|
|
14
|
Programación / Java / Agrandar un JTextField
|
en: 6 Septiembre 2016, 16:49 pm
|
Buenas A todos !! estaba haciendo un Form con JFrame y quiero usar un JTextField pero me gustari cambiar su altura, estaba buscando en la pagina de oracle pero no encuentro ningun ejemplo de como hacerlo , sera que alguien por favor pueda ensenarme o darme algun consejo de como hacerlo le agradezco de antemano.
|
|
|
15
|
Programación / Java / Consulta sobre Socket.....
|
en: 29 Julio 2016, 20:00 pm
|
Saludos En general!
Disculpen la molestia , tengo una duda sobre la conexion con Socket en java, es posible que alguien me muestre un ejemplo en java donde pueda hacer una conexion , a una url o IP con un puerto especifico solo enviar un buffer y luego esperar un respuesta immediata, si parece una pregunta de alguien que esta haciendo una tarea pero no la verdad programo en c / c++ tengo un poquito de experiencia en socket. en c es sencillo si eres un cliente creas el socket, haces un connect, si conecta haces un send y receive y luego un close , pero en java es bien diferente y me gustaria ver como podria aprender eso si es posible , gracias de antemano.
postdata : Disculpe por no poner titulo.
|
|
|
16
|
Programación / Programación General / Restful & json
|
en: 15 Julio 2016, 18:22 pm
|
Saludos a todos mi gente !!
tengo una duda muy grande con este tema realmente , estoy tratando de hacer un request a un webservice que trabajo con JSON y la verdad no se como hacer una peticion al servicio , tengo algo de experiencia con SOAP pero me imagino que estoy es muy diferente si alguien me puede dar una idea o aconsejarme a donde pueda buscar informacion mas profunda , gracias.
|
|
|
17
|
Comunicaciones / Redes / Sincronizacion y cierre [AYUDA]
|
en: 15 Mayo 2016, 15:28 pm
|
Un saludo a todos!!
tengo una duda que tiene un par de dias en mi cabeza y no se como hacer.. :[ soy programador y me pidieron que hiciera una aplicacion que me permita conectarme a web services , lo he logrado pero hago el proceso de conexion varias veces (mas o menos 15 veces ) en un lapso corto de tiempo y cuando llego a un punto especifico la conexion sin mas es denegada , el socket de mi parte se crea y otra cosa estoy usando ssl , por cierto pongo el titulo por lo siguiente al conectarme como todos sabemos se hace una sincroniza con el servicio , le muestro mejor :
ACK, SYN ... SYN FIN ACK RST ... ACT RST FIN
todo esto solo cuando llego a la 15va conexion.. es decir immediatamente termino el socket se cierra , aunque algunas veces cuando veo el ID del socket es el mismo pero solo por veces ....
eso me tiene sin sueno , me gustaria por favor que me hechen una manito a ver como lo hago , gracias !!!
|
|
|
18
|
Programación / Programación C/C++ / [AYUDA] retornar un char * valido
|
en: 20 Abril 2016, 23:17 pm
|
Un saludo a todos!! necesito su consejo por favor , les cuento tengo una funcion que quita algunos caracterers y luego retornar un puntero a char * que deberia ser valido pero siempre me da null o la aplicacion se cae. es mejor que les muestre... la hize de varias manera.. char *purge_char(char *buff, char ch) { char *ret = NULL; //OJo char *temporal = NULL; int len = strlen(buff); int index= 0; int omitidos = 0; temporal = new char[len + 1]; while(index < len) { if(buff[index] != ch) { temporal[omitido] = buff[index]; omitido++; } index++; } ret = new char[omitido + 1]; index = 0; while(index < omitido) { ret[index] = temporal[index]; } delete temporal; return ret; } char *purge_char(char *ret, char *buff, char ch) { if(ret != NULL) { delete ret; ret = NULL; } char *temporal = NULL; int len = strlen(buff); int index= 0; int omitidos = 0; temporal = new char[len + 1]; while(index < len) { if(buff[index] != ch) { temporal[omitido] = buff[index]; omitido++; } index++; } ret = new char[omitido + 1]; index = 0; while(index < omitido) { ret[index] = temporal[index]; } delete temporal; return ret; }
esas dos formas son las que yo uso y me dan error ambas , me gustaria que alguien me aconsejara please.
|
|
|
19
|
Programación / Programación C/C++ / detalle sobre extern
|
en: 24 Febrero 2016, 16:06 pm
|
Saludo a todos !! estoy aprendiendo alguinas coasa pero me he confundido con algo que realmetne me tiene loco a ver si alguien por favor me aclara : #ifdef __cplusplus extern "C" { #endif #include<...> #ifdef __cplusplus } #endif
para q
|
|
|
20
|
Programación / Programación C/C++ / template en function [codigo]
|
en: 13 Febrero 2016, 13:32 pm
|
Saludo a todos !! Con el proposito de aprender estructura de datos estoy haciendo una clase para tener una especie de lista enlazadas , estoy usando template y como todos sabemos los templates se deben definir dentro del mismo header(c++98) entonces le cuento tengo una estructura llamado nodo que esta basada en plantilla y tiene de variables , un puntero al nodo siguiente y el dato a almacenar en esa instancia, luego tengo la clase lista que tiene el nodo a la cabeza de node y tengo una funcion que me devuelve un nodo el problema me lo da al compilar es el siguiente : ../src/LinkList.h:66:50: error: invalid cast from type ‘Object’ to type ‘void*’ head_traits = (T) createNode((void *)data); me gustaira saber si hay perdidas de datos cuando forzo a compilar con static_cast<void *> , el codigo solo compilar si uso eso si no es otra cosa. dejare el codigo... #define DEBUG 1 Node_traits<void*>* createNode(void *cr_dat) { #ifdef DEBUG clog << "__FUNCTION__"<<__FUNCTION__<<endl; #endif Node_traits<void*> *ret = new Node_traits<void*>(); memcpy(ret->data, cr_dat, sizeof(cr_dat)); ret->next_ptr_traits = NULL; return ret; } template<class T> struct Link_List { int cnt; Node_traits<T> *head_traits; void CreateList(T data) { head_traits = (T) createNode((void *)data); } };
gracias de antemano.!!
|
|
|
|
|
|
|