[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