Lägga ihop textfiler

Tänk dig att du har fyra textfiler, a.txt, b.txt, c.txt och d.txt och du vill lägga ihop innehållet av alla textfiler till en textfil.

Image

För att lägga ihop textfilerna, öppna MS DOS prompten (kör cmd.exe) och ändra sökvägen till där filerna ligger. Skriv i följande kommando: copy *.txt target.txt

Detta lägger ihop textfiler i sökvägen och skapar en ny texfil med namnet target.txt

Hur smidigt som helst!

Märkt , ,

Dela upp en flersidig TIFF till enkelsidor

#region Split Tiff file 
 
        /// <summary> 
        /// This method is called when user clicks on the SplitTiff button 
        /// </summary> 
        /// <param name="sender"></param> 
        /// <param name="e"></param> 
        private void btnSplitTiff_Click(object sender, EventArgs e) 
        { 
            try 
            { 
                if (!ValidateSelectedFile()) 
                    return; 
 
                // Split the multipage Tiff file 
                Split(txtTiffFilePath.Text, txtOutPutDir.Text); 
            } 
            catch 
            { 
                MessageBox.Show("Error occured while splitting a Tiff file."); 
            } 
 
            MessageBox.Show(@"Splitted Files stored at " + txtOutPutDir.Text); 
        } 
 
        private void Split(string pstrInputFilePath, string pstrOutputPath) 
        { 
            //Get the frame dimension list from the image of the file and 
            Image tiffImage = Image.FromFile(pstrInputFilePath); 
            //get the globally unique identifier (GUID) 
            Guid objGuid = tiffImage.FrameDimensionsList[0]; 
            //create the frame dimension 
            FrameDimension dimension = new FrameDimension(objGuid); 
            //Gets the total number of frames in the .tiff file 
            int noOfPages = tiffImage.GetFrameCount(dimension); 
 
            ImageCodecInfo encodeInfo = null; 
            ImageCodecInfo[] imageEncoders = ImageCodecInfo.GetImageEncoders(); 
            for (int j = 0; j < imageEncoders.Length; j++) 
            { 
                if (imageEncoders[j].MimeType == "image/tiff") 
                { 
                    encodeInfo = imageEncoders[j]; 
                    break; 
                } 
            } 
 
            // Save the tiff file in the output directory. 
            if (!Directory.Exists(pstrOutputPath)) 
                Directory.CreateDirectory(pstrOutputPath); 
 
            foreach (Guid guid in tiffImage.FrameDimensionsList) 
            { 
                for (int index = 0; index < noOfPages; index++) 
                { 
                    FrameDimension currentFrame = new FrameDimension(guid); 
                    tiffImage.SelectActiveFrame(currentFrame, index); 
                    tiffImage.Save(string.Concat(pstrOutputPath, @"\", index, ".TIF"), encodeInfo, null); 
                } 
            } 
        } 
 
        /// <summary> 
        /// This method validates the inputs 
        /// </summary> 
        /// <returns>return true if the inputs are valid</returns> 
        private bool ValidateSelectedFile() 
        { 
 
            // Validate the file path for the selected file. 
            if (txtTiffFilePath.Text.Trim().Length == 0) 
            { 
                MessageBox.Show("Please select Input file."); 
                return false; 
            } 
            // Validate the output folder path 
            if (txtOutPutDir.Text.Trim().Length == 0) 
            { 
                MessageBox.Show("Please select Output folder."); 
                return false; 
            } 
 
            // Validate whether the selected file is tiff file or not 
            if (!txtTiffFilePath.Text.ToLower().EndsWith(".tif") && !txtTiffFilePath.Text.ToLower().EndsWith(".tiff")) 
            { 
                MessageBox.Show("Please select Valid tiff file"); 
                return false; 
            } 
 
            // Validate whether file exists or not 
            if (!File.Exists(txtTiffFilePath.Text)) 
            { 
                MessageBox.Show("File doesn't exist at the specified location"); 
                return false; 
            } 
 
            return true; 
        } 
 
        /// <summary> 
        /// This method will open the file dialog to select the tif file 
        /// </summary> 
        /// <param name="sender"></param> 
        /// <param name="e"></param> 
        private void btnBrowse_Click(object sender, EventArgs e) 
        { 
            //Show the open dialog. 
            OpenFileDialog openDialog = new OpenFileDialog(); 
            openDialog.Title = "Select Tiff File"; 
            openDialog.Filter = "Image Files(*.TIF)|*.TIF|Image Files(*.TIFF)|*.TIFF"; 
            openDialog.FilterIndex = 0; 
            openDialog.RestoreDirectory = true; 
            DialogResult dlgResult = new DialogResult(); 
            //To show the dialog box everytime ok is clicked on error keep it in while. 
 
            dlgResult = openDialog.ShowDialog(); 
            switch (dlgResult) 
            { 
                case DialogResult.OK: 
                    // Get the path for the selected file 
                    txtTiffFilePath.Text = openDialog.FileName; 
                    break; 
                case DialogResult.Cancel: 
                    break; 
                default: 
                    break; 
            } 
        } 
 
        /// <summary> 
        /// This method will open the folder dialog to selected the output folder 
        /// </summary> 
        /// <param name="sender"></param> 
        /// <param name="e"></param> 
        private void btnBrowseFolder_Click(object sender, EventArgs e) 
        { 
            FolderBrowserDialog lobjDialog = new FolderBrowserDialog(); 
            lobjDialog.ShowNewFolderButton = true; 
            DialogResult dlgResult = lobjDialog.ShowDialog(); 
 
            switch (dlgResult) 
            { 
                case DialogResult.OK: 
                    // Get the path for the selected folder 
                    txtOutPutDir.Text = lobjDialog.SelectedPath; 
                    break; 
                case DialogResult.Cancel: 
                    break; 
                default: 
                    break; 
            } 
        } 
 
        #endregion 
 
        private void btnReadProperties_Click(object sender, EventArgs e) 
        { 
            if (txtTiffFilePath.Text.Trim().Length == 0) 
                return; 
 
            // Read Tiff file tags 
            ReadTiffProperties(txtTiffFilePath.Text); 
        } 
 
        /// <summary> 
        /// This method reads the value of each metadata property of the tiff file 
        /// </summary> 
        /// <param name="pstrFilePath"></param> 
        private void ReadTiffProperties(string pstrFilePath) 
        { 
            try 
            { 
                System.Drawing.Bitmap newImage = new System.Drawing.Bitmap(pstrFilePath); 
 
                // Get the properties collection of the file 
                System.Drawing.Imaging.PropertyItem[] tiffProperties = newImage.PropertyItems; 
                PropertyItem currentItem = null; 
                object objValue = null; 
 
                for (int i = 0; i < tiffProperties.GetLength(0); i++) 
                { 
                    currentItem = tiffProperties[i];                     
                    objValue = ReadPropertyValue(currentItem.Type, currentItem.Value); 
                } 
                newImage = null; 
                tiffProperties = null; 
            } 
            catch (Exception ex) 
            { 
                MessageBox.Show(ex.ToString()); 
            } 
        } 
 
        /// <summary> 
        /// This method reads the tiff property based on the property type 
        /// </summary> 
        /// <param name="pItemType"></param> 
        /// <param name="pitemValue"></param> 
        /// <returns></returns> 
        private object ReadPropertyValue(short pItemType, byte[] pitemValue) 
        { 
            // Read all the properties of the file. 
            object objValue = null; 
            System.Text.Encoding asciiEnc = System.Text.Encoding.ASCII; 
            // Read the values based on the type of the propery 
            switch (pItemType) 
            { 
                case 2: // Value is a null-terminated ASCII string.  
                    objValue = asciiEnc.GetString(pitemValue); 
                    break; 
                case 3: // Value is an array of unsigned short (16-bit) integers. 
                    objValue = System.BitConverter.ToUInt16(pitemValue, 0); 
                    break; 
                case 4: // Value is an array of unsigned long (32-bit) integers. 
                    objValue = System.BitConverter.ToUInt32(pitemValue, 0); 
                    break;                 
                default: 
                    break; 
            } 
            return objValue; 
        }
Märkt , , ,

C# Läsa-Lägga till-Uppdatera-radera-från SQL

Läsa:

static void Read()
{
    try
    {
        string connectionString =
            "server=.;" +
            "initial catalog=employee;" +
            "user id=sa;" +
            "password=sa123";
        using (SqlConnection conn =
            new SqlConnection(connectionString))
        {
            conn.Open();
            using (SqlCommand cmd =
                new SqlCommand("SELECT * FROM EmployeeDetails", conn))
            {
                SqlDataReader reader = cmd.ExecuteReader();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        Console.WriteLine("Id = ", reader["Id"]);
                        Console.WriteLine("Name = ", reader["Name"]);
                        Console.WriteLine("Address = ", reader["Address"]);
                    }
                }

                reader.Close();
            }
        }
    }
    catch (SqlException ex)
    {
        //Log exception
        //Display Error message
    }
}

Lägga till:

static void Insert()
{
    try
    {
        string connectionString =
            "server=.;" +
            "initial catalog=employee;" +
            "user id=sa;" +
            "password=sa123";
        using (SqlConnection conn =
            new SqlConnection(connectionString))
        {
            conn.Open();
            using (SqlCommand cmd =
                new SqlCommand("INSERT INTO EmployeeDetails VALUES(" +
                    "@Id, @Name, @Address)", conn))
            {
                cmd.Parameters.AddWithValue("@Id", 1);
                cmd.Parameters.AddWithValue("@Name", "Amal Hashim");
                cmd.Parameters.AddWithValue("@Address", "Bangalore");

                int rows = cmd.ExecuteNonQuery();

                //rows number of record got inserted
            }
        }
    }
    catch (SqlException ex)
    {
        //Log exception
        //Display Error message
    }
}

Uppdatera

static void Update()
{
    try
    {
        string connectionString =
            "server=.;" +
            "initial catalog=employee;" +
            "user id=sa;" +
            "password=sa123";
        using (SqlConnection conn =
            new SqlConnection(connectionString))
        {
            conn.Open();
            using (SqlCommand cmd =
                new SqlCommand("UPDATE EmployeeDetails SET Name=@NewName, Address=@NewAddress" +
                    " WHERE Id=@Id", conn))
            {
                cmd.Parameters.AddWithValue("@Id", 1);
                cmd.Parameters.AddWithValue("@Name", "Munna Hussain");
                cmd.Parameters.AddWithValue("@Address", "Kerala");

                int rows = cmd.ExecuteNonQuery();

                //rows number of record got updated
            }
        }
    }
    catch (SqlException ex)
    {
        //Log exception
        //Display Error message
    }
}

Radera:

static void Delete()
{
    try
    {
        string connectionString =
            "server=.;" +
            "initial catalog=employee;" +
            "user id=sa;" +
            "password=sa123";
        using (SqlConnection conn =
            new SqlConnection(connectionString))
        {
            conn.Open();
            using (SqlCommand cmd =
                new SqlCommand("DELETE FROM EmployeeDetails " +
                    "WHERE Id=@Id", conn))
            {
                cmd.Parameters.AddWithValue("@Id", 1);
                
                int rows = cmd.ExecuteNonQuery();

                //rows number of record got deleted
            }
        }
    }
    catch (SqlException ex)
    {
        //Log exception
        //Display Error message
    }
}
Märkt , , ,

HTML 5 – Canvas

Att spela spel på internet genom Silverlight- eller Flash-baserade gränssnitt blir alltmer populärt, vilket man kan se om man är flitig användare av Facebook. Dessa spel kräver att man har rätt komponent installerad för att kunna köra dem över huvud taget. På vissa enheter som till exempel mobiltelefoner händer det ofta att man inte kan installera dessa plugins, och då måste man lösa det på ett annat sätt. Det skulle t.ex. kunna lösas genom att man skriver ett separat program som påminner om det man visade på sidan, men även det kan ge problem då man har flera olika applikationer att underhålla.

För att smidigt få det att fungera på både datorer, mobiltelefoner och andra enheter så skulle man kunna använda Canvas. Canvas är en del av HTML5 och gör det möjligt att rita ut objekt direkt på skärmen med hjälp av nya JavaScript-API:er.

I exemplen så använder jag Internet Explorer 9 som använder hårdvaruaccelerering för att rendera objekten, men alla webbläsare med stöd för Canvas bör klara av detta.

Fortsätt läsa

Märkt , ,

Importera databas från SQL server 2008 till 2005

Skapa SQL Server Script

När jag försökte importera en databas ifrån SQL Server 2008 till SQL Server 2005 stötte jag på ett problem. Felmeddelandet  var ”Test1 cannot be opened because it is version 655. This server supports version 612 and earlier”.  För att lösa detta använde jag mig av SQL Server Script-funktionen i SQL Server.

Detta är säkert inget nytt för många, men jag tänkte dela med mig av hur jag gjorde, så kanske det kan hjälpa fler nybörjare.

Steg-för-steg

  1. I Microsoft SQL Server Management Studio, anslut till SQL Server 2008. Högerklicka på den databas du vill göra en backup på och välj Tasks -> Generate Scripts.
  2. I Welcome to the Generate SQL Server Scripts Wizard, klicka på Next.
  3. I Select Database, välj databasen (ex Test1) och kryssa i Script all objects in the selected database. Klicka sedan på Next.
  4. I Choose Script Options, sätt Script Database Create till False och Script for Server Version till SQL Server 2005.
    Notering: Du kan sätta Script Database Create till True om källan och målet för databasfilerna är på samma plats.
  5. Fortsätt till Choose Script Options, skrolla ner och sätt Script Data till True. Klicka Next
    Notering: Om du sätter detta värde till true, inkluderas data ifrån alla tabeller till ett script.
  6. I Output Option, välj en destination för scriptet. Välj Script to file  och välj en destination där du vill spara scriptet. Klicka på Next.
  7. I Script Wizard Summary, kan du gå igenom dina inställningar. Klicka sedan påFinish.
  8. I Generate Script Progress, skapas ditt SQL Server script.
  9. Anslut till SQL Server 2005, skapa en ny databas. Högerklicka och välj Database ->New Database.
    Notering: Om du har satt Script Database Create till True i steg 4, behöver du inte skapa databasen manuellt.
  10. Skriv ‘Test1’ som databasnamn. Klicka sedan på OK.
  11. Dubbleklicka på SQL Server scriptet som du har skapat och klicka på Execute.
  12. Nu har databasen ‘Test1’ återställts på SQL Server 2005.
Märkt , , , ,

Synka Google kalender med Windows 7 gadget

Bilderna är lånade, så dom är på engelska.

Logga in på Google Kalender, tryck på inställningar, och sedan Kalendrar. Klicka på den kalender som du vill synka.

 

Fortsätt läsa

Märkt , , ,

Använda Eclipse för att skapa Android-appar

Jag tänkte ge mig Javaprogrammering, för att skapa en Android-app. Tänkte dela med mig av vad man behöver och hur man går till väga.

Detta behövs för att utveckla Android appar i Eclipse:

  • Installera Android SDK och ADT
  • Konfigurera Eclipse att fungera med Android SDK
  • Skriva ett kort kodexempel och ladda upp till emulator

Jag förutsätter att du redan har Java JRE/SDK och Eclipse for Java Developers installerat. Om du inte har Eclipse installerat, kan du hitta det här.

Här är en lista över rubrikerna så som de förekommer i det här inlägget:

  • Installera Android SDK
  • Installera ADT plugin för Eclipse
  • Konfigurera Eclipse
  • Skapa projekt och kodexempel
  • Ladda upp kod till emulator
  • Utveckling för hårdvaruenheter

Fortsätt läsa
Märkt , , ,

Videokurs för HTML5 och CSS3

Lär dig HTML5 och CSS3Är du sugen på att lära dig HTML5 och CSS3, ska du ta en titt på den här fria videokursen hos Channel 9 – Microsofts sajt för videos om att utveckla för företagets produkter och tjänster. Kursen är indelad i 21 olika avsnitt och börjar i det mest grundläggande.

Vill du bygga webbsajter är det HTML5 och CSS3 som gäller idag. Fast det handlar inte bara om webbsajter. Det kommande Windows 8 cirkulerar mycket runt webbstandarder, då det nya Metro-gränssnittet bygger till stor del på just HTML5, CSS3 och Javascript.

Förutom att bygga webbsajter kan du även skapa webbapplikationer med HTML5 och CSS3 – tillsammans med bland annat Javascript. Idag är det vanliga applikationer för mobila enheter mer populära än webbappar, men med största säkerhet kommer utvecklingen gå mot att man bygger allt mer i webbstandarder, eftersom man då exempelvis inte behöver skapa olika appar för olika plattformar.

Hur som helst är kursen i HTML5 och CSS3 hos Channel 9 som sagt indelad i 21 videokurser av varierande längd. De är välgjorda och även den absoluta nybörjaren kan följa med.

Besök Channel 9.

Märkt ,

Validera en XML med hjälp av ett schema (XSD)

Med hjälp av scheman kan ett program validera informationen. Schemat ger ramen för strukturering av informationen och garanterar att informationen blir meningsfull för upphovspersonen och andra användare. Om en användare matar in ogiltig information, till exempel text i ett datumfält, kan programmet uppmana användaren att mata in rätt typ av information. Under förutsättning att informationen i en XML-fil följer reglerna i ett visst schema kan vilket program som helst som stöder XML använda schemat för att läsa, tolka och bearbeta informationen.

Här är ett exempel i C# .Net:

using System;
using System.Xml;
using System.Xml.Schema;

class XmlSchemaSetExample
{
static void Main()
{
XmlReaderSettings booksSettings = new XmlReaderSettings();
booksSettings.Schemas.Add("http://www.contoso.com/books", "books.xsd");
booksSettings.ValidationType = ValidationType.Schema;
booksSettings.ValidationEventHandler += new ValidationEventHandler(booksSettingsValidationEventHandler);

XmlReader books = XmlReader.Create("books.xml", booksSettings);

while (books.Read()) { }
}

static void booksSettingsValidationEventHandler(object sender, ValidationEventArgs e)
{
if (e.Severity == XmlSeverityType.Warning)
{
Console.Write("WARNING: ");
Console.WriteLine(e.Message);
}
else if (e.Severity == XmlSeverityType.Error)
{
Console.Write("ERROR: ");
Console.WriteLine(e.Message);
}
}
}
Märkt , ,

Konvertera C# strängar till andra typer

I C# binder Convert-klassen ihop grundläggande datatyper. Det är möjligt att konvertera (cast) till och från dom flesta av datatyperna genom att använda denna klass. Observera att du kan förlora information om du konverterar till en typ som klarar mindre information.

Exempel 1: Konvertera en C# sträng till integer

string myString = “1024″;
int myInteger = Convert.ToInt32(myString);

Exempel 2: Konvertera en C# integer till en sträng

int myInteger = 1024;
string myString = Convert.ToString(myInteger);

Exempel 3: Konvertera en C# float/double till en sträng

Det är möjligt att konvertera en float till en sträng, men inte tvärtom. Observera att “floating type values” i C# automatiskt är “double” om man inte forcerar kompileraren (f) för att ändra dom till float.

float myFloat = 1000.245f;
string myString1 = Convert.ToString(myFloat);

double myDouble = 1000.245;
string myString2 = Convert.ToString(myDouble);

Example 4: Konvertera en C# sträng till “float/double”

Om du vill konvertera en sträng till “float” måste du först konvertera den till “double” först.

string myString = “1000.245″;
double myDouble = Convert.ToDouble(myString);
float myFloat = (float) Convert.ToDouble(myString);

Märkt , ,