Laden...
S
Benutzerbeschreibung
Auf eigenen Wunsch gesperrt

Forenbeiträge von schabe Ingesamt 156 Beiträge

10.09.2007 - 16:23 Uhr

MoinMoin,

ich hab da mal nee frage. wie kann ich in einer Form angeben das einen bestimmtes Textfeld dauerhaft select sein soll? also auch wenn man in der Form irgendwo hin klickt. Hab auch schon gegooglt aber nicht das richtig gefunden. Gibt es so ein Befehl überhaupt?

Besten Dank schonmal,

mfg. schabe

23.08.2007 - 16:20 Uhr

ich hab den ganzen programmcode den ICH geschrieben habe auskommentiert und der Fehler kommt trotzdem => Irgendwas läuft beim installieren oder so falsch. Mit try catch habe ich schon ausprobiert. immernoch das gleich und mir wird nicht angezeigt wo der fehler ist.

23.08.2007 - 15:58 Uhr

ja, immernoch die gleiche Fehlermeldung. Wo die genau ist wird mir leider nicht angezeigt. Man bekommt nur die Fehlermeldung und nicht wo die entstanden ist oder sowas in die Richtung.

23.08.2007 - 15:48 Uhr

ich hab die funktion mysql_write mal auskommentiert und die Fehlermeldung kommt immernoch. also liegt da der Fehler nicht. Das muss irgendwo in den Tiefen des Programms sein. Beim entwickeln des Diensts hat ja alles getan nur kurz vor dem Fertigstellen ist der der Fehler da. Hab die änderungen mal wieder zurückgespielt aber es tut sich trotzdem nichts 🙁

23.08.2007 - 15:35 Uhr

hm, hatte ich auch gedacht aber warum tut das dann in einer normalen Anwendung (egal ob konsole oder Grafik). also dran kann es nicht liegen. außerdem wird die Fehlermeldung auch ausgegeben wenn der Dienst komplett leer ist (was ich schon sehr komisch finde),

23.08.2007 - 15:14 Uhr

Moin,

ich hab ein Problem mit meinem programmieren Dienst. Hab auch schon gesucht aber nee Lösung habe ich nicht gefunden.
Der Dienst soll alle Dateien suchen die mit ._ anfangen und diese dann in ein BackUpverzeichnis verschieben. Dieses verschieben soll in eine Log-Datei geschrieben werden und die Stammdaten der Datei soll in eine MySQL Datenbank gespeichert werden. So weit habe ich das auch programmiert, aber als Windowsanwendung. Wollte dann daraus ein Dienst machen. Ging auch erst alles ohne Probleme. Nur kurz vorm Fertigstellen hab ich eine Fehlermeldung beim Durchführen bekommen. Und zwar folgende:

IndexOutOfRangeException wurde nicht behandelt.
Der Index war außerhalb des Arraybereichs.

Also hab ich erstmal alles selbstgeschriebene auskommentiert (wirklich alles). Aber immernoch kommt die Fehlermeldung obwohl nichts im dienst gemacht wird außer das erstellen. ich weiß echt nicht wo dann da der Fehler sein soll.

Hier der Programmcode von der Klasse die ausgeführt wird:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Text;
using System.IO;
using System.Timers;
using MySql.Data.MySqlClient;

namespace MMV_Dienst
{
    public class mmv
    {
        MySqlConnection myconn;

        public void start()
        {
            FileStream fs = new FileStream("C:\\mmv_config.conf", FileMode.Open);
            StreamReader sr = new StreamReader(fs);
            string mysql_server = sr.ReadLine();
            string mysql_bn = sr.ReadLine();
            string mysql_pw = sr.ReadLine();
            string mysql_table = sr.ReadLine();
            string backup = sr.ReadLine();
            string logs = sr.ReadLine();
            string wieder = sr.ReadLine();
            int ordner_anzahl = Convert.ToInt32(sr.ReadLine());
            string[] ordner;
            ordner = new string[ordner_anzahl];
            for (int i = 0; i < ordner_anzahl; i++)
            {
                ordner[i] = sr.ReadLine();
            }
            fs.Close();
            sr.Close();
            string connstr = String.Format("server=" + mysql_server + "; user id=" + mysql_bn + " ; password=" + mysql_pw + " ; database=mysql; pooling=false");
            myconn = new MySqlConnection(connstr);
            myconn.Open();
            myconn.ChangeDatabase(mysql_table);
            for (int i = 0; i < ordner_anzahl; i++)
            {
                verschieben(backup, ordner[i], logs);
            }
            myconn.Close();
        }

        public void stop() { }

        private void mysql_write(string pfad_sql, string umbenannt)
        {
            string[] split = pfad_sql.Split(new Char[] { '\\' });
            int array_size;
            array_size = split.Length - 1;
            pfad_sql = "";
            string orginal_datei = "";
            for (int count = 0; count < array_size; count++)
            {
                pfad_sql = pfad_sql + split[count] + @"\\";
                orginal_datei = split[count + 1];
            }
            MySqlCommand com;
            MySqlDataReader dr;
            com = new MySqlCommand("SELECT * FROM pfad", myconn);
            dr = com.ExecuteReader();
            bool i = false;
            int id = 0;
            while (dr.Read())
            {
                string pfad = Convert.ToString(dr["pfad"]);
                string[] split2 = pfad.Split(new Char[] { '\\' });
                int array_size2;
                array_size2 = split2.Length - 1;
                pfad = "";
                for (int count = 0; count < array_size2; count++)
                {
                    pfad = pfad + split2[count] + @"\\";
                }
                if (pfad_sql == pfad)
                {
                    i = true;
                    id = Convert.ToInt32(dr["id"]);
                    break;
                }
            }
            dr.Close();
            if (i == false)
            {
                MySqlCommand com2;
                com2 = new MySqlCommand("INSERT INTO pfad(pfad) VALUES('" + pfad_sql + "')", myconn);
                com2.ExecuteNonQuery();
                MySqlCommand com3;
                MySqlDataReader dr3;
                com3 = new MySqlCommand("SELECT @@IDENTITY AS 'last_id'", myconn);
                dr3 = com3.ExecuteReader();
                dr3.Read();
                id = Convert.ToInt32(dr3["last_id"]);
                dr3.Close();
            }
            MySqlCommand com4;
            com4 = new MySqlCommand("INSERT INTO dateien(dateiname, pfad, umbenannt) VALUES('" + orginal_datei + "','" + id + "','" + umbenannt + "')", myconn);
            com4.ExecuteNonQuery();
        }

        private void verschieben(string backup, string ordner, string logs)
        {
            FileStream fs = new FileStream(logs + "\\" + DateTime.Now.Year + "-" + DateTime.Now.Month.ToString("00") + "-" + DateTime.Now.Day.ToString("00") + ".txt", FileMode.OpenOrCreate, FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs);
            sw.BaseStream.Seek(0, SeekOrigin.End);
            foreach (string file in Directory.GetFiles(ordner, "^._*", SearchOption.AllDirectories))
            {
                string[] split = file.Split(new Char[] { '\\' });
                int array_size;
                array_size = split.Length - 1;
                int i = 0;
                string filename = split[array_size];
                while (File.Exists(backup + "\\" + filename))
                {
                    filename = split[array_size];
                    i++;
                    filename = "(" + i + ")_" + filename;
                }
                if (i == 0)
                {
                    File.Move(file, backup + "\\" + split[array_size]);
                    mysql_write(file, "0");
                    string zeit = DateTime.Now.Day.ToString("00") + "." + DateTime.Now.Month.ToString("00") + "." + DateTime.Now.Year + ", " + DateTime.Now.Hour.ToString("00") + ":" + DateTime.Now.Minute.ToString("00") + ":" + DateTime.Now.Second.ToString("00");
                    sw.WriteLine(zeit + "\t MMV-Pfad: " + file);
                }
                else
                {
                    File.Move(file, backup + "\\" + filename);
                    mysql_write(file, filename);
                    string zeit = DateTime.Now.Day.ToString("00") + "." + DateTime.Now.Month.ToString("00") + "." + DateTime.Now.Year + ", " + DateTime.Now.Hour.ToString("00") + ":" + DateTime.Now.Minute.ToString("00") + ":" + DateTime.Now.Second.ToString("00");
                    sw.WriteLine(zeit + "\t MMV-Pfad: " + file + "\t Umbennant in " + filename);
                }
            }
            sw.WriteLine("-----------------------");
            sw.Close();
            fs.Close();
        }
    }
}

Die erforderlichen Variablen bekommt er aus einer conf-Datei.

Hier auch noch das Aufrufen der Klasse:


namespace MMV_Dienst
{
    public partial class Service1 : ServiceBase
    {
        public mmv n_mmv;

        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            n_mmv = new mmv();
            Thread mmv_thread = new Thread(new ThreadStart(n_mmv.start));
            mmv_thread.Start();
        }

        protected override void OnStop()
        {
            n_mmv.stop();
        }
    }
}

Weiß einer wie ich denn dienst zum laufen bekomme? ich dreh langsam echt durch ^^

mfg. schabe