Pràctica 17 de C#: Gestió de Vectors i Fitxers

Física9,64 KB

Pràctica 17: Manipulació de Vectors i Fitxers en C#

using System;
using System.IO;
class Practica17
{
static int ContarLineas(string path)
{
  StreamReader sr = new StreamReader(path);
  int contador = 0;
  while (sr.ReadLine() != null) contador++;

  sr.Close();

  return contador;
}
static int[] LeerVectorEntero(string path)
{
  int[] v = new int[ContarLineas(path)];   StreamReader sr = new StreamReader(path);
  int i = 0;
  string input;
  while ((input = sr.ReadLine()) != null
  {
    v[i] =
Convert.ToInt32(input);
    i++;
  }

  sr.Close();

  return v;
}
static void AñadirAFichero(string path, string label, int[] v)
{
  StreamWriter sw = new StreamWriter(path, true);
  sw.WriteLine(
"\r\n{0}: {1}", label, StringVector(v));
  sw.Close();
}
static string StringVector(int[] v)
{
  string vector = "[ ";
  for (int i = 0; i < v.Length; i++)
  {
   vector +=
string.Format("{0} ", v[i]);
   }
 vector +=
"]";
 return vector;

}
static bool Existe(int[] v, int x)
{
  for (int i = 0; i < v.Length; i++)
  {
  if (v[i] == x) return true;
  }
  return false;
 }
static int[] Interseccion(int[] v1, int[] v2)
{

  int[] vaux = new int[v1.Length];
  int k = 0;
  for (int i = 0; i < v1.Length; i++)
  {
  if (Existe(v2, v1[i]))
   {
   vaux[k++] = v1[i];
  }
  }
 int[] v3 = new int[k];
 for (int i = 0; i < k; i++) v3[i] = vaux[i];
 return v3;
}
static void Main()
{
string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string carpeta = desktop + @"\MisDatos\";
string fileVector1 = @"vector1.txt";
string fileVector2 = @"vector2.txt";
string fileSalida = @"salida1.txt";
string pathSalida = carpeta + fileSalida; int[] vector1 = LeerVectorEntero(carpeta + fileVector1);
int[] vector2 = LeerVectorEntero(carpeta + fileVector2); int[] vector3 = Interseccion(vector1, vector2); Console.WriteLine("vector v1: {0}", StringVector(vector1));
Console.WriteLine("Elementos comunes con:");
Console.WriteLine("vector v2: {0}", StringVector(vector2));
Console.WriteLine(" = ");
Console.WriteLine("vector v3: {0}", StringVector(vector3));


AñadirAFichero(pathSalida,

"vector1: ", vector1);
AñadirAFichero(pathSalida,
"vector2: ", vector2);
AñadirAFichero(pathSalida,
"vector3: ", vector3); Console.ReadLine();
}
}

Descargar

PDF Word HTML