示例#1
0
        private void LerDeArquivo(bool ehCidade)                        // metodo usado para ler os dois arquivos que apenas recebe o boolean que indica se e cidade
        {
            if (dlgAbrir.ShowDialog() == DialogResult.OK)               //Descobriremos o caminho do arquivo desejado
            {
                StreamReader arq = new StreamReader(dlgAbrir.FileName); // abertura do arquivo

                try
                {
                    if (!ehCidade)                                                           // se for um arquivo de caminhos entre cidades
                    {
                        while (!arq.EndOfStream)                                             // enquanto o arquivo nao terminou, percorremos
                        {
                            CaminhoEntreCidades c = new CaminhoEntreCidades(arq.ReadLine()); // le o caminho do arquivo
                            caminhos[c.Destino, c.Origem] = c;                               // armazena o caminho na matriz
                        }
                    }
                    else // se for um arquivo de cidades
                    {
                        while (!arq.EndOfStream) // enquanto o arquivo nao terminou, percorremos
                        {
                            Cidade c = new Cidade(arq.ReadLine()); // le a cidade do arquivo
                            cidades.Incluir(c);                    // armazena a cidade na arvore
                        }
                    }
                }
                catch // caso arquivo nao esteja nos padroes de dados pre definidos, informa o usuario e chama novamente o metodo
                {
                    MessageBox.Show("Por favor, selecione um arquivo válido!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    LerDeArquivo(ehCidade);
                }

                arq.Close(); // fecha o arquivo lido
            }
        }
示例#2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            //Abertura do primeiro arquivo --> CidadesMarte.txt
            var arq = new StreamReader("CidadesMarte.txt");

            arvore = new ArvoreBinaria <Cidade>();

            string linha = null;

            while (!arq.EndOfStream)
            {
                linha = arq.ReadLine();
                arvore.Incluir(new Cidade(linha));
                qtdCidades++;
            }
            arq.Close();

            //Abertura do segundo arquivo --> CaminhosEntreCidadesMarte.txt
            var arq2 = new StreamReader("CaminhosEntreCidadesMarte.txt");

            matriz = new Caminho[qtdCidades, qtdCidades];
            string linha2 = null;

            while (!arq2.EndOfStream)
            {
                linha2 = arq2.ReadLine();
                matriz[int.Parse(linha2.Substring(0, 3)), int.Parse(linha2.Substring(3, 3))] = new Caminho(linha2);
            }
            arq2.Close();

            //Abertura do terceiro arquivo --> CidadesMarteOrdenado.txt
            var arq3 = new StreamReader("CidadesMarteOrdenado.txt");

            lsbOrigem.Items.Clear();
            lsbDestino.Items.Clear();

            string linha3 = null;

            while (!arq3.EndOfStream)
            {
                linha3 = arq3.ReadLine();
                lsbOrigem.Items.Add(linha3.Substring(0, 3) + " - " + linha3.Substring(3, 15));
                lsbDestino.Items.Add(linha3.Substring(0, 3) + " - " + linha3.Substring(3, 15));
            }
            arq3.Close();
        }