Laden...

Forenbeiträge von Alfons Ingesamt 18 Beiträge

23.02.2011 - 15:52 Uhr

Hmm, dazu müsste ich aber erstmal wissen wie ich die Fehlermeldung auffange, damit der Else-Zweig überhaupt anspringt.

Aber... geben solche Methoden nicht wenn sie fehlschlagen false zurück?!?

23.02.2011 - 15:23 Uhr

Achsoo, du meinst "OutOfRangeException" usw.

hmm, aber wie löse ich das dann? Muss ich dafür eine Exception provozieren?

23.02.2011 - 15:10 Uhr

Hallo erstmal,

ich habe in Programm, welches seine paar benutzerspezifischen Einstellungen in die Registry speichert.

Nun möchte ich aber, dass wenn mal ein Eintrag nicht vorhanden ist, das er gleich neugeschrieben wird. Aus diesem Grund habe ich es mit einer Try-Catch Anweisung probiert, jedoch wird der Teil im Catch-Block nicht ausgeführt, wie ich eigentlich provoziert habe.

Hier der betreffende Code


string reglesen_color2()
        {
            try
            {
                RegistryKey masterKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Echolot\\Config");
                string color_str2 = Convert.ToString(masterKey.GetValue("offlinecolor"));
                masterKey.Close();
                return color_str2;
            }
            catch
            {
                regschreiben_offlinecolor("Red");
                return "Red";
            }
        }

Eigentlich sollte das so funktionieren:
Er versucht in den Try-Block den Wert aus der Registry zu lesen, dieser wurde aber nun gelöscht oder ist einfach nicht da, sprich er kann ihn nicht einlesen. Nun sollte er aber den Catch-Block ausführen, heißt er schreibt den Eintrag neu und gibt den entrsprechenden Standardwert zurück.
Im Optimalfall:
Der Wert kann korrekt eingelesen und konvertiert werden, sprich er war erfolgreich und der Catch-Block wird nicht ausgeführt.

Aber es funktioniert so nicht, ich habe die Registryeinträge von dem Programm manuell gelöscht und er schreibt sie nicht neu, wie er eigentlich sollte...
weiß jemand wo der Fehler liegt?

EDIT: Tut mir leid, ich habe den Code hier nicht so richtig formatieren können wie es sich eigentlich gehört

31.10.2010 - 13:28 Uhr

Wir werden sehen.... es war ja auch nur ein gut gemeinter Hinweis und keine Kritik in solchem Sinne, also kein Grund gleich so zu reagieren

28.10.2010 - 20:13 Uhr

Der ist ja in einem Netzwerk mit meinem PC, also über Samba Freigaben.
Bis jetzt gab es keinen Grund die Sachen auch außerhalb ändern zu können.

Werde aber nun trotzdem mal versuchen, einen FTP Server paralell zu dem HTTP laufen zu lassen

EDIT:

😮 Ich richte mir einfach einen kostenlosen Webspace dafür ein!

EDIT2:
OK, nun klappt es soweit einwandfrei... lag wohl wirklich daran, das FTP und HTTP getrennt waren. Ist mir nicht klar gewesen. Vielleicht könntest du ja in dem neuen Update da irgendwie drauf hinweisen, um dem nächsten User so eine Plackerei zu ersparen, nur als Vorschlag von mir aus!

28.10.2010 - 18:39 Uhr

o.O Achso, das war mir nicht klar... das sind bei uns zwei verschiedene Server... und aus technischen Gründen lässt sich das auch nicht ändern...

Also muss ich ein Synchronisationsscript schreiben, was immer die beiden Verzeichnisse abgleicht, oder fällt einem ne andere Lösung ein?

28.10.2010 - 17:29 Uhr

Also ich habe nun mal Mithilfe deiner Beispielanwendung die ganze Geschichte in mein Projekt integriert. Nun versucht aber aber irgendwie immer, die Updates von der HTTP-Adresse zu laden!

Ich habe es mit dem neuen Beta Tool gemacht, denn bei dem kann ich keine Updates erstellen wegen der Fehlermeldung. Bei dem neuen geht es wohl ganz wunderbar.
Also habe ich einfach Projekt-ID und Schlüssel angepasst und wollte schauen ob die Updatefunktion geht. Aber sie funktioniert nicht... Er versucht immernoch das ganze von dem HTTP-URL zu laden...

Wenn ich die Sachen die der Designer auf den FTP-Server uppt auf den HTTP-Server verschiebe. Funktioniert das Update problemlos. Ohne meckern...
Dann habe ich versucht die Update-Url im Eigenschaftsmenü von updateController1 in meinem Projekt durch die FTP Adresse zu ersetzen, da kommt dann die Meldung Nicht angemeldet. Auch wenn ich oben die Logindaten zum FTP-Server angebe kommt nix gescheites bei raus...

Als Übergang kopiere ich die erstellten Updates von FTP nach HTTP, aber könntest du dem Problem bitte mal auf dem Grund gehen? Oder mir zumindest mal ein paar weitere Tipps geben wie ich die Updates gleich vom FTP kriege?

Wäre nett... und trotzdem echt super Arbeit!

28.10.2010 - 13:38 Uhr

Danke, ich schau mir das mal an!

EDIT:
Ich habe nun erstmal ein zweites Codefile erstellt und dort eine partial class Form1 -Klasse erstellt. Da dann die ganzen Buttondefinitionen usw. rein. Hat er auch ohne weiteres murren gememacht, funktioniert an sich prima!

Nur ein Haken an der Sache ist, dass er das Codefile nun als Windows-Form anzeigt, wenn man drauf klickt, kommt ein grauer Kasten, eben wie beim designen der Fensteroberfläche. Und wehe man klickt auf diese Form dann drauf, dann schreibt er Code darein, den man gar nicht haben will

27.10.2010 - 22:34 Uhr

Hi an alle und einen guten Abend,

wie dem Titel vielleicht zu entnehmen ist, würde ich gerne versuchen, Eventdefinitionen, z.B. das Click-Event eines Buttons:


        private void Button_Click(object sender, EventArgs e)
        {
            label1.Text = "Das ist nur ein Test";
            variable = "Auch nur ein Test";

        }

In eine andere Datei zu verlegen. Denn meine Form1.cs wir mir allmählich zu unübersichtlich, was das angeht.

Aber wie geht denn sowas eigentlich? Macht man sowas in eine DLL-Datei? Weil das sind doch Klassenbibliotheken, sind die nicht für sowas da?

Was ich aber glaube ich am besten fände, ist wenn man es in einzelne .cs Dateien auslagern könnte. Dann könnte man einzelne Programmabschnitte machen.

Ist sowas möglich? Oder bin ich nun mit C# und dem .Net dazu verdammt nur eine einzelne Code-Datei zu besitzen?

EDIT: Ich habe es vorhin mal geschafft, in dem Ich die Deklaration in der Designer Datei abgeändert habe indem ich die neue Klasse dazu geschrieben habe. Das hat auch kurz geklappt, aber halt nicht lang, dann hat ers Rückgängig gemacht und das wieder in Form1 geschrieben

26.10.2010 - 19:51 Uhr

Hier funktioniert es ohne eine Fehlermeldung von wegen, Server nicht erreichbar und so, merkwürdig... egal, lass es nun einfach so, sonst geht es vielleicht hinter nicht mehr bei mir 😄

Sieht auf jedenfall richtig gut aus, meinen Respekt!

Jetzt muss ich es nur noch in mein Projekt integrieren, aber das mach ich morgen oder so.

26.10.2010 - 18:26 Uhr

Hm, muss ich die als ganz normale XML Datei auslesen? Oder kann ich die auch automatisch abrufen, über das SmartTag Menü z.B.
Bin da nicht so ganz Schlau draus geworden.

Mein Problem war aber, wenn man eine alte config Datei hat, wo ein Eintrag fehlte, dann hat er dort ja eine Fehlermeldung gegeben und das Programm ist abgestürzt.
Nun hatte ich eine Try-Catch Anweisung gemacht, welche bei der Ausnahme die XML den fehlenden Teil neu schreiben soll, OHNE das die ganze Datei neugeschrieben wird, sodass die alten Einstellungen erhalten bleiben. Eben nur z.B. den Pfad in die XML zu schreiben.

Andersrum war es bei meiner Anwendungaber auch möglich, nur die Anwendung zu kopieren, sodass er sich dann die Config-Datei selbst erstellt und diese Nicht immer beiliegen muss. Geht das auch mit dem Konfigurationssystem so?

25.10.2010 - 21:59 Uhr

Weil wir Montag haben? Dann beeile ich mich, bevor es Dienstag wird 😮 😄

Das sieht ja an sich nicht schlecht aus, aber ich dachte mehr daran, das man nur einen Wert direkt neu schreiben kann und nicht erst alle einlesen muss.

Aber ich wollte mir die Sache mal mit dem Konfigurationssystem mal anschauen.

25.10.2010 - 19:12 Uhr

Danke euch für eure Rasche antwort, werde mich im laufe des Abends damit weiter beschäftigen, werde aber vielleicht erst später antworten.

@talla

o.O Stimmt, da sieht man mal wieder was so ein einzelner Buchstabe alles anrichten kann.
Und mir war bis jetzt nicht richtig bewusst das diese Funktion existiert.

25.10.2010 - 19:05 Uhr

Hi, ich arbeite gerade mit Csharp in Verbindung mit XML um Einstellungen des Programms zu speichern.

Soweit so gut, meine XML-Struktur sieht so aus:


<?xml version="1.0" encoding="utf-8" standalone="no"?>
<config>
  <value1>true</value1>
  <loadpath />

  <value2>Black</value2>
  <value3>Red</value3>
</config>

Nun versuche ich schon die ganze Zeit in den Knoten loadpath einen Wert reinzuschreiben, sodass dann da <loadpath>C:\Programme...</loadpath> steht.
Aber es will einfach nicht funktionieren.


XmlDocument doc = new XmlDocument();
                doc.Load("config.xml");
                
                XmlNode node = doc.SelectSingleNode("Config/loadpath");
                if (node != null)
                {
                    node.Value = HostNames;
                }
                doc.Save("config.xml");

Jemand eine Idee, wie ich nun den einen Punkt dort editieren kann, ohne die anderen einlesen zu müssen?

17.10.2010 - 23:04 Uhr

Ne, ich gehe ganz normal ohne UMTS ins Internet.

Bin momentan nicht Zuhause, aber ich meine, in der FTP-Adresse wäre so eine Update.xml, das heißt wenn ich Zuhause bin, probier ich mal die Datei dahin zu schieben

EDIT:

Also, ich habe nun einmal die update.xml und den Ordner updates von dem FTP-Server auf den HTTP Link kopiert, mit dem Ergebnis, dass er nun sagt, "der Link ist erfolgreich gepürft worden", wenn man auf "Adresse überprüfen" im Menü klickt.
Weiterhin kann man aber keine Updates erstellen.

Und bei dem Knopf Datei ; updateInstaller aktualisieren, gibt es auch die Fehlermeldung 550 Datei nicht verfügbar (z.B. nicht gefunden oder kein Zugriff)

16.10.2010 - 01:28 Uhr

Nein, es ist eine "gewöhnliche" und Leer- und Sonderzeichen.

Die FTP Verbindung klappt ja auch Einwandfrei, er erkennt den Pfad mit der richtigen Authentifizierung. Was mich da aber stutzig macht, das er beim hinzufügen der Updates die HTTP-Adresse verlangt...

Oder mal andersrum, was versucht er denn von der HTTP-Adresse zu bekommen?
Weil verfügbar ist sie auf jedenfall, habe es auch mal direkt aus dem Root-Verzeichnis der URL probiert, aber leider auch ohne Erfolg. Kann man die Dateien die er sucht vielleicht manuell dahin kopieren?

Oder kann es sein, das man neben dem Port 80 noch einen anderen braucht? Weil das ganze ist ein Linux-Server mit Apache2. Dann könnte es vielleicht an den Berechtigungen liegen.

15.10.2010 - 19:31 Uhr

Achso, danke für den Hinweis

Beim Erstellen mit dem Assistenten, wo man am Anfang die URL Angeben muss, ist alles in Ordnung, auch bei dem FTP Server. Nun habe ich die Sache mit dem Zwischenspeicher und dem Laden in Visual Studios auch hingekriegt.
Das heißt das Projekt ist ohne Fehlermeldung erstellt worden.

Wenn ich aber nun bei dem fertig erstellten Projekt, in dem Reiter "Informationen" auf Adresse überpüfen klicke, kriege ich eben diese Fehlermeldung.
Auch wenn ich ein Update hinzufügen will, im Reiter "Updates" kriege ich die Fehlermeldung.

Was ich irgendwie merkwürdig finde.

Und achja der Pfad ist mit http:// angegeben

Ja genau der bin ich 😉, ich dachte nur, ich setze meine Frage zusätzlich nochmal ins Forum hier rein

15.10.2010 - 18:36 Uhr

Hi, ich habe ein Problem mit der Konfiguration des Updaters.

Wenn ich bei Update-URL meine Domain eintrage, die auch existiert!

Bekomme ich immer folgende Fehlermeldung wenn ich sie prüfen will:

Es ist ein Fehler aufgetreten!
updateSystemDotNet.Designer.base.designerActionExeption: Der Remoteserver hat einen Fehler zurückgegeben: (550) Datei nicht verfügbar (z.B. nicht gefunden oder kein Zugriff).

Aber welche Datei ist den nicht verfügbar? Welche muss denn dahin?

Bin die Sache mit dem Assistenen Xmal durchgegangen und es will einfach nicht funktionnieren.

Und überhaupt eine Frage zu dem System, was soll das eigentlich, mit FTP und HTTP, wo kommen den nun letztendlich die Updates drauf und wieso kann man nicht HTTP oder FTP verwenden, anstatt beides gleichzeitig?