Thema: Snippets

  1. #1
    Avatar von Mentos
    Registriert seit
    18.11.2011
    Beiträge
    451
    Thanked 498 Times in 240 Posts

    Standard Snippets

    Hier einfach irgendwelche Codesnippets posten, die ihr z.B. für eure Projekte benötigt habt, vielleicht kann jemand anders die ja auch verwenden

    Spoiler:Kleiner .ini-Handler

    Speichert und liest .ini-Dateien! Nur für kleine Projekte zu empfehlen:

    PHP-Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    using System.IO;

    namespace 
    Fun
    {
        public class 
    SettingsHandler
        
    {
            
    #region Variables
            
    private const char COMMENT_CHAR '#';

            private 
    Dictionary<StringStringkeyValues = new Dictionary<stringstring>();

            private 
    string fileName String.Empty;

            private 
    StringBuilder configFileWriter = new StringBuilder();
            
    #endregion

            /// <summary>
            /// Initialisiert einen neuen SettingsHandler
            /// </summary>
            /// <param name="fileName">Die Datei in die geschrieben o. die gelesen werden soll</param>
            
    public SettingsHandler(string fileName)
            {
                
    this.fileName fileName;
            }

            
    #region Alles zum Lesen

            /// <summary>
            /// Liest eine Datei aus!
            /// </summary>
            
    public void ReadFile()
            {
                if (!
    File.Exists(fileName))
                {
                    throw new 
    Exception("Die Datei existiert nicht!");
                }
                else
                {
                    
    StreamReader sr = new StreamReader(fileName);
                    
    string line String.Empty;
                    while ((
    line sr.ReadLine()) != null)
                    {
                        if (!
    line.StartsWith(COMMENT_CHAR.ToString()))
                        {
                            
    int splitChar line.IndexOf('=');
                            if (
    splitChar != -1)
                            {
                                
    string key line.Substring(0splitChar).Trim().ToUpper();
                                
    string value line.Substring(splitChar 1).Trim();
                                
    keyValues.Add(keyvalue);
                            }
                        }
                    }
                    
    sr.Close();
                }
            }

            
    /// <summary>
            /// Holt einen Wert aus der gelesenen Datei
            /// </summary>
            /// <typeparam name="T">Der gewünschte Datentyp (z.B. String)</typeparam>
            /// <param name="key">Der Schlüssel, unter dem der Wert gespeichert ist</param>
            /// <returns>Der Wert</returns>
            
    public T Get<T>(string key)
            {
                
    T returnvalue = default(T);
                try
                {
                    if (
    keyValues.ContainsKey(key.ToUpper()))
                    {
                        
    returnvalue = (T)Convert.ChangeType(keyValues[key], typeof(T));
                    }
                }
                catch (
    Exception ex)
                {
                    
    Console.WriteLine("ERROR WHILE LOADING SETTINGS: " ex);
                }
                return 
    returnvalue;
            }
            
    #endregion

            #region Alles zum Schreiben

            /// <summary>
            /// Fügt einen Wert hinzu
            /// </summary>
            /// <typeparam name="T">Die Art des zu schreibenden Wertes</typeparam>
            /// <param name="key">Der Schlüssel, unter dem der Wert gespeichert wird</param>
            /// <param name="value">Der Wert</param>
            
    public void Write<T>(String keyT value)
            {
                
    configFileWriter.Append(key).Append(" = ").Append(value).Append(Environment.NewLine);
            }

            
    /// <summary>
            /// Fügt ein Kommentar hinzu
            /// </summary>
            /// <param name="comment">Der Kommentar</param>
            
    public void WriteComment(String comment)
            {
                
    configFileWriter.Append(COMMENT_CHAR).Append(" ").Append(comment).Append(Environment.NewLine);
            }

            
    /// <summary>
            /// Schreibt die Werte und Kommentare schlussendlich in die Datei
            /// </summary>
            
    public void WriteToFile()
            {
                try
                {
                    
    StreamWriter sw = new StreamWriter(fileName);
                    
    sw.Write(configFileWriter.Remove(configFileWriter.Length 11).ToString());
                    
    sw.Close();
                }
                catch (
    Exception x)
                {
                    throw new 
    Exception("Fehler beim Schreiben der Datei:" x);
                }
            }
            
    #endregion

        
    }

    Example:

    PHP-Code:
    //Schreiben
    Util.SettingsHandler handler = new Util.SettingsHandler("settings.ini");
                
    handler.WriteComment("Ich bin eine Beispieldatei!");
                
    handler.Write<bool>("MENTOS_IST_GEIL"true);
                
    handler.WriteToFile();
    //Lesen
    Util.SettingsHandler handler = new Util.SettingsHandler("config/settings.ini");
                    
    handler.ReadFile();
                    
    bool mentos handler.Get<bool>("MENTOS_IST_GEIL"); 
    Wie gesagt nur für kleine Projekte - aber dafür reicht das Ding


    Spoiler:ExtendedGroupBox

    Eine GroupBox, bei der man die RandFarbe sowie die Farbe der Überschrift anpassen kann!
    PHP-Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Drawing;
    using System.ComponentModel;

    namespace 
    Components
    {
        class 
    ExtendedGroupBox GroupBox
        
    {
            [
    Category("Appearance"), DefaultValue(typeof(Color), "White")]
            [
    Description("The Font-Color of the caption")]
            public 
    Color CaptionColorgetset; }


            [
    Category("Appearance"), DefaultValue(typeof(Color), "White")]
            [
    Description("The Border-Color")]
            public 
    Color BorderColor getset; }

            protected 
    override void OnPaint(PaintEventArgs e)
            {
                
    Pen p = new Pen(BorderColor2);
                
    Int32 x = (int)e.Graphics.MeasureString(TextFont).Width;
                
    Int32 y = (int)e.Graphics.MeasureString(TextFont).Height 2;
                
    e.Graphics.DrawRectangle(p1ye.ClipRectangle.Width 2
                
    e.ClipRectangle.Height y);
                
    e.Graphics.FillRectangle(new SolidBrush(BackColor), 91xy);
                
    e.Graphics.DrawString(TextFont, new SolidBrush(CaptionColor), 
                
    100);
                
    //base.OnPaint(e);
            
    }
        }


    Vielleicht kann man diesen Thread ja pinnen
    Geändert von Mentos (30.05.2012 um 22:59 Uhr)
    „Es sind nicht unsere Fähigkeiten, die zeigen, wer wir wirklich sind, es sind unsere Entscheidungen.“
    - Albus Dumbledore, Harry Potter 2


    /guestchat registerGuest

  2. #2
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    8.089
    Thanked 9.406 Times in 3.242 Posts
    Blog Entries
    5

    Standard AW: Snippets

    Bitte keine sinnlosen Sammelthreads machen.
    Wird zum einen unübersichtlich und verführt dazu, Basics wie MessageBox.Show() als Snippet zu posten.
    Was man als Snippet werten kann, besteht i.d.R. nicht nur aus einer Codezeile und kann in einem seperaten Thread übersichtlich gepostet werden.


  3. #3
    Avatar von rVs14
    Registriert seit
    18.11.2011
    Beiträge
    983
    Thanked 513 Times in 338 Posts

    Standard AW: Snippets

    Spoiler:Überpüft einen String auf Zahlen

    PHP-Code:
    public static boolean isnumeric(String input) {
            
    String zahlen "1:2:3:4:5:6:7:8:9:10";
            
    String[] splitted zahlen.split(":");
            
            for(
    int i 0splitted.length 1i++) {
                if(
    input.equals(splitted[i])) {
                    return 
    true;
                }else{
                    return 
    false;
                }
            }
        } 


    Edit: Ist übrigens Java, man kann es sich ja ganz leicht in C# übersetzen !
    Geändert von rVs14 (01.07.2012 um 17:25 Uhr)

  4. #4

    Registriert seit
    22.05.2012
    Beiträge
    202
    Thanked 21 Times in 9 Posts

    Standard AW: Snippets

    Zitat Zitat von rVs14 Beitrag anzeigen
    Spoiler:Überpüft einen String auf Zahlen

    PHP-Code:
    public static boolean isnumeric(String input) {
            
    String zahlen "1:2:3:4:5:6:7:8:9:10";
            
    String[] splitted zahlen.split(":");
            
            for(
    int i 0splitted.length 1i++) {
                if(
    input.equals(splitted[i])) {
                    return 
    true;
                }else{
                    return 
    false;
                }
            }
        } 


    Edit: Ist übrigens Java, man kann es sich ja ganz leicht in C# übersetzen !
    fail, und was machst du bei 11? 12? 13? ...

    PHP-Code:
        public boolean isNumeric(String num) {
            try {
                
    Integer.parseInt(num);
                return 
    true;
            } catch (
    NumberFormatException e) {
                return 
    false;
            }
        } 

  5. #5

    Registriert seit
    18.11.2011
    Beiträge
    226
    Thanked 165 Times in 82 Posts

    Standard AW: Snippets

    Schlechter geht es nicht und nicht mal Nullen erkennt das Drecks-Schnipsel.
    Tut mir Leid aber das geht mal gar nicht.

    PHP-Code:
    public static boolean isnummeric(String input) {
         for(
    int i 0<= input.lengthi++) {
              if(
    input.charAt(i) < 30 || input.charAt(i) > 39) {
                   return 
    false;
              }
         }
         return 
    true;


  6. #6

    Registriert seit
    06.11.2011
    Beiträge
    418
    Thanked 686 Times in 246 Posts

    Standard AW: Snippets

    Code:
    public static boolean isNumeric(String input) {
    	String[] nums = input.split("\\.");
    
    	if (nums.length > 2) { // 2 kommas (bzw. punkte) in einer zahl
    		return false;
    	}
    
    	for (String num : nums) {
    		for (char digit : num.toCharArray()) {
    			if (digit < 0x30 || digit > 0x39) { // keine ziffer
    				return false;
    			}
    		}
    	}
    
    	return true;
    }
    Für Kommazahlen.

  7. #7
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    8.089
    Thanked 9.406 Times in 3.242 Posts
    Blog Entries
    5

    Standard AW: Snippets

    Welcher Teil von "Keine sinnlosen Sammelthreads" ist nicht verständlich?
    Wenn ihr Snippets posten wollt: .Net bzw das Subforum der jeweiligen Sprache wählen und pro Snippet einen Thread erstellen.
    Geschlossen.


Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.