Laden...

Forenbeiträge von prom Ingesamt 187 Beiträge

07.07.2011 - 18:06 Uhr

Sehe gerade keine Möglichkeit um Punkt 2 auszuführen.

2 Sync-Jobs von Pc nach Festplatte
Filme PC -> Filme Festplatte
gesehen PC -> gesehen Festplatte

aber wie sag' ich ihm, dass ich die gesehenen vom PC löschen möchte? Das schafft ein normales Sync-Tool nicht, oder?

Sehe grundsätzlich noch eine andere Lösung: nach Sync ein kleines Script starten, dass das macht, was ich will...

Aber mir wäre lieber, wenn ich ein Tool finde, dass das alles für mich macht

07.07.2011 - 17:27 Uhr

Das Tool ist ein einfaches Sync Tool und erfüllt Punkt 1 soweit ich das bisher sehe, oder? Gefällt mir aber grundsätzlich...

Wichtig wäre mir noch der Punkt 2.

07.07.2011 - 15:55 Uhr

Ich hätte gerne, dass folgende 2 Aufgaben automatisch erfüllt werden:1.Synchronisation von Ordnern - also 1:1 Sicherung auf eine externe Festplatte... 1.Ich habe einen Ordner mit Filmen und einen mit gesehenen Filmen. Ich würde mir wünschen, dass die Sicherung dieser Ordner so aussieht:

  • alle Filme aus dem Ordner Filme auf externer Festplatte sichern (Synchronisation 1-Weg auf externe Festplatte)
  • alle Filme aus dem Ordner gesehene Filme auf auf externe Festplatte verschieben und eventuell sogar vorher nachschaue, ob der Film nicht schon im Ordner Filme auf externer Festplatte existiert und falls dem so ist, den Film aus dem Ordner Filme nach gesehene Filme auf externer Festplatte verschieben

1.Sicherung von Ordnern in einen Datensafe auf der externen Festplatte, bspw. Steganos Safe...

Punkt 1 lässt sich leicht machen, weiß ich, hätte aber auch gerne da eine Empfehlung.

Ist Punkt 2 und 3 möglich? Kennt jemand Programme, die diese Funktionalität bieten? Im besten Fall ein Programm für alle 3 Problemstellungen 😃

Bin für jeden Vorschlag offen, auch für alternative Lösungen 😃

Vielen Dank schon mal

14.08.2009 - 09:25 Uhr

es waren einfach die falschen Libs dabei, die von ce server 3.0 statt 3.5...

und zu deinem Tipp @Hotzenplotz257:
das funktioniert gut, aber bei fehlenden Libs funktioniert das leider auch nicht...

Danke für die Hilfe, mfg

13.08.2009 - 15:10 Uhr

danke, erstmal, ich glaube, ich habe es eh schon. kann es aber erst morgen testen...

ich glaube, dass ich die sql server ce 3.0 statt der sql ce server 3.5 dateien beim Programm habe... werde das morgen prüfen...

danke, mfg

13.08.2009 - 10:15 Uhr

kann es sein, dass ich irgendeine dll vergessen habe? oder eine falsche genommen habe?

soetwas vermute ich eigentlich...

aber danke für die Tipps

13.08.2009 - 09:45 Uhr

das Problem tritt auf MEINEM Rechner NICHT auf, das ist es ja...

13.08.2009 - 09:30 Uhr

ich habe ein Problem und weiß leider nicht, wie ich weiter vorgehen kann:

wenn ich mein Programm starte stürzt es mit folgendes Fehlermeldung ab:

... hat ein Problem festgestellt und muss beendet werden.
Falls Sie ihre Arbeit noch nicht gespeichert hatten, können Daten möglicherweise verloren gegangen sein.

Ich habe in meiner main-Methode einen try-catch-Block herum, aber die fängt leider den Fehler nicht auf.
Und auch in der Ereignisanzeige steht nicht nichts drin...

Was kann ich denn noch machen um herauszufinden, was nicht passt? Bzw. hat irgendwer einen Tipp?

Danke, mfg

PS: ich denke, dass es am System liegt, weiß aber nicht was fehlt. Ist ein WinXP Rechner mit SP3 und installiertem .Net2.0 Redistributable Package... bin als lokaler Admin angemeldet...

11.08.2009 - 14:49 Uhr

was für mich ganz wichitg ist:

kann es auch bei der CPU-ID passieren, dass diese mal leer ist?

11.08.2009 - 07:12 Uhr

Danke, werde mir das mal anschauen.

lg

10.08.2009 - 21:15 Uhr

ok, es geht, liefert aber einen anderen Wert...

10.08.2009 - 21:12 Uhr

danke, aber das liefert mir nur null zurück, weil er keinen Eintrag mit diesem Namen findet...

10.08.2009 - 20:27 Uhr

ich lese mit folgendem Code die HDD Id aus. Und seit kurzem bekomme ich statt der ID nur mehr einen leeren String zurück, da der sp.Value null ist.

Alles was ich gemacht habe, ist, einen Treiber für ein integriertes MemoryStick Lesegerät installiert und seit dem geht die Funktion nicht mehr.

Kann sich das einer erklären?

Die CPU ID lässt sich noch auslesen... falls wer eine Erklärung hat, dann würde ich gerne auch wissen, ob das bei der CPU-ID auch passieren kann... also was auch immer passiert ist...

Denn diese zwei Werte brauche ich für ein Lizenzmanagementsystem...

Danke, mfg


private static string getHDDID()
        {
            string objectClass = "Win32_DiskDrive";
            string objectName = "SerialNumber";

            return getSystemInfo(objectClass, objectName);
        }

private static string getSystemInfo(string objectClass, string objectName)
        {
            ManagementObjectSearcher searcher;
            try
            {
                searcher = new ManagementObjectSearcher("SELECT * FROM " + objectClass);
                foreach (ManagementObject wmi_HD in searcher.Get())
                {
                    PropertyDataCollection searcherProperties = wmi_HD.Properties;

                    foreach (PropertyData sp in searcherProperties)
                    {
                        if (sp.Name == objectName)
                            return sp.Value.ToString();
                    }
                }
                return null;
            }
            catch (Exception)
            {
                return null;
            }
        }
06.08.2009 - 20:33 Uhr

ok, verstehe, dann ist das bei euch anders.

danke für die Hilfe

06.08.2009 - 12:08 Uhr

ok, danke

und zu dem verschult: ich konnte mit dem Wort nichts anfangen, sorry... kannte es halt nicht...

und ja, in Österreich wurde die Studiengebühr wieder abgeschafft, seit dem letzten Semester also zahlt man ein paar Euro für's Semester... und das ist der ÖH beitrag und vielleicht ein paar Euro Studiengeb., glaube aber nicht. Es sind gesamt nur ca. 20-30€...
und diesen Erlagschein habe ich für das nächste Semester schon bezahlt, also glaub' mir das einfach einmal...

und man kann sich jedes Fach als Wahlfach aussuchen, oder? Aus jeder Studienrichtung und aus jedem Studium (Bakk. oder Master), oder etwa nicht? So ist das bei uns zumindest... ob es jetzt sinn macht, eine Vorlesung aus dem Master zu machen, wenn man bedenkt, dass alles so verschult ist, ist eine andere Frage...

Danke, mfg

06.08.2009 - 11:55 Uhr

zu dem Auslandsstudium: danke für den Tipp, werde mich da mal erkundigen.

und zu dem Prüfungen aus Master machen: gibt es in Deutschland keine freien Wahlfächer in einem Studium?

@daniel
was meinst mit verschult?
aber danke für den Tipp... der ist gar nicht so blöd...

mfg

06.08.2009 - 11:52 Uhr

ok, danke für deine Hilfe. naja, reinhocken kann ich mich ja auch ohne eingeschrieben zu sein 😉

und wegen der exmatrikulation: ich dachte, man kann sich an so vielen Unis anmelden, wie man will. solange man den jeweiligen Studienbeitrag zahlt, sollte das ok sein... und ich habe in Österreich nur den Hochschulerschaftsbeitrag zu zahlen, da die Gebühren seit letztem Semester wieder abgeschafft wurden...

aber werde sicher mal dort anrufen, hilft eh nichts.

Danke für deine Hilfe

PS: du und auch jeder andere, der was weiß, darf natürlich trotzdem noch was schreiben 😉

06.08.2009 - 11:30 Uhr

es ist so gemeint:

ich mache das Bakk.-Studium in Österreich fertig. Das kann ich auch, wenn ich nicht mehr hier wohne. Muss halt öfter mal herkommen, das ist kein Problem.

Aber ich will nebenbei schon Übungen und oder Prüfungen für den Master in Berlin machen können und dachte, wenn ich mich für irgendein Bakk.Studium in Berlin anmelde, dann kann ich einfach die Prüfungen die ich machen will als freie Wahlfächer machen, sodass ich sie mir, sobald ich den Bakk. fertig habe und den Master in Berlin beginne, anrechnen lassen kann, verstehst? Der Bakk. in D hat nur den Sinn, dass ich angemeldet bin und die Prüfungen die ich machen will, als Freifach machen kann, sonst nichts...

und das ganze bezieht sich auf ein Informatikstudium an TU Berlin.

Danke, mfg

06.08.2009 - 11:02 Uhr

ich werde wahrscheinlich nach Deutschland ziehen und habe deswegen noch ein paar Fragen, wegen meinem Studium:

ich habe mein Bakk. hier in Österreich noch nicht fertig, jedoch sind nur noch ein paar Vorlesungen oder Übungen zu machen. Aber das dauert noch, da ich ja die Übungen immer nur im WS oder SS machen kann. Also noch ein Jahr, leider...

Auf jeden Fall habe ich folgende Frage: ist es möglich, sich in D für ein Bakk.-Studium anzumelden und einfach ein paar Fächer aus dem Masterstudium als Freifach dazuzumachen? Es gibt ja eine Studienvorraussetzung für den Master, nämlich ein abgeschlossenes Bakk.. Jedoch kann ich hier in Österreich immer alle Fächer als Freifächer machen, egal welches Fach, auch die Masterfächer. Ich habe mir sagen lassen, dass das in D nicht geht, jedoch war das nur von einer Person und diese hat das auch nur als Vermutung geäußert.

Deswegen frage ich hier nochmal: kann man in einem Bakk.-Studium Fächer aus dem Master als freie Wahlfächer machen?

Danke, mfg

11.07.2009 - 13:08 Uhr

ok, danke. Wenn das nicht möglich ist, dann verstehe ich nicht, wofür ich überhaupt eine Relation zwischen den Tabellen angeben kann...

10.07.2009 - 21:25 Uhr

verwendetes Datenbanksystem: SqlCeServer

ich habe, wie hier so oft beschrieben, jede Tabelle mit einem extra DataAdapter geladen. So weit so gut.

Leider konnte ich kein Bsp. finden, welches mir zeigt, wie ich eine Dataview aus den zwei Tabellen über eine Relation erstelle.

Habe folgendes Schema:

Tabelle 1:*id *user_id

Tabelle 2:*id *info1

und möchte folgende query als DataView anzeigen: Select * from tab1, tab2 where tab1.user_id = tab2.id;

habe ein DataSet erstellt und beide Tabellen reingeladen. Anschließend habe ich eine Relation zwischen der Referenz und dem key der Tabelle 2 erstellt.

Leider weiß ich nicht mehr weiter undfinde auch nichts...

Code zum Laden sieht wie folgt aus:

string connectionString = string.Format("DataSource='{0}';  Max Buffer Size = {1}; Password = '{2}'", Application.StartupPath + @"\Database\licenses.sdf", 8192, "xxx");
                    _connection = new SqlCeConnection(connectionString);

                    _da1 = new SqlCeDataAdapter("SELECT * FROM licenses", _connection.ConnectionString);
                    _da2 = new SqlCeDataAdapter("SELECT * FROM users", _connection.ConnectionString);
                    
                    _cb1 = new SqlCeCommandBuilder();
                    _cb1.ConflictOption = ConflictOption.OverwriteChanges;
                    _cb1.QuotePrefix = "[";
                    _cb1.QuoteSuffix = "]";
                    _cb1.DataAdapter = _da1;

                    _cb2 = new SqlCeCommandBuilder();
                    _cb2.ConflictOption = ConflictOption.OverwriteChanges;
                    _cb2.QuotePrefix = "[";
                    _cb2.QuoteSuffix = "]";
                    _cb2.DataAdapter = _da2;

                    _da1.RowUpdated += new SqlCeRowUpdatedEventHandler(_da_RowUpdated);
                    _da2.RowUpdated += new SqlCeRowUpdatedEventHandler(_da_RowUpdated);

                    _ds = new DataSet();
                    _ds.Tables.Add(new DataTable("licenses"));
                    _ds.Tables.Add(new DataTable("users"));

                    _da1.Fill(_ds, "licenses");
                    _da2.Fill(_ds, "users");

                    // set relation in dataset
                    _ds.Relations.Add(new DataRelation("relation", 
                        _ds.Tables["licenses"].Columns["userID"], 
                        _ds.Tables["users"].Columns["id"]));
30.06.2009 - 13:47 Uhr

Danke, ich weiß, dass die php-Datei lokal am Server ausgeführt wird. Ich weiß nur nicht, ob man nicht eventuell doch relativ leicht an die Datei rankommt.

30.06.2009 - 13:26 Uhr

ich möchte gerne für mein Programm ein Script schreiben, welches eine Lizenzdatei erstellt.

Ist für dieses Vorhaben php geeignet? Ich bin nicht sicher, ob php sicher genug ist. Mein Lizenzsystem basiert auf einem RSA public/private key pair und um eine Lizenzdatei erstellen zu können, muss der private key in der php-Datei als plain text drin stehen.

Mir stünde auch perl zur Verfügung...

Gibt es hier irgendeinen Standard, der für solche Sachen verwendet wird?

22.06.2009 - 09:54 Uhr

meine bisherige Lösung sieht wie folgt aus:
ich ersetze die LinkLabel durch normale Labels.
ist für meine Zwecke ausreichend.

Danke für die Hilfe

22.06.2009 - 09:21 Uhr

also könnte auch ein bug von groupbox sein.
Und wenn man zw. GB und LL ein Panel zwischen-fügt?

gerade probiert, hilft leider nichts.

gbNews.Controls.Clear();
            Panel panel = new Panel();
            panel.AutoSize = true;
            gbNews.Controls.Add(panel);

            LinkLabel label = new LinkLabel();
            label.Location = new Point(5, 15);
            label.Text = "Test";
            panel.Controls.Add(label);

das einzige was hilft, ist die backgroundcolor der GroupBox auf nicht transparent zusetzen... das will ich aber auf keinen Fall.

21.06.2009 - 23:34 Uhr

soweit ich das jetzt gesehen habe, gilt dasselbe für folgenden Fall:

MDIContainer ein Form als MdiChild hinzufügen, GroupBox auf MdiChild platzieren und LinkLabel per Code dieser GroupBox hinzufügen...

21.06.2009 - 23:07 Uhr

ich kann das ganze jetzt reproduzieren und komme zu folgendem Ergebnis:

wenn ich ein GroupPanel auf ein Panel setze und dann dem GroupPanel ein LinkLabel hinzufüge kommt es zu oben angeführtem Fehler.

Reproduktion (Code steht hier - Projekt im Anhang (VS 2008 Projekt)):
cs-Code

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            gbNews.Controls.Clear();
            LinkLabel label = new LinkLabel();
            label.Location = new Point(5, 15);
            label.Text = "Test";
            gbNews.Controls.Add(label);
        }
    }

Designer.cs-Code:

partial class Form1
    {
        /// <summary>
        /// Erforderliche Designervariable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Verwendete Ressourcen bereinigen.
        /// </summary>
        /// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Vom Windows Form-Designer generierter Code

        /// <summary>
        /// Erforderliche Methode für die Designerunterstützung.
        /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
        /// </summary>
        private void InitializeComponent()
        {
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
            this.pnl = new System.Windows.Forms.Panel();
            this.gbNews = new System.Windows.Forms.GroupBox();
            this.pnl.SuspendLayout();
            this.SuspendLayout();
            // 
            // pnl
            // 
            this.pnl.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pnl.BackgroundImage")));
            this.pnl.Controls.Add(this.gbNews);
            this.pnl.Dock = System.Windows.Forms.DockStyle.Fill;
            this.pnl.Location = new System.Drawing.Point(0, 0);
            this.pnl.Name = "pnl";
            this.pnl.Size = new System.Drawing.Size(314, 148);
            this.pnl.TabIndex = 71;
            // 
            // gbNews
            // 
            this.gbNews.AutoSize = true;
            this.gbNews.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
            this.gbNews.BackColor = System.Drawing.Color.Transparent;
            this.gbNews.ForeColor = System.Drawing.Color.White;
            this.gbNews.Location = new System.Drawing.Point(34, 25);
            this.gbNews.MaximumSize = new System.Drawing.Size(200, 500);
            this.gbNews.MinimumSize = new System.Drawing.Size(200, 0);
            this.gbNews.Name = "gbNews";
            this.gbNews.Size = new System.Drawing.Size(200, 5);
            this.gbNews.TabIndex = 2;
            this.gbNews.TabStop = false;
            this.gbNews.Text = "News";
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(314, 148);
            this.Controls.Add(this.pnl);
            this.DoubleBuffered = true;
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
            this.IsMdiContainer = true;
            this.Name = "Form1";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "Form1";
            this.pnl.ResumeLayout(false);
            this.pnl.PerformLayout();
            this.ResumeLayout(false);

        }

        #endregion

        private System.Windows.Forms.Panel pnl;
        private System.Windows.Forms.GroupBox gbNews;




    }
21.06.2009 - 22:33 Uhr

danke, versuche das Problem auch gerade zu reproduzieren - ohne Erfolg.

Verwende in meinem Projekt lautet Controls die von den StandardControls abgeleitet sind und DoubleBuffer aktiviert haben - eventuell liegt's ja daran...

21.06.2009 - 22:26 Uhr

tritt das auch auf, wenn du das LinkLabel mit dem Designer erstellst?

im Designer tritt das NICHT auf!
füge ich ein einzelnes Label im Code hinzu, jedoch schon

Schonmal ein Invalidate oder Refresh des Containers und/oder des Labels versucht?

ein Minimieren/Maximieren ruft doch ein Invalidate auf - dies ändert nichts daran.

habe folgendes probiert (beide Vorschläge von euch verwirklicht) - leider mit dem selben Ergebnis wie oben:

LinkLabel label = new LinkLabel();
                label.Location = new Point(5, 15);
                label.Text = "Test";
                gbNews.Controls.Add(label);

                gbNews.Invalidate();
                label.Invalidate();

                gbNews.Refresh();
                label.Refresh();
21.06.2009 - 17:53 Uhr

ich füge einer GroupBox ein LinkLabel hinzu (nicht im Designer sondern per Hand!)

das Ergebnis ist im Anhang.

Ich bin sicher, dass im Moment nur ein LinkLabel hinzugefügt wird.

Hat jemand eine Idee woran das liegen kann?

Mein Code sieht wie folgt aus, und count = 1:

for (int i = 0; i < linkLabels.Count; i++)
                {
                    linkLabels[i].Location = new Point(5, 15 + i * 20);
                    gbNews.Controls.Add(linkLabels[i]);
                }
16.06.2009 - 13:15 Uhr

@JunkyXL
aber inzwischen habe ich den Hintergrund eh auf transparent geändert - also kann ich die ganze Funktion eh löschen. Die Funktion war eigentlich ein Überbleibsel - ist mir gerade aufgefallen...

Danke

16.06.2009 - 13:11 Uhr

Warum gibst du nicht jeder Spalte in deinem Control die Breite Control.Width / 8 ?

das tue ich ja. ich möchte aber auch, dass alle Spalten gleich breit sind => demzufolge muss ich erst mal das Control so ändern, dass dessen Größe genau durch 8 teilbar ist. Denn ansonsten steht der Hintergrund hervor...

16.06.2009 - 12:59 Uhr

werde ich probieren. Da es aber nur 3 States gibt, frage ich mich, welchen State er während dem "aufgehen" hat.

danke

16.06.2009 - 12:49 Uhr

das ist mir klar. Kann ich irgendwie unterbinden, dass er beim zeigen des Formulars die Funktion aufruft? Er soll sie erst aufrufen, wenn das Formular wieder sichtbar ist, sprich seine ursprüngliche Größe hat.

16.06.2009 - 11:45 Uhr

ich habe ein UserControl welches sich mit der Größe des Forms in dem es liegt mitändert. Da mein Control aus 8 Spalten besteht, berechne ich im SizeChanged-Event die neue Größe so, dass sie von der gewünschten sowenig wie möglich abweicht (Breite muss durch 8 teilbar sein)

das funktioniert auch so, jedoch hängt sich das Programm beim minimieren auf.

die Funktion die zum aufhängen führt ist folgende:


while ((this.Width - ROW_HEADER_WIDTH) % 8 != 1)
    this.Width--;
while ((this.Height - HEADER_HEIGHT - DAY_HEADER_HEIGHT) % 6 != 1)
    this.Height--;

wie kann ich den das Problem umgehen?
ich nehme an, dass beim anzeigen, dass Formular andauernd sein Größe ändert und obiges jedesmal aufgerufen wird und dass das zum Hänger führt...

05.05.2009 - 22:12 Uhr

Ich habe die Datenbank nun zu SQL CE geändert!!!
wegen obigen Problemen aber auch wegen Performanceproblemen, welche schon jetzt bei meinen Testdaten aufgetreten sind...

Nun konnte ich mein Problem schön mit case-Statements lösen. (wie ob die IIF - Lösung)

Jedoch bekomme ich anstatt

+---------+----------+----------+
| Wheels | Vehicle1 | Vehicle2 |
+---------+----------+----------+
| 2 | Car | Truck |
+---------+----------+----------+
| 4 | Bike | |
+---------+----------+----------+

leider folgendes raus:

+---------+----------+----------+
| Wheels | Vehicle1 | Vehicle2 |
+---------+----------+----------+
| 2 | | Truck |
+---------+----------+----------+
| 2 | Car | |
+---------+----------+----------+
| 4 | Bike | |
+---------+----------+----------+

lässt sich das irgendwie so abändern, dass ich mein erwünschtes Ergebnis bekomme?

Danke

04.05.2009 - 14:19 Uhr

folgendes funktioniert:

SELECT * FROM table WHERE ( IIF  (ISNULL (Vehicle), (Wheels = 2), (Wheels = 4)))

wenn ich jetzt Vehicle in ISNULL( ) durch ein Select-Statement ersetze, dann kommt wieder oben erwähnter Fehler

PS: ich weiß leider nicht wie ich bspw. "ISNULL(SELECT Vehicle FROM table WHERE Wheels = 1)" testen sollte...

04.05.2009 - 13:19 Uhr

da bekomme ich genau die gleiche Fehlermeldung, obwohl IFF 3 Elemente und ISNULL 1 Element hat...

04.05.2009 - 12:54 Uhr

verwendetes Datenbanksystem: MS Access

ich habe eine subquery die ein Result folgender Art liefert:

+---------+---------+
| Vehicle | Wheels |
+---------+---------+
| Car | 4 |
+---------+---------+
| Bike | 2 |
+---------+---------+
| Truck | 4 |
+---------+---------+

und möchte diese nun zu folgender transformieren

+---------+----------+----------+
| Wheels | Vehicle1 | Vehicle2 |
+---------+----------+----------+
| 2 | Car | Truck |
+---------+----------+----------+
| 4 | Bike | |
+---------+----------+----------+

probiert habe ich folgendes

SELECT Wheels,
Vehicle1 = ISNULL((SELECT Vehicle FROM table WHERE Wheels = 1), 0),
Vehicle2 = ISNULL((SELECT Vehicle FROM table WHERE Wheels = 2), 0)
FROM subquery

wie es bspw. hier beschrieben ist

hier bekomme ich aber gleich den Fehler:
Falsche Anzahl von Elementen für Funktion in 'Vehicle1 = ISNULL((SELECT Vehicle FROM table WHERE Wheels = 1), 0)' angegeben

kann mir jemand sagen wie ich obiges hinbekomme?

02.05.2009 - 14:22 Uhr

ich hatte mal eine Software mit der man Videos von Fenstern machen konnte.
Leider war das Ergebnis damals nicht gerade gut.

Kennt jemand von euch ein Programm (Freeware), welches brauchbare Videos machen kann, sodass man ein Demonstrationsvideo von einem Programm machen kann?

Und meine zweite Frage wäre:
wie lange sollten einzelne Videos sein, damit sie ein User auch anschaut?
ich würde selbst sagen, dass <1min am besten ist und dass man eher für jede Funktion ein eigenes Video machen sollte als ein zu langes für alle Funktionen.

30.04.2009 - 22:37 Uhr

da das Thema nicht ganz hier rein passte, habe ich einen neuen Beitrag erstellt. Und wie das nun mal so ist, kaum hat man einen neuen Beitrag erstellt hat man das Problem gelöst.

Ich habe meine Lösung in den anderen Beitrag reingeschrieben.

Danke für deine Hilfe.

30.04.2009 - 22:35 Uhr

so, habe jetzt eine Lösung gefunden.

Eine Region machen aus dem Path und zwar aus dem vollständigen nicht nur dem Rahmen!

Anschließend kann ich die Region Serialisieren und Deserialisieren. So geht das sehr schnell => Geschwindigkeit war ja mein Problem.

Beim Path hat das sehr lange gedauert, weshalb ich nur den Rahmen speichern wollte...

30.04.2009 - 22:05 Uhr

[EDIT=herbivore]Threads zusammengefügt! Bitte keine Crossposts. Ein Crosspost ist natürlich auch, wenn man eine Frage, die man schon in einem bestehenden Thread gestellt hat, in ein einem neuen Thread erneut stellt. Wenn du findest, dass eine Frage nicht in den Thread passt, in dem sie gestellt wurde, dann bitte einen Moderator die Frage abzuteilen.[/EDIT]

weiß jemand, wie man einen Haufen von unsortierten Punkten in eine geordnete Form bringt?

Jeder Punkt stellt einen Punkt des Rahmens eines Objektes dar. Nun möchte ich aus diesem Haufen einen GraphicsPath erstellen. Jedoch muss ich zuvor die Punkte in die richtige Reihenfolge bringen.

Habe mich daran schon probiert, jedoch funktioniert das ganze leider nicht.
Habe mein Beispiel hier gepostet.

30.04.2009 - 15:18 Uhr

habe die 2 Funktionen nun geändert (auch oben), jedoch funktioniert sie noch nicht richtig...

30.04.2009 - 14:13 Uhr

hier ist noch die Sortiermethode die obige Funktion verwendet:

public static Point[] getSortedList(List<Point> list)
        {
            if (list.Count == 0)
                return null;

            _sortedPoints = new List<Point>();
            _listToSort = list;
            
            // handle list size=1
            _sortedPoints.Add(list[0]);
            if (list.Count == 1)
                return _sortedPoints.ToArray();

            // get points
            Point nextPoint = findNextPoint(list[0]);
            _sortedPoints.Add(nextPoint);
            while (nextPoint != list[0])
            {
                nextPoint = findNextPoint(nextPoint);

                if (nextPoint == list[0] || nextPoint == Point.Empty)
                    break;
                // add next point to sorted list
                _sortedPoints.Add(nextPoint);
            }
            return _sortedPoints.ToArray();
        }
30.04.2009 - 13:59 Uhr

so sieht die findNextPoint-Methode aus:

private static Point findNextPoint(Point p)
        {
            Point right = Point.Empty;
            Point left = Point.Empty;
            Point bottom = Point.Empty;
            Point top = Point.Empty;
            Point leftTop = Point.Empty;
            Point leftBottom = Point.Empty;
            Point rightTop = Point.Empty;
            Point rightBottom = Point.Empty;

            for (int i = 0; i < _listToSort.Count; i++)
            {
                int xLeft = _listToSort[i].X - 1;
                int xRight = _listToSort[i].X + 1;
                int yTop = _listToSort[i].Y + 1;
                int yBottom = _listToSort[i].Y - 1;
                int x = _listToSort[i].X;
                int y = _listToSort[i].Y;

                if (p.X == xRight && p.Y == y)
                    left = _listToSort[i];
                else if (p.X == xLeft && p.Y == y)
                    right = _listToSort[i];
                else if (p.X == x && p.Y == yTop)
                    bottom = _listToSort[i];
                else if (p.X == x && p.Y == yBottom)
                    top = _listToSort[i];

                else if (p.X == xLeft && p.Y == yTop)
                    rightBottom = _listToSort[i];
                else if (p.X == xLeft && p.Y == yBottom)
                    rightTop = _listToSort[i];
                else if (p.X == xRight && p.Y == yTop)
                    leftBottom = _listToSort[i];
                else if (p.X == xRight && p.Y == yBottom)
                    leftTop = _listToSort[i];
            }

            Point nextPoint = Point.Empty;
            if (right != Point.Empty && !_sortedPoints.Contains(right))
                nextPoint = new Point(p.X + 1, p.Y);
            else if (rightTop != Point.Empty && !_sortedPoints.Contains(rightTop))
                nextPoint = new Point(p.X + 1, p.Y + 1);
            else if (top != Point.Empty && !_sortedPoints.Contains(top))
                nextPoint = new Point(p.X, p.Y + 1);
            else if (leftTop != Point.Empty && !_sortedPoints.Contains(leftTop))
                nextPoint = new Point(p.X - 1, p.Y + 1);
            else if (left != Point.Empty && !_sortedPoints.Contains(left))
                nextPoint = new Point(p.X - 1, p.Y);
            else if (leftBottom != Point.Empty && !_sortedPoints.Contains(leftBottom))
                nextPoint = new Point(p.X - 1, p.Y - 1);
            else if (bottom != Point.Empty && !_sortedPoints.Contains(bottom))
                nextPoint = new Point(p.X, p.Y - 1);
            else if (rightBottom != Point.Empty && !_sortedPoints.Contains(rightBottom))
                nextPoint = new Point(p.X + 1, p.Y - 1);

            return nextPoint;
        }
30.04.2009 - 13:45 Uhr

ich habe das wie folgt probiert, aber leider geht es nicht.

  • ich starte bei beliebigem Punkt
  • schaue ob rechts/rechts oben/oben/oben links/links/links unten/unten/unten rechts ein Punkt existiert und nehme den ersten als nächsten Punkt
  • ich wiederhole das solange mit dem nächsten Punkt bis der nächste Punkt wieder der erste ist

ist in dieser Methode irgendwo ein Fehler oder sollte das funktionieren?

30.04.2009 - 11:03 Uhr

ok, danke.

wie soll ich den die Punkte sortieren?

30.04.2009 - 10:41 Uhr

ach ja, mein Serializer speichert die GraphicPath PathPoints und die PathTypes. Das sollte doch reichen, oder?

30.04.2009 - 10:39 Uhr

habe jetzt beim erzeugen alle graphicpaths geschlossen jedoch ist das Ergebnis das gleiche.

vielleicht liegt's ja am Algo, da er das Innere nicht reichtig erkennt?

wenn mein Algo einen Borderpunkt findet fügt er diesen als Rectangle mit der Breite/Höhe 1 hinzu - erkennt der Graphic-Path dadurch jedes Recangle als einzelnes Objekt und findet den Innenraum nicht?

habe jetzt vor dem Start des Algos startFigure() und danach CloseAllFigures() aufgerufen jedoch ändert das auch nichts...