domingo, febrero 14, 2010

Codigo para las macs, c# (macanas v0.2)


using System;
using System.Windows.Forms;
using System.IO;
using System.Collections;
using System.Text.RegularExpressions;
using System.Diagnostics;

namespace macanas
{
public partial class Form1 : Form
{
///
/// Required designer variable.
///

private System.ComponentModel.IContainer components = null;

///
/// Clean up any resources being used.
///

/// true if managed resources should be disposed; otherwise, false.
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

#region Windows Form Designer generated code

///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///

private void InitializeComponent()
{
this.convertir = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// convertir
//
this.convertir.Location = new System.Drawing.Point(71, 22);
this.convertir.Name = "convertir";
this.convertir.Size = new System.Drawing.Size(161, 84);
this.convertir.TabIndex = 0;
this.convertir.Text = "Convertir a formato cm-xxxxxxxxxxxx.cf";
this.convertir.UseVisualStyleBackColor = true;
this.convertir.Click += new System.EventHandler(this.convertir_Click_1);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(331, 136);
this.Controls.Add(this.convertir);
this.Name = "Form1";
this.Text = "Acomodador de macs";
this.ResumeLayout(false);

}

#endregion

private System.Windows.Forms.Button convertir;

public Form1()
{
InitializeComponent();
}
private void convertir_Click_1(object sender, EventArgs e)
{
//Abre el dialogo para buscar el archivo
OpenFileDialog fDialog = new OpenFileDialog();
fDialog.Title = "Selecciona un archivo de la carpeta";
fDialog.Filter = "Cualquier archivo|*.*";
if (fDialog.ShowDialog() == DialogResult.OK)
{
//Verificamos si ya existe un archivo con ese nombre, si es asi, lo borra
if (File.Exists(@fDialog.FileName.ToString() + "macjuntas.txt") == true)
{
File.Delete(@fDialog.FileName.ToString() + "macjuntas.txt");
}
//Busca el directorio en que se esta trabajando y lo asigna a path
string path = System.IO.Path.GetDirectoryName(fDialog.FileName);
//Path contiene la ruta física donde se encuentran todos los archivos
string[] ArchivosEntrada = Directory.GetFiles(@path);
//Creamos la pila donde va a juntar todas las lineas de los archivos
ArrayList archivos = new ArrayList();
//Recorremos todos los archivos de la carpeta
foreach (string ArchivoEntrada in ArchivosEntrada)
{
//Cargamos el archivo correspondiente
FileStream ArchivoConcatenar = new FileStream(ArchivoEntrada,
FileMode.Open, FileAccess.Read);
//Especificamos que se va a leer el archivo
StreamReader reader = new StreamReader(ArchivoConcatenar);
//Recorremos el archivo linea a linea
string line;
while ((line = reader.ReadLine()) != null)
{
//Agregamos la linea a la pila
archivos.Add(line);
}
//Cerramos el archivo y continuamos con el siguiente
reader.Close();
//}
}
string z="";
//Creamos una pila para agregar cada linea que sea mac
ArrayList lines = new ArrayList();
//Condicion de borrar espacios y caracteres especiales
Regex r = new Regex(@"\s*\W*");
//Condicion de buscar 12 digitos que cumplan con la condicion [a-fA-F0-9]
Regex match = new Regex("[a-fA-F0-9]{12}");
//Leemos cada linea de la pila
foreach (string lineaarchivo in archivos)
{
//Borramos espacios y caracteres especiales
string dest = r.Replace(lineaarchivo, "");
//Recorremos la linea "dest" que ya no contiene espacios
if (dest.Contains("0"))
{
for (int i = 0; i < dest.Length - 11; i++)
{
//Verificamos si es un 0 (asi empiezan todas las macs motorola)
if (dest[i] == '0')
{
//Intentamos formar una mac
z = dest.Substring(i, 12);
//Buscamos que los 12 digitos que cumplan con la condicion [a-fA-F0-9]
Match m = match.Match(z);
if ((m.Success))
{
//Lo transformamos a minuscula y buscamos en la pila lines que no este agregada
if (!lines.Contains(z.ToLower()))
{
//Agregamos a la pila lines
lines.Add(z.ToLower()); break;
}
}
}
}
}
}
//Orden alfabetico
lines.Sort();
using(StreamWriter file2 = new StreamWriter(@fDialog.FileName.ToString() + "macjuntas.txt", true))
{
for (int i = 0; i < lines.Count; i++)
{
//Escribimos todo el arraylist en el archivo final
file2.WriteLine("cm-" + lines[i] + ".cf");
}
}
MessageBox.Show("Convertido");
//Abrimos el archivo final
Process proc = new Process();
proc.StartInfo = new ProcessStartInfo(@fDialog.FileName.ToString() + "macjuntas.txt");
proc.Start();
}
}
}
}

No hay comentarios:

Publicar un comentario