mecanica
Sobre a Tabela IndLIB: A tabela TIndLib nos informa exatamente o início e o tamanho de cada rotina armazenada em PONTOCOM.LIB funcionando portanto como um índice desta.
Perceba que agora independente do comando o arquivo a ser lido será sempre a biblioteca PONTOCOM.LIB;
Porém dependendo do comando deveremos fazer a leitura de uma quantidade específica de bytes a partir de uma posição determinada;
Assim creio estar claro que antes de tudo deveremos ler TIndLib a fim de descobrir a posição e a quantidade de bytes que deveremos ler;
Portanto volte ao programa e adicione a este a entidade IndLib (uma classe na verdade);
Feito isso volte ao método doTraducao e providencie a leitura a TIndLib, apenas para efeito de teste exiba os atributos inicio e tamanho obtidos durante a leitura.
//Classe IndLib using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace TP_Semana09
{
class IndLib { private static String codigo; private static String inicio; private static String tamanho;
public static void setCodigo(String _codigo) { codigo = _codigo; } public static void setInicio(String _inicio) { inicio = _inicio; } public static void setTamanho(String _tamanho) { tamanho = _tamanho; } public static String getCodigo() { return codigo; } public static String getInicio() { return inicio; } public static String getTamanho() { return tamanho; } }
}
//Classe BLL public static void doTraducao() { MeuCompiladorDAL.populaDR(); MeuCompiladorDAL.leUmTokenValido(); while (Erro.getErro() == false) { if (int.Parse(Token.getCodigo()) < 100) gravaCOM(); MeuCompiladorDAL.leUmTokenValido(); } Erro.setErro(false); }
//Grava COM public static void gravaCOM() {