[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

RE: Caracteres estranhos no SGB




Oi Ivan,

Ivan Bittencourt de Araújo e Silva Neto writes:
 > Eu estou usando a funcao gb_save_string, e quando eu dou um save_graph,
 > no meu arquivo de saida .gb tem a seguinte mensagem:
 > 
 > * Checksum 660573171
 > > WARNING: I had trouble making this file from the given graph!
 > >> At least one string character had to be changed to '?'.
 > > You should be able to read this file with restore_graph,
 > > but the graph you get won't be exactly like the original.

O GraphBase não aceita que alguns campos tenham acentos ou
coisa do tipo. Por exemplo, não podemos dar fazer

            v->name = gb_save_string("São Paulo");

Bem, na verdade podemos, o problema acontece quanto salvamos
isto (os caracteres acentuados são substituidos por algum
lixo, tipo '?'). Para coisas desse tipo é que o prof. Zé
Augusto escreveu um gb_save modificado batizado de gb_salva

http://www.ime.usp.br/~coelho/grafos/sgb/exemplos/acentos/

 > 
 > E realmente, quando eu retauro o grafo os caracteres '\t' (tab) e '\n'
 > (new line) sao substituidos por interrogacao. Tem como resolver isso?
 > 

Se você precisa salvar estes caracteres, então você pode
trocar eles por outros caracteres que não estão sendo usados
(fazer um filtro; o gb_salva é um filtro). Coisa do tipo

          "trocar '\n' por ';'".

Depois de fazer o restore do grafo pode-se trocar o ';' por '\n'.

 > Mais uma coisa: eu defino alguns campos utilitarios como NULL antes de
 > salvar o grafo (mais precisamente o campo z.S). Mas quando eu restauro
 > nao tem mais o valor NULL onde eu tinha setado antes de salvar o grafo.
 > E assim mesmo, o SGB nao salva os valores NULL dos campos utilitarios?
 > 

Você atribuiu S para o corresponde posição do util_type do
grafo? Coisa do tipo 

     strcpy(g->util_types,"ZZZZZSZZZZZZZZ"); 
                                ^
                                |
       ali ---------------------+

O util_type do grafo é que diz o tipo do bicho que está
armazenado em cada um dos campos de utilitários do
grafo. Ele é importanto para salvar e recuperar o grafo.

té +,
coelho