Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von pdelvo
Thema: Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch
Am im Forum: Smalltalk

Meine Lösung:

         public static string Pattern2
        {
            get
            {
                // TODO: Pattern fluent deklarieren
                return Pattern.With.Literal("<").WhiteSpace.Repeat.ZeroOrMore.NamedGroup("tag", Pattern.With.Literal("beispiel"))
                    .Group(
                    Pattern.With.WhiteSpace.Repeat.OneOrMore.NamedGroup("key", Pattern.With.Set(Pattern.With.Word).Repeat.OneOrMore)
                    .WhiteSpace.Repeat.ZeroOrMore.Literal("=").WhiteSpace.Repeat.ZeroOrMore
                     .Group(Pattern.With.Choice.Either(
                        Pattern.With.Literal("'").NamedGroup("value", Pattern.With.NegatedSet(Pattern.With.Literal("'>")).Repeat.ZeroOrMore).Literal("'")
                ,
                Pattern.With.NamedGroup("value", Pattern.With.NegatedSet(Pattern.With.Literal("'>").WhiteSpace).Repeat.OneOrMore)
                )
                ).Repeat.Optional).Repeat.Optional.WhiteSpace.Repeat.ZeroOrMore.Literal(">");

            }
        }

Die tests laufen alle durch, allerdings finde ich da den ganz normalen regulären ausdruck einfacher zu lesen

Thema: Performantes Caching für float[] aus Stream?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Meinst du vielleicht einen Ringbuffer, bzw eine Queue?

Thema: Performantes Caching für float[] aus Stream?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wo ist denn da ne große Datenmenge? 64mb pro Minute sind doch nicht viel.. (Ich komme beim nachrechnen auch nur auf 7mb/Minute 32(Kanäle) * 1000(Werte) * 4(Bytes bei einem float) * 60(Sekunden in einer Minute) = 7680000 b = 7500 kb = 7,3mb)

Ich verstehe das problem gerade nicht so ganz

Thema: Windows Phone 7 Unlock
Am im Forum: Smalltalk

Die lassen sich aber auch mit Developer Unlock nicht nutzen. Dazu brauchst du schon einen Interop Unlock. Zu sagen ist noch, dass du einen Developerunlock als Schüler und Student kostenlos bekommst über Dreamspark

Thema: Flächeninhalt zwischen 3 Punkten ausrechnen
Am im Forum: Grafik und Sound

Jetzt aber:


        static double Area(double x1, double y1, double x2, double y2, double x3, double y3)
        {
            return 0.5 * ((y3 + y1) * (x3 - x1) + (y2 + y3) * (x2 - x3) - (y2 + y1) * (x2 - x1));
        }

Thema: AnkhSVN Revision Nummer in Build einbeziehen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hab es jetzt wie in der FAQ gelöst, auch wenn mir das ändern der AssemblyInfo Datei nicht gefällt, da die dann immer als Update auf dem Server landet :/

Thema: ASP.NET Windows Authentifizierung, auf Rollen/Windows Gruppen zugreifen
Am im Forum: Web-Technologien

vertausche mal das allow und das deny. ich könnte mir vorstellen, dass die Liste von oben nach unten abgearbeitet wird, und der erste Punkt der auf den Nutzer passt ist im zweiten Fall das deny, das ja für alle gilt.

Thema: AnkhSVN Revision Nummer in Build einbeziehen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich hab mir gerade was gebastelt, eher quick & dirty, aber es funktioniert und reicht für mich erst mal. Das ganze aktualisiert jeweils nur die Assembly Version. Ich habe es nicht hinbekommen, die Dateiversion auch zu aktualisieren. Gebraucht wird das ILMerge Tool, sowie die SharpSVN Bibliothek.

    class Program
    {
        static void Main(string[] args)
        {
            string assembly = args[0];
            string repoPath = args[1];
            string ilmerge = @"%PROGRAMFILES(X86)%\Microsoft\ILMerge\ILMerge.exe";
            ilmerge = Environment.ExpandEnvironmentVariables(ilmerge);

            Version version = GetAssemblyVersion(assembly);

            using (SvnClient client = new SvnClient())
            {
                SvnInfoEventArgs info;
                Uri repos = new Uri(repoPath);
                client.GetInfo(repos, out info);
                version = new Version(version.Major, version.Minor, version.Build, (int)info.Revision);
            }
            string param = "";
            if (File.Exists(assembly + "_old.exe"))
                File.Delete(assembly + "_old.exe");
            File.Move(assembly, assembly + "_old.exe");
            Process p = Process.Start(ilmerge, param = string.Format("/ver:{0} /out:{1} {2}", version, assembly, assembly + "_old.exe"));
            p.WaitForExit();
            File.Delete(assembly + "_old.exe");
        }

        private static Version GetAssemblyVersion(string assembly)
        {
            Assembly asm = Assembly.Load(File.ReadAllBytes(assembly));
            return asm.GetName().Version;
        }
    }

Dann als Postbuildereignis
"H:\Pfad\zum\Tool.exe" $(TargetPath) "https://schlag-mich-tod/svn/wasweissich/"

Wie gesagt eine Fehlerbehandlung fehlt, aber da hab ich aktuell keine Lust zu. Wer es benutzen will kann das ja noch einbauen. Wenn trotzdem jemand etwas eleganteres kennt, würde ich mich über weitere Antworten freuen! :)

Thema: AnkhSVN Revision Nummer in Build einbeziehen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo!

Ich benutze aktuell AnkhSVN, um einen SVN Support für mein Visual Studio 2010 Professional zu bekommen. Nun brauche ich das aktuell für eine Software, von der ich regelmäßig einen Build auf den Server ziehe, wo das programm dann drauf läuft. Nun möchte ich wissen, zu welcher Revision die Version gehört, also die aktuelle Revision Nummer in die Datei & Assembly Version mit einbeziehen. Ich habe da schon etwas länger gesucht, aber noch nichts gefunden. Es geht mir hierbei um die SVN Revision Nummer, also einfach einen * benutzen funktioniert nicht.

Lieben Gruß

pdelvo

Thema: regulärer Ausdruck für href-Attribut passt nicht auf URL alleine
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Der reguläre Ausdruck passt da nicht. Versuch mal, ob das einen Match liefert:

href="http://www.mycsharp.de/wbb2/newthread.php"

Thema: WCF - Binding an mehrere IP's - WinAuth - Unterschiedliches Verhalten
Am im Forum: Netzwerktechnologien

Vielleicht liegt es an der falschen Adresse, wenn du IPV6 verwendest

net.tcp://[ipv6-adresse]:port/ClientService.

Die IP muss in eckige Klammern, damit eindeutig ist, welche teile zur IP, und welche zum Port gehören

Thema: MTSC Verbindung zur Laufzeit erzeugen
Am im Forum: GUI: Windows-Forms

Oder füg es zur Form hinzu, öffne die Form.Designer.cs Datei und guck was die anders macht als du

Thema: Visual Studio Addon: Achievements (Freeback zu bestimmten Programmierleistungen)
Am im Forum: Szenenews

Habe es mir eben schon angesehen. Die Texte zu den Achievments sind echt lustig.

Zitat
Interrupting Cow
Have 10 breakpoints in a file. Where's that bug? Could here, could be there, could be anywhere!

Thema: Rechnen mit unbegrenzt großen Zahlen (Taschenrechner)
Am im Forum: Rund um die Programmierung

Wenn ich das Ausrechne komme ich auf eine zahl mit 13743895347 Stellen bei einem Verbrauch von 4 GB. Die größte Darstellbare Zahl ist dabei (wenn man vom Speicherplatz für Verwaltung absieht:

Bytes pro GB = 2^30 = 1073741824
Bytes für 4GB = 4 * 2^30 = 2^32 = 4294967296
In Bits = 8 * 2^32 = 2^35 = 34359738368

Also ist die Größte darstellbare Zahl = 2^34359738368 - 1

Ich hoffe ich habe mich nirgendwo verrechnet. Was noch sein kann ist, dass die Ansteuerung der Bytes durch einen integer passiert, dass würde die Größe des Speichers auf 4GB begrenzen.

Thema: Hole Punching (1 zu n) Verbindungen
Am im Forum: Netzwerktechnologien

Ob das funktioniert hängt von der NAT Einstellung des Routers ab. Aber wenn das Hole Punching an sich funktioniert sollte das dann auch für einen anderen Client funktionieren.

Thema: XNA: Dynamische Grösse eines Textes ändern
Am im Forum: Grafik und Sound

Du kannst doch den scale Parameter benutzen um den Text zu skalieren

Thema: Effizientes speichern von Daten (25500 Objekte in einer Liste?)
Am im Forum: Rund um die Programmierung

Überlege dir wie viel Platz pro Eintag gebraucht wird. Wenn man von grob 1kb/pro Objekt ausgeht, was vermutlich vollkommen übertrieben ist landest du bei schlappen 24mb. also noch lange nicht besorgniserregend

Thema: bytearray SCHNELL in intarray konvertieren
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

0xafffffff ist definiert, und zwar als -1342177281. Und schneller bekommt man mMn aus einem Byte Array kein Integer Array. Mein Code hat den Vorteil, das nichts kopiert wird, und das das Zurückkonvertieren, wie das hinkonverteren keine Resourcen kostet. Um Audio Daten zu bearbeiten hat es sich bei mir als Vorteilhaft gezeigt. Ich konnte in meinem Fall mit den Shorts schnell arbeiten und hatte die Daten sofort wieder als byte Array zum weiterschicken

Thema: bytearray SCHNELL in intarray konvertieren
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich habe mir für sowas nen kleinen Hack gebaut. Ob es das performanteste oder beste ist um sowas zu machen weis ich nicht. PCM Daten sollten doch aber shorts sein(?) Genau für sowas hab ich das nämlich gebaut. Für integers kannst du das aber genau so umbauen

    /// <summary>
    /// You must not use Array.Length! Use AudioBuffer.GetLength instead.
    /// </summary>
    [StructLayout(LayoutKind.Explicit, Pack=2)]
    public class AudioBuffer
    {
        [FieldOffset(0)]
        int _length;
        
        [FieldOffset(8)]
        byte[] _byteBuffer;

        [FieldOffset(8)]
        short[] _shortBuffer;

        public AudioBuffer(byte[] allocate)
        {
            if (allocate == null)
                throw new ArgumentNullException("allocate");
            if (allocate.Length % sizeof(short) != 0)
                throw new ArgumentOutOfRangeException("allocate");
            _byteBuffer = allocate;
        }

        public byte[] ByteBuffer { get { return _byteBuffer; } }
        public short[] ShortBuffer { get { return _shortBuffer; } }

        public int GetLength()
        {
            return _byteBuffer.Length /  sizeof(short);
        }
    }

Wichtig dabei ist, dass du ShortBuffer.Length nicht benutzt, sonodern Die GetLength Methode. Sonst bekommst du eine falsche Länge

//Edit Blöd wenn man beim kurzen Überarbeiten des Codes Fehler einbaut

Thema: WP7 Konfiguration einer App
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Für Einstellungen finde ich IsolatedStorageSettings besser geeignet. Da braucht man sich nicht um das Serialisieren zu kümmern

Thema: Wie werden in C# bidirektionale Assoziationen erstellt?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

public class ClassA
{
    public ClassB OtherClass{ get; set; }
}
public class ClassB
{
    public ClassA OtherClass{ get; set; }
}

Wo ist das Problem?

Thema: WP7 Textdatei einrichten / schreiben
Am im Forum: GUI: WPF und XAML

Wenn es um Debugdaten geht benutze ich immer Debug.WriteLine(...). Dann bekommt man die infos schön in der Ausgabe im VS angezeigt. Dazu muss die Anwendung aber mit angeschaltetem Debugger laufen. Sonst halt wenn es um kleine Dinge geht kurz ne MessageBox anzeigen, oder Breakpoints setzen. Mir kommt gerade aber die dee, ob man sowas nicht übers Netzwerk machen kann. Müsstest du dich halt kurz ransetzen und einen Client + Serverbibliothek schreiben und darüber in eine Datei schreiben. Das kann man ja dann später wiederverwenden

Thema: Alle Controls für kurze Zeit auf Aktiv setzen
Am im Forum: GUI: WPF und XAML

Warum blockiert meine UI

Thema: Download ab bestimmten Punkt fortsetzen
Am im Forum: Web-Technologien

Stichwort Range Requests

Thema: Coding Styles Horror
Am im Forum: Smalltalk

AppDomainSetup.ShadowCopyFiles

Zitat
Typ: System.String
Der Zeichenfolgenwert "true" für aktiviertes Erstellen von Schattenkopien oder "false" für deaktiviertes Erstellen von Schattenkopien.

Also ich bin da ganz der selben Meinung. Immer dieser neumodische Kram. Wer braucht schon 'Booleans'.

Thema: Warum ist byte+byte implizit ein int? (und analoge Überlegungen für char+char und float+float)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

chars sind auch Zahlen. und klar kommt wenn du sie addierst wieder eine zahl raus.

Thema: Warum ist byte+byte implizit ein int? (und analoge Überlegungen für char+char und float+float)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Single = float. float ist das Schlüsselwort. Der passene Typ ist System.Single ;)

Das Argumen, dass 2 bytes addiert schnell was größeres gibt halte ich für nicht Aussagekräftig. Das selbe Spiel kann man mit nem int auch machen. Das ergibt auch schnell ne größere Zahl. Der Grund ist, mMn, dass CPUs nicht mit bytes rechnen können. Sie rechnen mit Integers (32bit) oder Longs(64bit). Aber auch unter 64bit macht .net ein integer draus.

Nachtrag: na toll. gfoidl war schneller^^

Thema: Eigener auf RNGCryptoServiceProvider basierender Zufallsgenerator gibt meistens 0 zurück
Am im Forum: Rund um die Programmierung

Warum nicht so?


//min ist inklusiv, max ist exklusiv
public static int GetRandomNumber(byte min, byte max)
{
            if(min ≥max) throw new ArgumentOutOfRangeException("'min' must be smaler then 'max'");
            RNGCryptoServiceProvider csp = new RNGCryptoServiceProvider();
            byte[] numbers = new byte[1];
            csp.GetBytes(numbers);
            return min + (numbers[0] % (max- min));
}

Warum machst du dort überhaupt eine Unterscheidung?

Thema: App (Win 7 Phone) mit MySQL-Datenbank verbinden
Am im Forum: Datentechnologien

Das stimmt allerdings nicht. Man kann sich eine lokale Datenbank im Issolated Storage erstellen und dort drauf zugreifen. Ein Beispiel ist im Mango Trainings Course. In den Offlinedaten ist ein entsprechendes Beispiel mit einer ToDo-Liste

Thema: UDP - Peer 2 Peer
Am im Forum: Netzwerktechnologien

[offtopic]Nein. Es funktioniert nicht, wenn der NAT Typ des Routers Strict ist. Dann nimmt er keine Udp Packete einer anderen IP, und einem anderem Port an, als die, zu denen er sie gesendet hat. Dann kannst du von dem anderen Rechner so viele Packete schicken wie du willst. Der Router blockiert sie. Teamviewer, Skype und co. leiten den Traffic dann über einen Server. Das ist dann entsprechend langsam. In Skype erscheint dann zB bei einem Filetransver dieses Schnecken-Symbol und es gibt im Tooltip den Hinweis darauf.[/offtopic]