Oi pessoal! Eu sou novo aqui e estou no primeiro período de Sistemas de Informação. Eu montei um código só que fala que os indíces estão fora da matriz. Eu entendo o que esse erro ta dizendo mas não consigo encontrar o erro. Alguém poderia me ajudar. Segue o código abaixo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
public static string menu()
{
string opcao;
bool v;
do
{
Console.WriteLine("Escolha a opção desejada");
Console.WriteLine("1 - Inserir");
Console.WriteLine("2 - Alterar");
Console.WriteLine("3 - Remover");
Console.WriteLine("4 - Ordenar");
opcao = Console.ReadLine();
if (opcao != "1" && opcao != "2" && opcao != "3" && opcao != "4")
{
Console.WriteLine("Opção inválida");
v = true;
}
else
{
v = false;
}
} while (v == true);
return opcao;
}
static string[] Expancao(string[] vetor)
{
string[] novovetor = new string[vetor.Length + 1];
for (int i = 0; i < vetor.Length; i++)
{
novovetor[i] = vetor[i];
}
return novovetor;
}
static void Main(string[] args)
{
/*
n = variavel que aumenta o tamanho do vetor.
i = variavel que preenche o vetor.
op = váriavel que recebe o valor do metódo menu.
v = váriavel que checa se o usuário vai digitar algo diferente de Sim ou Não.
resposta = váriavel que encerra o programa
*/
StreamWriter sw;
StreamReader sr;
string[] vetor;
string op, acao, resposta;
int j, opcao;
bool v;
j = -1;
vetor = new string[0];
do
{
op = menu();
opcao = int.Parse(op);
j++;
switch (opcao)
{
case 1:
sw = new StreamWriter(@"C:\Users\410533\Desktop\BD.txt", true);
Console.WriteLine("Digite a ação");
acao = Console.ReadLine();
sw.WriteLine(acao);
sw.Close();
break;
case 2:
sr = new StreamReader(@"C:\Users\410533\Desktop\BD.txt");
j = 0;
//Ler os vaores do arquivo e armazenar no vetor
while (!sr.EndOfStream)
{
vetor = Expancao(vetor);
vetor[j] = sr.ReadLine();
j++;
}
sr.Close();
// Apaga o arquivo
sw = new StreamWriter(@"C:\Users\410533\Desktop\BD.txt");
for (int i = 0; i < vetor.Length; i++)
{
sw.WriteLine("");
}
sw.Close();
//Recebe a pergunta do usario e apaga se existir
Console.WriteLine("Digite a ação a ser alterada");
acao = Console.ReadLine();
for (int i = 0; i < vetor.Length; i++)
{
if (vetor[i] == acao)
{
Console.WriteLine("Digite a nova acao");
vetor[i] = Console.ReadLine();
}
}
//Reescreve o arquivo
sw = new StreamWriter(@"C:\Users\410533\Desktop\BD.txt");
for (int i = 0; i < vetor.Length; i++)
sw.WriteLine(vetor[i]);
sw.Close();
break;
case 3:
sr = new StreamReader(@"C:\Users\410533\Desktop\BD.txt");
j = 0;
//Ler os vaores do arquivo e armazenar no vetor
while (!sr.EndOfStream)
{
vetor = Expancao(vetor);
vetor[j] = sr.ReadLine();
j++;
}
sr.Close();
// Apaga o arquivo
sw = new StreamWriter(@"C:\Users\410533\Desktop\BD.txt");
for (int i = 0; i < vetor.Length; i++)
{
sw.WriteLine("");
}
sw.Close();
//Recebe a pergunta do usario e apaga se existir
Console.WriteLine("Digite a ação a ser removida");
acao = Console.ReadLine();
for (int i = 0; i < vetor.Length; i++)
{
if (vetor[i] == acao)
vetor[i] = "";
}
//Reescreve o arquivo
sw = new StreamWriter(@"C:\Users\410533\Desktop\BD.txt");
for (int i = 0; i < vetor.Length; i++)
if (vetor[i] != "")
sw.WriteLine(vetor[i]);
sw.Close();
break;
case 4:
sr = new StreamReader(@"C:\Users\410533\Desktop\BD.txt");
j = 0;
//Ler os vaores do arquivo e armazenar no vetor
while (!sr.EndOfStream)
{
vetor = Expancao(vetor);
vetor[j] = sr.ReadLine();
j++;
}
sr.Close();
// Apaga o arquivo
sw = new StreamWriter(@"C:\Users\410533\Desktop\BD.txt");
for (int i = 0; i < vetor.Length; i++)
{
sw.WriteLine("");
}
sw.Close();
int x, aux, aux2;
string aux3;
for (int i = 1; i < vetor.Length; i++)
{
x = i - 1;
aux3 = vetor[i];
aux = vetor[i][0];
if (aux > 90)
aux -= 32;
aux2 = vetor[x][0];
if (aux2 > 90)
aux2 -= 32;
while (aux < aux2 && x >= 0)
{
vetor[x + 1] = vetor[x];
x--;
if (x > 0)
{
aux2 = vetor[x][0];
if (aux2 > 90)
aux2 -= 32;
}
}
vetor[x + 1] = aux3;
}
//Reescreve o arquivo
sw = new StreamWriter(@"C:\Users\410533\Desktop\BD.txt");
for (int i = 0; i < vetor.Length; i++)
if (vetor[i] != "")
sw.WriteLine(vetor[i]);
sw.Close();
break;
}
Console.WriteLine("Deseja encerrar o programa (S-N)! ");
resposta = Console.ReadLine();
while (resposta != "S" && resposta != "N")
{
Console.WriteLine("Deseja encerrar o programa (S-N)! ");
resposta = Console.ReadLine();
}
} while (resposta == "N");
}
}
}
Eu corrigi. Vê agora.
Alguém sabe o nome do livro de C# que na capa tem uma formiguinha?
Obrigado!