Autor
|
Tema: Serializacion en C!! (Leído 4,893 veces)
|
ekys
Desconectado
Mensajes: 4
|
Hola a todos,
me gustaría que alguien me ayudara.
El caso es q estoy intentando serializar una estructura definida por mí (basicamente es una estructura en arbol dnd cada nodo tiene un string y un entero) y lo estoy haciendo en C (sí en C, ni C# ni C++) y para ello utilizo la libreria c11n. Sigo las intrucciones del manual pero no hay manera!!!!!
Alguien ha trabajado alguna vez con esta librería (segun dicen es parecida a la libreria s11n utilizada en C++)??
Algun tipo de ayuda para digerir mi desesperacion??
Gracias de antemano por cualquier tipo de ayuda.
|
|
|
En línea
|
|
|
|
D4RIO
Desconectado
Mensajes: 1.004
U N I X
|
Si posteas algo de código podría ayudar a entender. De otra forma no sabríamos en qué parte tienes problemas, o qué problemas tienes. Usa la etiqueta de código personalizado disponible a la derecha arriba de tu panel de edición para postear código. Saludos.
|
|
|
En línea
|
|
|
|
ekys
Desconectado
Mensajes: 4
|
Si si, pongo el código ahora, pero es q he posteao en otros foros con el codigo incluido y nadie me contesta nunca... Gracias por contestar!!! Este es el codigo: //*****************************MAIN.c*************************************
#include <string.h> #include <stdio.h> #include <stdlib.h> #include "AST.h" #include "c11n.h" #include "c11n_io.h" #include "c11n_stream_FILE.h"
/// Main program int main(int argc,char *argv[]) { AST* a1=NULL; a1 = InsertAST(a1, "prueba");
c11n_node * n = c11n_node_create("a1"); bool rc = c11n_serialize( AST_c11n, n, &a1); c11n_node_destroy( n ); if( ! rc ) printf("SERIALIZE error !!!!!");
c11n_stream *str= c11n_stream_for_filename("a1.c11n", true); bool rc2 = c11n_save_serializable( str, AST_c11n, &a1 ); c11n_serializable_save( str, AST_c11n, &a1, 0 );
str->api->destroy(str); return 0; }
//*****************************AST.h*************************************
#include "c11n.h"
typedef struct bnode AST;
//AST definitions FIELDs struct bnode { char widget_name[20]; int count; AST *left; AST *right; };
AST* InsertAST ( AST* root, char* nodename);
extern const c11n_marshaller * AST_c11n;
//*****************************AST.c*************************************
#include "AST.h"
AST* InsertAST ( AST* root, char* nodename) { if ( root == NULL ) { root = malloc ( sizeof ( AST ) ); strcpy ( root->widget_name, nodename ); root->count = 1; root->left = root->right = NULL; } else if ( strcmp (nodename, root->widget_name ) < 0 ){ //else if ( root->left == NULL) root->left = InsertAST ( root->left, nodename); } else if ( strcmp (nodename, root->widget_name ) > 0 ){ root->right = InsertAST ( root->right, nodename); } else{ // must be equal root->count++; }
return root; }
static const c11n_marshaller_api c11n_markshaller_api_AST = C11N_MARSHALLER_API_INIT("AST", NULL, NULL, NULL, NULL, NULL);
static const c11n_marshaller AST_c11nX = { &c11n_markshaller_api_AST }; const c11n_marshaller * AST_c11n = &AST_c11nX;
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Serialización
Java
|
Zamarronstein
|
2
|
2,598
|
6 Junio 2007, 08:54 am
por Zamarronstein
|
|
|
Problema con serializacion
Java
|
joserra89
|
3
|
3,318
|
27 Diciembre 2008, 16:19 pm
por sapito169
|
|
|
Serializacion datatable
.NET (C#, VB.NET, ASP)
|
diego_lp
|
5
|
9,068
|
10 Marzo 2010, 22:37 pm
por [D4N93R]
|
|
|
Serializacion
Programación C/C++
|
damito4
|
6
|
3,760
|
9 Junio 2010, 17:45 pm
por damito4
|
|
|
Ayuda .NET Serialización Objetos Web
.NET (C#, VB.NET, ASP)
|
jonatown
|
0
|
1,991
|
13 Febrero 2012, 13:53 pm
por jonatown
|
|