[Pcx-dev-l] RES: Problemas com formato MPS

Raniere Silva ra092767 em ime.unicamp.br
Qua Jun 11 11:08:48 BRT 2014


Olá Daniele,

> eu tentei a sugestão do Raniere e o erro permanece, por isso tentei alterar
> o Graph.

Como dito anteriormente, alterar o PCx para suportar "free MPS format" não é uma
tarefa difícil. Na função ParseDataLine do arquivo SRC/readmps.c você deve
trocar 

    string_copy(code, &line[1], 2);       /* characters  2 -  3 to code  */
    string_copy(name1, &line[4], 8);      /* characters  5 - 12 to name1 */
    string_copy(name2, &line[14], 8);     /* characters 15 - 22 to name2 */
    string_copy(valstr, &line[24], 12);

por um loop que procure por espaços em brancos ou tabs, algo como

    int position, word_counter, start_word, end_word, last_char_is_space;

    word_counter = 0;
    position = 1;
    last_char_is_space = 1;

    while (position < 36) {
        if (&line[position] != ' ' && &line[position] != '/t') {
            if (last_char_is_space) {
                start_word = position;
                last_char_is_space = 0;
            }
        } else {
            if (!last_char_is_space) {
                end_word = position;
                switch (word_counter) {
                case 0:
                    string_copy(code, &line[start_word], end_word - start_word);
                    break;
                case 1:
                    string_copy(name1, &line[start_word], end_word - start_word);
                    break;
                case 2:
                    string_copy(name2, &line[start_word], end_word - start_word);
                    break;
                case 3:
                    string_copy(valstr, &line[start_word], end_word - start_word);
                    break;
                }
                word_counter++;
                last_char_is_space = 1;
            }
        }
        position++;
    }

IMPORTANTE 1: O código acima não foi testado e provavelmente outras modificações
precisam ser feitas.

IMPORTANTE 2: Reiterando, se alguém que estiver começando a trabalhar no PCx
tiver interesse posso ajudar a terminar o código acima. É uma ótima oportunidade
para aprender como compilar o PCx, fazer alterações, rodar e debugar (utilizando
o gdb) entre outras coisas mais.

Att,
Raniere



Mais detalhes sobre a lista de discussão Pcx-dev-l