viernes, 25 de julio de 2014

Comandos para unidad externa por USB Citrix XenServer 6.2

Lo primero que debemos hacer es localizar en que /dev/ se encuentra localizado el disco duro o la usb que hemos conectado al server... eso se logra con el comando:

[root@localhost~] # fdisk -l

Lo cual te arrojara un resultado similar a esto:

WARNING: GPT (GUID Partition Table) detected on '/dev/sdc'! The util fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/sdc: 3000.5 GB, 3000592982016 bytes
255 heads, 63 sectors/track, 364801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes


 La parte resaltada es donde se encuentras los dispositivos conectados, también aparecerán todos los discos duros conectados pero es facil identificar por el tamaño la unidad que estas buscando.

Despues procedemos a montar la unidad en el directorio /mnt yo te recomiendo crear una carpeta  en este directorio sobretodo si debes montar mas de una unidad al mismo tiempo; crear directorios lo puedes hacer con el comando:

[root@localhost~] # mkdir [nombre de tu carpeta]

[root@localhost~] # mkdir removalHD

Despues montamos la unidad en dicho directorio; monta una unidad es la forma en que Linux comienza a utulizar el dispositivo contectado

[root@localhost ~] #mount /dev/[el valor que se vio en azul] /mnt/[directorio creado] -t [tipo de paritcion a montar]

el ejemplo queda asi montando un disco duro externo que se usa con windows por eso tiene ntfs

[root@localhost ~] #mount /dev/sdd1 /mnt/removalHD -t ntfs

Puedes ver la descripción completa si ejecutas en la consola:

[root@localhost ~] #man mount

eso te da la descripción completa de como funciona el comando mount

una ves que termines con el uso del disco o usb no olvides desmontarlo que es lo mas pareciso a "retirar con seguridad de windows" de esta forma ni tu unidad ni tu sistema linux sera dañado...

solo tecleas

[root@localhost ~] #umount  [Carpeta donde esta la unidad a desmontar]

en nuestro ejemplo

[root@localhost ~] #umount /mnt/removalHD

Espero les sea util

martes, 29 de abril de 2014

Lectura de un archivo de texto plano C#

Cascaron DataLayerIng Lo mas sencillo pero como es util para trabajar con datos. sobretodo cuando todo se exporta a CSV


            String FileName="";

            OpenFileDialog openFiledialog = new OpenFileDialog();
            if (openFiledialog.ShowDialog() == DialogResult.OK)
            {
                FileName = openFiledialog.FileName;
            }


            StreamReader objReader = new StreamReader(FileName);
            string sLine = "";
            ArrayList arrText = new ArrayList();
            sLine = objReader.ReadLine();
            while (sLine != null)
            {
                sLine = objReader.ReadLine();
                if (sLine != null)
                    arrText.Add(sLine);
            }
            objReader.Close();

REquiere incluir:
           using System.IO;
           using System.Collections;

miércoles, 5 de febrero de 2014

Snippet Basico Data Layer C# con Entity Framwork 6.0

Cascaron DataLayerIng Al utilizar C# con Entity Framework  y trabajando por capas lo mas común es crear un capa de datos, para hacer esto lo mas básico para una capa de datos es el Clásico ABC. Para ello y para avanzar mas rápido en nuestros desarrollo sobre Visual Studio están las herramientas conocidas como Snippets(Sobre estas comente en otra publicacion ) y hoy me permito publicar el código de un Snippet para visual Studio sobre C# que permite crear rápidamente las clases de Data para nuestro proyecto.

Espero les sea útil a mi me ayudo a terminar mas rápido; contiene una funciones de:

  • Búsqueda por ID
  • Devolver Todos los registros
  • Inserción
  • Actualización
  • Borrado
Obviamente si requieren mas funciones por default pueden modificarlo  a su gusto. 


  
    
Cascaron DataLayer Ing. Florentino Hernández Guzmán Cascaron Basico de DataLayer con Entity Framework 6.0 CascaronDatalayer
Entity Entidad sobre la cual se describe la Clase EntityName ID nombre del ID de la entidad para la que se desarrolla la clase entityId ClassName Nombre de la Clase ClassName Context Contexto de conexion a la base de datos MainWindow.db Variable Variable sobre las opciones _var Proyecto Nombre del Proyecto ProyectName Contenedor de Entitys Sub Carpeta de donde se encuentran los elementos de Entitys Entitys /// Clase que almacena los accesos a datos de la entidad $Entity$ /// public static class $ClassName$DL { /// /// Clase que devuelve un usuarios basandose en su ID /// para corroborar el acceso /// /// ID del $Entity$ A localizar /// Null son incorrectos o $Entity$ si es localizado public static $Entity$ getByID(Decimal $ID$) { try { $Entity$ $Variable$ = $Context$.$Entity$.Find($ID$); return $Variable$; } catch (Exception ex) { throw ex; } } /// /// Clase que devuelve todos los Obejtos $Entity$ conenidos en la BD /// /// Null son incorrectos o $Entity$ si es localizado public static List<$Entity$> getAll() { try { List<$Entity$> $Variable$ = $Context$.$Entity$.ToList(); return $Variable$; } catch (Exception ex) { throw ex; } } /// /// Inserta la Informacion de un objeto $ClassName$ en la Base de Datos /// /// Objeto $Entity$ a insertar /// Numero de registros afectados public static int Insert($Entity$ $Variable$) { bool saveFailed = false; using (TransactionScope scope = new TransactionScope()) { try { int result = 0; do { try { $Context$.$Entity$.Add($Variable$); result= $Context$.SaveChanges(); } catch (System.Data.DBConcurrencyException ex) { saveFailed = true; } } while (saveFailed); return result; } catch (Exception ex) { throw ex; } } } /// /// Actualiza la Informacion de un objeto $ClassName$ en la Base de Datos /// /// Objeto $Entity$ a Actualizar /// Numero de registros afectados public static int Update($Entity$ $Variable$) { bool saveFailed = false; using (TransactionScope scope = new TransactionScope()) { try { int result = 0; do { try { var entry = $Context$.Entry($Variable$); $Context$.$Entity$.Attach($Variable$); entry.State = EntityState.Modified; result = $Context$.SaveChanges(); } catch (System.Data.DBConcurrencyException ex) { saveFailed = true; } } while (saveFailed); return result; } catch (Exception ex) { throw ex; } } } /// /// Elimina la Informacion de un objeto $ClassName$ en la Base de Datos /// /// Objeto $Entity$ a Eliminar /// Numero de registros afectados public static int Delete($Entity$ $Variable$) { bool saveFailed = false; using (TransactionScope scope = new TransactionScope()) { try { int result = 0; do { try { var entry = $Context$.Entry($Variable$); $Context$.$Entity$.Attach($Variable$); entry.State = EntityState.Deleted; result = $Context$.SaveChanges(); } catch (System.Data.DBConcurrencyException ex) { saveFailed = true; } } while (saveFailed); return result; } catch (Exception ex) { throw ex; } } } } }]]>

miércoles, 28 de agosto de 2013

Open File Dialog WPF


          Para inocar el open dialog desde WPF es sencillo solo necesitamos el siguiente codigo

 Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();

            // Establece el filtro para archovs .CSv
            dlg.DefaultExt = ".csv";
            dlg.Filter = "Archivo separado por comas (.csv)|*.csv";

            // metodo que despliega el dialogo
            Nullable<bool> result = dlg.ShowDialog();

            // Get the selected file name and display in a TextBox
            if (result == true)
            {
                // Open document
                string filename = dlg.FileName;
                FileInfo FI = new FileInfo(filename);

            }

Capturar Audio a WAV C#

Esta clase  nos ayuda a  capturar un WAv desde C# de forma sencilla

  class Audio2
    {
        [DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
        private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback);
        Boolean recording = false;

        public String Iniciar()
        {
            try
            {
                if (!recording)
                {
                    mciSendString("open new Type waveaudio Alias recsound", "", 0, 0);
                    mciSendString("record recsound", "", 0, 0);
                    recording = true;
                    return "OK";
                }
                else
                {
                    return "Ya se esta grabando";
                }
       }
       catch (Exception ex)
       {
                //recording = false;
                return ex.Message;
       }
         
        }
        public String Stop(String _file)
        {
            try
            {
                if (recording)
                {
                    mciSendString(@"save recsound " + _file, "", 0, 0);
                    mciSendString("close recsound ", "", 0, 0);
                    recording = true;
                    return "OK";
                }
                else
                {
                    return "No se esta grabando";
                }
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }

        public byte[] Stop(String _file)
        {
            try
            {
                if (recording)
                {
                    mciSendString(@"save recsound " + _file, "", 0, 0);
                    mciSendString("close recsound ", "", 0, 0);
                    byte[] bytes = File.ReadAllBytes(_file);
                    recording = false;
                    return bytes;
                }
                else
                {
                    throw new Exception("No se esta grabando");
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
    }

Exportar a excell sencillo

En el siguiente código veremos cómo exportar el contenido de un DataGridView a un fichero Excel con WindowsForms usando C#.
Inicialmente tendremos que añadir la siguiente referencia al proyecto de tipo COM:
Microsoft Excel 12.0 Object Library
Para poder añadir la referencia anterior, tenemos que tener instalado previamente en nuestro sistema el Microsoft Excel.
El método nos preguntará por la ruta donde queremos almacenar el fichero en el disco mediante un objeto del tipo SaveFileDialog.
El código del método que rellena el documento excel es el siguiente:

///

/// Método que exporta a un fichero Excel el contenido de un DataGridView
///

/// DataGridView que contiene los datos a exportar
private void ExportarDataGridViewExcel(DataGridView grd)
{
    SaveFileDialog fichero = new SaveFileDialog();
    fichero.Filter = "Excel (*.xls)|*.xls";
    if (fichero.ShowDialog() == DialogResult.OK)
    {
        Microsoft.Office.Interop.Excel.Application aplicacion;
        Microsoft.Office.Interop.Excel.Workbook libros_trabajo;
        Microsoft.Office.Interop.Excel.Worksheet hoja_trabajo;
        aplicacion = new Microsoft.Office.Interop.Excel.Application();
        libros_trabajo = aplicacion.Workbooks.Add();
        hoja_trabajo = 
            (Microsoft.Office.Interop.Excel.Worksheet)libros_trabajo.Worksheets.get_Item(1);
        //Recorremos el DataGridView rellenando la hoja de trabajo
        for (int i = 0; i < grd.Rows.Count - 1; i++)
        {
            for (int j = 0; j < grd.Columns.Count; j++)
            {
                hoja_trabajo.Cells[i + 1, j + 1] = grd.Rows[i].Cells[j].Value.ToString();
            }
        }
        libros_trabajo.SaveAs(fichero.FileName, 
            Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal);
        libros_trabajo.Close(true);
        aplicacion.Quit();
    }
}

miércoles, 14 de agosto de 2013

Guardar un Grid como Imagen en WPF

Primero necesiamos agregar la calse Model con el siguiente Codigo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Media.Imaging;
using System.Collections.ObjectModel;
using System.Windows.Media;
using System.IO;

namespace WpfApplication9
{

public enum ImageFormat
{
        JPG, BMP, PNG, GIF, TIF
}
public class Model
{
          private ObservableCollection<BitmapSource> imagecollection;
public ObservableCollection<BitmapSource> ImageCollection
{
        get
        {
                this.imagecollection = this.imagecollection ?? new ObservableCollection<BitmapSource>();
                return this.imagecollection;
        }
}

public RenderTargetBitmap RenderVisaulToBitmap(Visual vsual, int width, int height)
{
        RenderTargetBitmap rtb = new RenderTargetBitmap(width, height, 96, 96, PixelFormats.Default);
        rtb.Render(vsual);
        BitmapSource bsource = rtb;
        this.ImageCollection.Add(bsource);
        return rtb;
}

public MemoryStream GenerateImage(Visual vsual, int widhth, int height, ImageFormat format)
{
        BitmapEncoder encoder = null;
        switch (format)
        {
                case ImageFormat.JPG :
                        encoder = new JpegBitmapEncoder();
                        break;
                case ImageFormat.PNG:
                        encoder = new PngBitmapEncoder();
                        break;
                case ImageFormat.BMP:
                        encoder = new BmpBitmapEncoder();
                        break;
                case ImageFormat.GIF:
                        encoder = new GifBitmapEncoder();
                        break;
                case ImageFormat.TIF:
                        encoder = new TiffBitmapEncoder();
                        break;
        }
        if (encoder == null) return null;

        RenderTargetBitmap rtb = this.RenderVisaulToBitmap(vsual, widhth, height);
        MemoryStream file = new MemoryStream();
        encoder.Frames.Add(BitmapFrame.Create(rtb));
        encoder.Save(file);

        return file;
    }
}
}
Luego se agrega en el Windows.Resource de l Xaml
<
Window.Resources>
            <local:Model x:Key="Foto" />
</Window.Resources>

Instanciamos la case y lo referimos al recuros del xaml

 private Model DataModel
{
        get { return this.Resources["Foto"] as Model; }
}

ahora usamos el evento del boton que renderisará el grid  a una imagen y listo

private void Button_Click_1(object sender, RoutedEventArgs e)
{
        BitmapEncoder encoder = new JpegBitmapEncoder();
        //ImgFinal --> Grid aconvertir
        RenderTargetBitmap rtb = this.DataModel.RenderVisaulToBitmap(ImgFinal, (int)ImgFinal.ActualWidth, (int)ImgFinal.ActualHeight);
        MemoryStream file = new MemoryStream();
        encoder.Frames.Add(BitmapFrame.Create(rtb));
        encoder.Save(file);

        if (file != null)
        {
                SaveFileDialog fdlg = new SaveFileDialog
                {
                        DefaultExt = "jpg",
                        Title = "Choose filename and location",
                        Filter = "*Jpeg files|.jpg|Bmp Files|*.bmp|PNG Files|*.png|Tiff Files|*.tif|Gif Files|*.gif"
                };
                bool? result = fdlg.ShowDialog();
                if (result.HasValue && result.Value)
                {
                        using (FileStream fstream = File.OpenWrite(fdlg.FileName))
                        {
                                file.WriteTo(fstream);
                                fstream.Flush();
                                fstream.Close();
                        }
                }
        }
}