Laden...

Forenbeiträge von Ezio Ingesamt 189 Beiträge

30.01.2015 - 10:18 Uhr

Hallo herbivore,

bezüglich VHS war das von mir auch nicht so gemeint.
Ich habe ja selbst geschrieben, dass es nur ein Einstieg ist.

(Diese können in der kurzen Zeit natürlich nur einen Einstieg bzw. Überblick bieten. Und müssten bei dir in der Region auch erstmal angeboten werden ...)

Es kommt auch immer ein wenig darauf an, wer das macht und ob er/sie selber Ahnung hat.

Ich hatte ja v.a. auf ein größeres, sauberes Referenz-Projekt mit modernen Techniken Wert gelegt.

Ezio

29.01.2015 - 14:15 Uhr

Hallo Augustiner,

ich möchte die Meinung von bredator so stehen lassen und noch meine Meinung ergänzen.
Zuvor sein noch gesagt, dass ich mein Wissen nur aus Büchern, Internet und von Kollegen bezogen habe -> also nix zu Fernkursen wirklich sagen kann.
Deshalb ist der letzte Abschnitt am wichtigsten.

Pro von (Fern-)Kursen:*Zwang etwas zu tun *Direkte Ansprechpartner *evtl. didaktisch hochwertiges Material (?)

Kontra: hauptsächlich der hohe Preis. (Ich glaub' der liegt aktuell so bei 1500€ ... 2000€)

Gegenbeispiel:* C#-Kurs bei der VHS ~150€ (5 Termine a 3x45min)

  • WPF-Kurs bei der VHS ~150€ (s.o.)

(Diese können in der kurzen Zeit natürlich nur einen Einstieg bzw. Überblick bieten. Und müssten bei dir in der Region auch erstmal angeboten werden ...)* 3 Bücher die sich mit C#, WPF und nochwas (z.B. WCF) beschäftigen ~180€

Summe 480€
Da hat man ~60% gespart. Lässt man die VHS sein, sind es dann ~90%. Man hat dann aber das Problem der Selbstmotivation und im schlimmsten Fall nur Foren als Unterstützung.
Vom Wissensstand weiß ich nicht, wie es da mit der Vergleichbarkeit aussieht.

Bezüglich der Anerkennung: Egal welchen Weg du gehst ist es gut, wenn du dich hinsetzt und ein Projekt mit >1000 Zeilen Code schreibst.
Das sollte OOP ordentlich umsetzen, eine Trennung von Oberfläche und Code umsetzen ( [Artikel] Drei-Schichten-Architektur ) und idealerweise mit WPF (weniger WinForms) und ADO.Net arbeiten (natürlich nur für den Desktop-Bereich gesprochen).
Wenn du sowas hinlegen kannst, ist es dann absolut egal, ob du nun ein SGD/ILS-Zertifikat hast oder nicht.
Wenn du dich dann noch mit Test-Driven-Development, Design-Pattern und Software-Architektur auskennst, bist du der Held. (Ich glaube aber nicht, dass man das halbtags in 2 Jahren alles schafft.)

Beste Grüße
Ezio

27.01.2015 - 07:58 Uhr

Vielen Dank für eure Antworten!
Das scheint dann doch ein wesentlich komplexeres Thema zu sein, als erst angenommen ... .
Da werde ich mich schön nach und nach einarbeiten und wieder viel lernen. 😉

26.01.2015 - 12:20 Uhr

Hallo Community,

ich möchte gerne in die Webentwicklung (z.Z. nicht professionell) einsteigen.
Da ich das (trotzdem) ordentlich machen möchte und mich eh in der Microsoft .NET Welt befinde, liegt ja ASP.NET nahe.
Soweit ich das mitbekommen habe, ist ASP.NET MVC "state of the art". Nur scheint es in diese Richtung kein ultimatives Einstiegsbuch (wie das in C# die Bücher von Galileo bzw. Rheinwerk sind) zu geben.
Meine Fragen sind deshalb:*Gibt es DEN Einstieg in diese Technologie? *Wenn nein: Reicht das Wissen über C# und mittelprächtige Kenntnisse in Richtung Datenbanken? Oder muss man noch mehr drum herum wissen? (mein Web-Technologie-Wissen geht nicht über HTML 4 und ein wenig CSS heraus) *Aus welchen Resourcen arbeitet man sich am besten ein? (gibt es empfehlenswerte Bücher/Blogs/Videos?)

Besten Dank für eure Unterstützung!

Ezio

22.01.2015 - 16:38 Uhr

Ich möchte dir auf die Schnelle noch zwei Stichwörter hinwerfen:
Composite-Pattern (siehe z.B. Wikipedia Kompositum (Entwurfsmuster) und philipphauer.de Das Composite Design Pattern Achtung Java ...). Da müsstest du eine Variante mit bekannten Elternobjekten basteln.
Und das Action Delegate.

Ich hoffe das bringt dich erstmal ein wenig weiter.

22.01.2015 - 13:23 Uhr

Hallo,

ich weiß, wir sind ein C#-Forum. Nur kommt es hin und wieder vor, dass sich ein VBler hierher "verirrt".
Deshalb meine Anregung: Wäre es nicht gut, wenn diese ihren Code in einen eigenen Code-Block schreiben könnten und nicht in die C#- oder die allgemeinen Code-Blöcke?
Einfach um die Lesbarkeit der Posts zu verbessern.

Gruß

Ezio

PS: Ich mag halt bunten Code 😁

22.01.2015 - 11:35 Uhr

Hallo Michael8192,

was meinst du damit?

Ich kann nicht als Funktion "0" übergeben.

Meinst du die null-Referenz?
Du willst doch eine Menü-Ebene nach oben, oder? Dann müsstest du bei "Back" auf das übergeordnete Menü-Objekt verweisen.
Sorry aber man merkt, dass du aus der imperativen Programmierung kommst.
An deiner Stelle würde ich nochmal die gesamte Klassen- bzw. Objekt-Struktur überdenken.
Die Struktur für dein Menü sieht nicht gerade gut gelöst aus.
Wenn ich das richtig überblicke, brauchst du eigentlich nur eine Menü-Klasse. Die konkreten Menüs sind dann die Objekte. Die Menüs enthalten rekursiv Submenüs die Instanzen der allgemeinen Menü-Klasse sind.

Ich bin mir nicht sicher, ob ein verschachteltes Menü wirklich leichter ohne GUI zu realisieren ist... .
Schau dir bitte wirklich nochmal die OOP an. Siehe
http://openbook.galileocomputing.de/visual_csharp_2012/ und http://openbook.galileocomputing.de/oop/

Grüße

Ezio

15.01.2015 - 11:08 Uhr

Hallo _Cashisclay,

würden dir

TickFrequency="..."

,

TickPlacement="Both"

und

IsSnapToTickEnabled="True"

weiterhelfen?

Grüße

Ezio

12.01.2015 - 07:52 Uhr

Hallo zommi,

wow ist das eine kurze und clevere Lösung.
Bei mir hat's alle Tests bestanden.

Glückwunsch! Damit wärst du an der Reihe.

Ezio

09.01.2015 - 15:48 Uhr

Hallo zusammen,
um dem Thread mal wieder etwas Leben einzuhauchen, eine Aufgabe von mir.
Ich weiß, dass es diese Aufgabe anders herum schon gab (2. Aufgabe oder so) und hoffe, dass es diese Richtung noch nicht gab.


[B]Aufgabe:[/B]
Erstelle eine möglichst kurze Methode zur Umwandlung einer Zahl von der römischen Darstellung in einen Integer.

[B]Bedingungen:[/B]
[list]
[*] Signatur der Methode: [csharp]int RomToInt(char[] romanNumber)[/csharp]
[*] Maximal 47 Zeilen (Leerzeilen zur Formatierung werden nicht mitgezählt; 1 Statement pro Zeile; Klammern dürfen - wo möglich - weggelassen werden)
[*] nur einfache Datentypen verwenden, keine Listen etc.
[*] Als römisch Ziffern-Zeichen sind I, V, X, L, C, D, M zu erwarten. Andernfalls ist eine Exception zu werfen.
[*] [EDIT] Natürlich ist die Subtraktionsregel zu beachten ;-)
[/list]

Viel Spaß!

Ezio

22.12.2014 - 10:31 Uhr

Hallo binaryblob,
wenn du den Code so testest wie er da steht, würde ich einfach mal im Fall einer Exception diese im catch-Block fangen und ausgeben / mitloggen.
Vermutlich kommst du irgendwann in einen Zustand, wo du in die catch-Anweisung rutschst (z.B. defekter Streaminhalt, ...).
Aber wenn die catch-Anweisung keine Info ausgibt, siehst du weder, dass ein Problem besteht, noch welches es ist.
BTW: Das Arbeiten mit using-Anweisungen finde ich irgendwie schöner und sicherer als Streams und Clients per Close-Methode zu beenden.

Grüße

Ezio

19.12.2014 - 13:49 Uhr

... und was bereitet dir Probleme / würde dir Probleme bereiten?
Machs mal konkret! z.B. der Name des Ursprungsverzeichnisses sollte es ja nicht sein. 😃
BTW: Es ist nicht unsere Aufgabe zu analysieren, welche Infos alles in dem Bildchen enthalten sind. 😉

19.12.2014 - 12:55 Uhr

Hallo Debiii,

was willst du machen?*Selbst ein Kopier-Tool erstellen *An die Informationen des laufenden Prozesses kommen

Ezio

02.12.2014 - 14:56 Uhr

Hallo GruenTee,

bitte achte auf die korrekten Begriffe, damit wir nicht Rätsel-Raten spielen müssen.
Das was du willst ist, in einem Fenster eine Aktion auslösen und in einem anderen das Ergebnis der Aktion anzeigen?!
Um es klar zu stellen: Du arbeitest bewusst mit 2 WPF-Projekten in einer Solution? Ist das wirklich nötig?
Um mit der WPF zu arbeiten, solltest du dir möglichst früh das MVVM-Pattern ansehen. Code-Behind führt früher oder später zu Problemen oder unsauberen Lösungen.
(Und noch ein Hinweis: nutze bitte die (C#)Code-Tags, um den Post übersichtlicher zu machen.)

Ezio

21.11.2014 - 09:29 Uhr

Hallo BeZi,

auch wenn es für dich den Anschein hat, als ob MVVM überflüssig ist muss ich dir sagen: Es scheint wirklich nur so.
Wir wollen dich alle nicht ärgern, aber du wirst früher oder später an einen Punkt kommen, wo du Implementationsprobleme bekommst oder alles extrem unübersichtlich wird. Dann wirst du dir sagen: "Hätte ich nur..."
Wir wollen dich nur gleich auf den richtigen Pfad führen und da ist WPF + MVVM state of the art.
Wenn du schon am Lernen bin, machs doch gleich richtig!

Aus meiner Sicht ist (zumindest für den Anfang) WPF != schnell & einfach. Zumindest liegt die Einstiegshürde sehr hoch. Wenn du's aber dann geschafft hast, dann ist es - wenn man es richtig macht (--> MVVM!!!) eine feine Sache.

In diesem Sinne: Bleib drann!

Ezio

13.11.2014 - 09:09 Uhr

Hallo taharkas,

ich würde es auch wie vbprogger machen. Und später auch über File.ReadAllLines() den Inhalt holen.
Falls du aber bei deiner Methode bleiben solltest, müsstest du den Streamreader in den try-Block und das file.Close() in den finally-Block schreiben.
Grundsätzlich ist bei Dateien auslesen ein Array suboptimal. Da sind generische Auflistungen (v.a. List<T>) das Mittel der Wahl.

Hinweis zu deiner Rechnung:
UTF8 hat eine variable Codierungslänge. 1 Zeichen == 1 Byte kannst du nur für US-ASCII annehmen.

Hinweis zum Umgang mit Fehlermeldungen:
Es ist meist besser - sowohl zu Angabe hier, alsauch zur Suche im Netz - mit den englischen Fehlermeldungen zu arbeiten.

Ezio

11.11.2014 - 09:25 Uhr

Hallo raxxix,

dein Problem liegt mit hoher Wahrscheinlichkeit in der "fehlerhaften" Bedienung des Charts, nicht an der Formel.
Ich kann das Verhalten nachstellen, wenn ich "i" als Integer von 0 bis 100 iteriere.
Damit erzeugst du eine Kurve vom Cosinus über ein vielfaches von 3, verschoben um Pi/3.
Wenn man so will, ist das ein Alias-Effekt bezogen auf das gewünschte Ergebnis.
Du arbeitest schlichtweg mit zu groben x-Werten. Eine Möglichkeit wäre "3*i/10" oder so etwas.
Der Logik wegen solltest du eher die Schleife über "double i=0 ... 2 PI" (oder was du für ein Intervall betrachten möchtest) iteriert lassen.


for (double i = 0; i < 2*Math.PI; i+=0.1)
{
    this.chart1.Series["Kurve"].Points.AddXY(i, 2.0 + 3.0*Math.Cos(3*i + Math.PI/3));
}

-> dahin willst du doch, oder?

Ezio

Tante Edit hat ein Bild angehängt.

06.11.2014 - 11:05 Uhr

Hallo Max89,
vom Prinzip hat herbivore absolut recht.
Falls du die Strecke direkt aus dem Spiel bekommst, solltest du eher mit dieser Methode arbeiten.
Falls das nicht geht und geringe Abweichungen nicht so schlimm sind, dann kannst du die bisherige Methode weiter verwenden.
Die Bedingung ist, dass die Zeit zwischen den Messungen hinreichend hoch sein muss.
-> Falls du nicht gerade sehr hohe Geschwindikeiten misst (also z.B. von Projektilen, hypergalaktischen Antrieben, ...) sondern eher Fahrzeuggeschwindigkeiten, dann sollte die mit 10ms zeitdiskrete Kurve die reale Kurve hinreichend genau approximieren.

Was noch zu beachten ist, ist die Frage, ob du die Durchschnittsgeschwindigkeit immer nur über eines der 250ms Intervall brauchst oder ob du die gesamte Durchschnittsgeschwindigkeit über den gesamten Zeitraum haben möchtest. In ersterem Fall reicht Summengeschwindikeit/SummandenZahl. In zweitem Fall ist die Methode von Programmierhans anzuwenden, da

(BisherigerDurchschnitt+IntervallDurchschnitt)/2 != Gesamtdurchschnitt

Die Formel wäre dann (von Programmierhans abgeleitet)

Durchschnitt = Durchschnitt + ( SummeÜberIntervall + IntervallLänge * Durchschnitt)/GesamtZahlMesswerte

Ezio

05.11.2014 - 08:34 Uhr

Hallo Max89,

falls du wirklich die Werte behalten musst / möchtest, dann schaue dir mal die generischen Collections an System.Collections.Generic Namespace (v.a. Dictionary<T> und List<T>).
Wenn du die Werte nicht einzeln benötigst, kannst du es so wie chilic es beschrieben hat machen bzw. über Summengeschwindigkeit/SummandenZahl.

Ezio

15.10.2014 - 09:54 Uhr

Hallo herbivore,
mir ist klar, dass das weder eine schöne noch eine performante Lösung ist. Ich dachte nur, für die Lösung eines kleinen mathematischen Rätsels würde Q&D ausreichend sein, v.a. da es IMHO recht schnell umzusetzen geht.

leider ganz und gar keine gute Idee. Und auch vollkommen unnötig.

Mich würde interessieren, weshalb du das dann aber für eine SO schlechte Idee hältst?! 😃

Ezio

15.10.2014 - 08:56 Uhr

Hallo SilverX,

quick & dirty würde das mit zwei verschachtelten Schleifen funktionieren. Genauer 3 - eine für die Ausgabe.
Wenn du die gefundene Folge nur ausgeben und nicht irgendwie noch weiterverarbeiten willst, dann kommst du auch mit den ganz einfachen Elementen (und ohne Arrays, Listen, ...) die du beherrschen solltest hin.

Ezio

09.10.2014 - 19:51 Uhr

Hallo Smoly,

da du eh das 2010er Studio hast und am Anfang stehst reicht auch das 2010er Buch.
Die umgekehrte Frage gabs letztens schon: "Einstieg in Visual C# 2010" auch für VS2013 geeignet?
Meine persönliche Sicht ist, dass du erstmal eh die Grundlagen lernen musst und an denen hat sich meines Wissens nach nicht wirklich was geändert. Für fortgeschrittene Themen lernst du aus dem älteren Buch auch nix falsches, nur gibt es dann an manchen Stellen elegantere Lösungen.
Da du die mit deinem VS2010 eh nicht testen und umsetzen kannst, kannst du dir das Geld erstmal sparen und was gebrauchtes kaufen.

MfG

Ezio

09.10.2014 - 19:35 Uhr

Hallo Schweinebauch,

ob nun Konsolenanwendung oder kleine GUI ist im Grunde egal - macht zwar bei der Nutzerinteraktion einen Unterschied, aber die grundlegende Technik bleibt gleich.
Ich habe von Office-Programmierung nicht wirklich Ahnung aber meines Wissens nach sind die neueren Word-Dateien alles nur Container. Das heißt, dass du keine Datei im Sinne eines Text-Files hast, sondern eine Art komprimierten Ordner der eine Ordnerstruktur mit vielen verschiedenen .xml Dateien beinhaltet.
Ich habe folgendes erfolgreich per Hand (also kein Programm) getestet:

  • docx mit zip-Programm entpackt
  • .\word\document.xml (== Inhaltsdatei) etwas verändert
  • Dokumente mit zip-Programm zusammengepackt (Achtung: wenn du document.docx in einen Ordner "document" entpackt hast, dann den Inhalt des Ordners "document" und NICHT den Ordner "document" packen!)
  • die Datei-Endung zip in docx umgewandelt (habe ich nicht mit dem Explorer sonder mit einem anderen Programm gemacht)
  • in Word geöffnet und festgestellt, dass es funktioniert hat =)

Bei dot(x?) sollte das dann gleich sein.
Das heißt, jetzt für dich, dass du diesen Ablauf nur noch automatisieren musst.
Also du musst ein Programm schreiben, dass für jedes Dokument, das du bearbeiten möchtest (z.B. alle Dokumente die in einem Ordner und dessen Unterordnern enthalten sind) entzippen, bearbeiten (z.B. ein bestimmtes oder alle XML-Files nach string durchsuchen und diesen löschen), zippen und wieder entsprechend umbenennen musst.
Ist Zippen Grundlage? Textdateien (und ich denke auch XML) bearbeiten schon ... .
Mehr sollte doch nicht dabei sein.

MfG
Ezio

30.09.2014 - 09:21 Uhr

Hallo unnamed123,

also dort, wo eine absolute Pfadangabe ist funktioniert es bzw. relative Pfadangaben funktionieren nicht?
Probiere doch mal exemplarisch aus was passiert, wenn du einen absoluten Pfad reinschreibst - auch wenn die Datei eigentlich im selben Ordner liegt (liegen sollte?!) - und wenn du ".\seiteX" schreibst.
Vielleicht bist du eigentlich gar nicht in dem Verzeichnis, in dem du glaubst zu sein!

Ezio

29.09.2014 - 13:36 Uhr

Ich muss Runshak berichtigen: Zumindest in der 2012er Ausgabe wird in die WinRT-Technologie eingeführt -> also App-Entwicklung ab Windows 8/ WinPhone 8.1 ... und das in den Hauptkapiteln.

23.09.2014 - 13:19 Uhr

Hallo Jonathan,

du denkst diesbezüglich in die falsche Richtung. Was du benötigst ist eine double-Animation auf die Position-Property. Das geht sogar direkt im XAML-Code. Lese dich mal in die Thematik StoryBoard / Animationen in der WPF ein: Übersicht über Animationen

22.09.2014 - 14:36 Uhr

Hallo fregel,

Nun möchte ich den Button um die Trigger IsAktiv & IsSelect erweitern, da bei einem Tastendruck von ESC/Enter die Buttonevents gefeuert werden.

Naja, du hast ja doch die Trigger?! Was ist gerade dein Problem: Dass die Events per Tastendruck gefeuert werden oder dass deine Trigger nicht ausgelöst werden, oder ...?

Kann mir da jemand mit einem Stück Code helfen???

[Hinweis] Wie poste ich richtig? Punkt 4.a & 5!

18.09.2014 - 10:33 Uhr

So, jetzt hatte ich wieder Zeit mich mit dem Thema zu beschäftigen. Folgende Änderungen sind notwendig:

if (actualByte >= 0 && actualByte < 128) // 1 Byte Header
	        {
                sequenceLength = testChar(stream, sequenceLength, reader, 1);// Aenderung hier!
	        } 

-> um einen Test auf eine nachfolgenden Folgebyte-Header durchzuführen, der ja nicht erlaubt ist.


private static int testChar(Stream stream, int sequenceLength, BinaryReader reader, int testRange)
        {
            for (int i = 1; i <= testRange; i++) //Aenderung hier!
            {
                byte actualByte = reader.ReadByte();
                if ((i==testRange) ^ (actualByte < 128 || actualByte >= 192)) //Aenderung hier!
                {
                    throw new IOException("Fehler im Stream!");
                }
            }
            
            sequenceLength = testRange;
            return sequenceLength;
        }

Die erste Änderung bewirkt, dass das nächste Byte nach der laut Headerbyte abgeschlossenen Folge auch getestet wird.
Die zweite Änderung prüft, ob die Folge an der angegebenen Stelle abgeschlossen ist, also ob vor Folgeende immer Folgeheader kommen bzw. nach Folgeende ein Startheader kommt.

Ezio

16.09.2014 - 14:17 Uhr

Ich habe aber noch eine Idee, wie du das alles noch etwas effizienter gestalten kannst:

  • jeweils auf Server- und Clientseite das Datum des letzten (erfolgreichen) Updates hinterlegen und vergleichen
    -> damit kann schonmal unnötiges Durchsuchen verhindert werden.
    Zusätzlich kennst du ja nun auf Clientseite nur das Datum des letzten Updates, kannst aber auf Serverseite eine einfache (Text-)Datei, die alle Dateinamen mit letztem Änderungsdatum enthält, erstellen. Mit dem Datum des Clients filterst du alle Dateien heraus, die erneuert werden müssen.
    Vorteile:
    Damit ersparst du dir, alle Verzeichnisse durchsuchen zu müssen und von jeder Datei das Änderungsdatum zu holen.
    Probleme:
  1. Falls der Kunde versehentlich eine Datei gelöscht haben sollte, würde diese Methode das zumindest so grundsätzlich erstmal nicht abfangen!
    1a) Musst dir noch was für neu hinzukommende bzw. wegfallende Dateien überlegen
  2. Pflegeaufwand der Versionsdatei auf deiner Seite.

Ezio

16.09.2014 - 12:19 Uhr

Hi unnamed123,

im Prinzip brauchst du doch kein Git o.ä. beim Kunden zu integrieren, da dieser ja eh immer nur die neuste Datei haben soll?! Das Versionsmanagement ist doch für den Entwickler, damit hat der Kunde doch nix zu tun. 🤔
Ich sehe 2 grundsätzliche Möglichkeiten:

  1. Du baust den Spaß komplett online auf. Ihr ändert auf eurem Server die Dateien -> Kunde sieht immer die aktuelle Version.

  2. Damit der Kunde zum einen immer (also auch bei nicht-verbundenem I-Net) an die Dateien kommt und zum anderen jede aktuelle Datei nur 1x pro Kundenrechner durchs Netz gejagt werden muss, werden die Daten wirklich lokal gespeichert. Ihr stellt die Datei z.B. auf einen FTP-Server und der Viewer sucht bei verbundenem Netz nach neuen Dateien (Zeitstempel!). Bezüglich der Aktualisierung hast du noch weitere Varianten:
    a) Der Viewer hat eine Update-Instanz, die immer im Hintergrund läuft -> wie Dropbox o.ä.
    b) Der Viewer sucht beim Start nach neuen Dateien. Wenn er welche findet, kann man mit allen Dateien die aktuell sind weiter arbeiten und die Inaktuellen werden solange gesperrt, bis sie geladen sind.
    c) Möglich, aber nicht schön: Programm startet -> sucht nach Updates -> findet welche -> zeigt einen modalen Ladebalken -> Kunde holt sich Kaffee -> Kund ruft dich an ... 😁

Ezio

15.09.2014 - 13:32 Uhr

Hallo MarsStein,

ich habe folgende Lösung gefunden:

class StreamConverter
    {
        public long FindStartOfUTF8Sequence(Stream stream, long position, ref int sequenceLength)
        {
            Byte actualByte = 0;
            
            BinaryReader reader = new BinaryReader(stream);
            stream.Position = position;
            actualByte = reader.ReadByte();

            if (actualByte >= 0 && actualByte < 128) // 1 Byte Header
	        {
		         sequenceLength = 1;
	        }
            else if (actualByte>= 128 && actualByte < 192) // Fogebyte Header
	        {
		         position = FindStartOfUTF8Sequence(stream, position-1, ref sequenceLength); // geht solange ein Zeichen weiter, bis Start-Header gefunden
	        }        
            else if (actualByte >= 194 && actualByte < 224) // 2 Byte Header
            {
                sequenceLength = testChar(stream, sequenceLength, reader, 2);
            }
            else if (actualByte >= 224 && actualByte < 240) // 3 Byte Header
            {
                    sequenceLength = testChar(stream, sequenceLength, reader, 3);
            }
            else if ( actualByte >= 240 && actualByte <= 244) // 4 Byte Header
            {
                sequenceLength = testChar(stream, sequenceLength, reader, 4);
            }
            else // Fange alle anderen Faelle ab: Nicht definierte Wertebereich-Luecke, Wertebereichende
            {
                throw new IOException("Nicht im Wertebereich!");
            }

            return position;
        }

        // Prueft, ob angegebene Anzahl an Folgebytes vorhanden
        private static int testChar(Stream stream, int sequenceLength, BinaryReader reader, int testRange)
        {
            for (int i = 1; i < testRange; i++)
            {
                byte actualByte = reader.ReadByte();
                if (actualByte < 128 || actualByte >= 192)
                {
                    throw new IOException("Fehler im Stream!");
                }
            }
            
            sequenceLength = testRange;
            return sequenceLength;
        }

Ich habe noch nicht komplett durchgetestet, aber es sollte eigentlich der Aufgabenstellung genügen.

Ezio

12.09.2014 - 10:27 Uhr

Hallo zusammen,

ich gebe mal meine bescheiden Meinung dazu:
Je länger ich das Thema mitlese und darüber nachdenke, desto mehr kristallisiert sich für mich heraus, dass sobald die Software ein abgeschlossenes System ist herbivores These richtig ist.
Ich finde es ist wesentlich schöner und benutzerfreundlicher Fehlerstellen zu markieren und abhängige Funktionen zu deaktivieren, solange der Fehler nicht behoben ist. Oder anders: Was soll das ein Fenster aufpoppen zu lassen, in dem man eine Aktion fordert und erst danach an einer anderen Stelle weitergearbeitet werden kann? Was ist, wenn man den Wert erst irgendwo erfragen muss? Dann ist das Programm solange nicht nutzbar, bis man dem 1000.en nachtelefoniert hat! 8o

Ich behaupte, wenn man herbivores These widerlegen will, muss man in die Richtung voneinander abhängiger Programme oder Maschinensteuerungen denken, wo man "von außen" Fehlerzustände bekommt.
Also so die Richtung von Palin: Was ist, wenn ein physisch sicherheitskritischer Zustand auftritt? Darf dann etwas an der Software eingestellt werden, solange der Zustand, der zwangsläufig einen Prozess-Stopp bedeutet, nicht behoben ist? Oder würde dies zu Inkonsistenzen führen? Dann könnte man wahrscheinlich aber die Gegenfrage aufstellen: Ist in diesem Fall die Software gut designed?

Soweit von mir.

Ezio

05.09.2014 - 10:25 Uhr

Hallo nochmal,

@Th69:
Danke, du hast Recht! Da habe ich wohl nicht ganz aufgepasst!
Natürlich ist foreach eleganter. Aber -wovon ich fälschlicherweise ausgegangen bin - wenn foreach nicht direkt möglich ist, sollte man lieber for nehmen als irgendwas zu basteln. =)
@shufflekeks:
Naja, du änderst nicht das Element selbst (new DataGridRow(), .add, .remove, o.ä.) und damit die Collection, sondern veränderst nur eine Eigenschaft. Und das ist selbstverständlich möglich.

Grüße, Ezio

05.09.2014 - 09:44 Uhr

Hallo shufflekeks,

dein riesen großer Fehler (weil Grundlage!) ist, dass foreach nur den lesenden Zugriff ermöglicht!

Eine for-Schleife löst dein Problem wesentlich eleganter.

04.09.2014 - 11:26 Uhr

Hallo Rick1966,

du willst also mit einem Benutzer, der keine Schreibrechte an der Datei besitzt die Rechte per C# Code ändern?
Das darf doch eigentlich nicht funktionieren -> Sinn und Zweck eines Rechtesystems.
Oder hab ich da was falsch verstanden?

Ezio

02.09.2014 - 09:33 Uhr

Zu deinem Problem Bilder zu Video: myCSharp.de Video aus Bildern erstellen (übrigens 5 Sek. Google oder Forensuche! Stichwort: C# Video aus Bildern)

Das AMV-Format kenne ich leider auch nicht.

29.08.2014 - 14:08 Uhr

Hallo Slaya23,

Allerdings kommt die selbe Fehlermeldung auch Welche denn? =)

Und das UserControl wird eigentlich so eingefügt:

<my:UserControl12345 x:Name="blablabla" />

Gruß Ezio

29.08.2014 - 12:30 Uhr

Hallo fatiheminsahin,

ich habe gerade auch mal fix gegooglet:

  1. Treffer MSDN "How to i convert 'System.Windows.Controls.Image' to 'System.Drawing.Image'"
    Das sollte es doch sein?!
28.08.2014 - 14:15 Uhr

Hallo TiNex,
für mich hört sich das so an, als ob du davon ausgehst einen Rahmen zu zeichnen und innerhalb dessen die Snake bewegen zu können. Aber das geht bei Konsolen nicht: jedes geänderte Bild musst du komplett neu zeichnen. Deshalb probiere es mal so: nimm ein 2D-Array, baue darin dein Spielfeld inkl. den jeweiligen Änderungen auf und konvertiere das Zeilenweise in Strings und gib es aus. Ganz einfach. 😉
Viel Spaß noch beim Lernen!

Edit: Da war wohl Entwickler96 schneller. 😃