Announcement

Collapse
No announcement yet.

2Mal nacheinander Spliten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • 2Mal nacheinander Spliten

    Erstmal: Ich Bin neu hier und auch noch nicht so gefestigt in C# hab allerdings wie ihr am Code sehen Werdet schon einiges Gefunden.
    Der Code ist in seiner Ursprünglichen Form lauffähig, nur leider bekommen ich den Fehler das beim Ersten convertieren dieses Fehlschlägt.
    Lässt euch nicht Von multithreading und Webabrufen Täuschen, dies Dient Lediglich dazu die Entsprechenden Abläufe auf Modernen Systemen in Voller Leistung laufen zu lassen.

    Sämtliche Dateien die Heruntergeladen werden, existieren so tatsächlich auf meiner Website.
    Ich Möchte im Voraus für die Mühe danken,. sollte ich selbst ne Lösung finden, teile ich das natürlich mit.
    [highlight=c#]
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Net;
    using System.Threading;
    using System.IO;
    using System.Diagnostics;

    namespace FürBetaTester
    {
    public partial class Form1 : Form
    {
    int restzeit = 0;
    int maxwert = 4;
    public Form1()
    {
    InitializeComponent();
    }
    String[,] programme= new String[10,5];
    String Fehlermeldungen = "Hier werden Status und Fehlermeldungen ausgegeben.";
    private void Form1_Load(object sender, EventArgs e)
    {
    Thread suche = new Thread(sucher);
    suche.IsBackground = true;
    suche.Priority = ThreadPriority.Lowest;
    suche.Start();
    }
    private void sucher()
    {
    string data="";
    try
    {
    //Download der überprüfungsdatei von dem Multithreadcodes Server(Um bei meiner eigenen Website nicht zu viel Trafic zu verbrauchen)

    string strUrl1 = "http://www.repage6.de/memberdata/multithread/neueProgramme.txt";
    WebRequest request1 = WebRequest.Create(strUrl1);
    WebResponse response1 = request1.GetResponse();
    data = new System.IO.StreamReader(response1.GetResponseStream ()).ReadToEnd();
    data = data.ToString();
    restzeit++;
    Fehlermeldungen = "Download Abgeschlossen";

    }
    catch (Exception)
    {
    Fehlermeldungen = "Die Entsprechenden Daten Konnten nicht heruntergeladen werden";
    //Die Entsprechenden Daten Konnten nicht heruntergeladen werden
    restzeit = maxwert;
    }

    //aufteilen der datei damit das Programm damit zurechtkommt.
    try
    {//string line = "";
    string[] zeile;
    string[] packet;
    while(true)
    {
    packet = data.Split(new Char[] { '^' });
    try
    {
    for (int a = 0; a < 10; a++)
    {
    zeile = packet[a].Split(new Char[] { ',' });
    for (int b = 0; b < 5; b++)
    {
    programme[a, b] = zeile[b];
    }

    }
    }
    catch { Fehlermeldungen = "Wärend Der COnvertierung ist es zu einem Fehler gekommen, Thread hat abgebrochen";
    this.Close();
    }
    restzeit++;
    }

    }
    catch(Exception)
    {
    Fehlermeldungen = "Convertierung Abgeschlossen"+programme[1,1];
    // Fehler beim Öffnen der Datei
    //restzeit = maxwert;
    }



    }
    private void tmrfehler_Tick(object sender, EventArgs e)
    {
    tbxfehler.Text = Fehlermeldungen;
    //tbxfehler.Text = ""+restzeit;
    pbdown.Value = restzeit;
    }

    private void clbprogs_SelectedIndexChanged(object sender, EventArgs e)
    {

    }

    private void cmdende_Click(object sender, EventArgs e)
    {
    this.Close();
    }
    }
    }[/highlight]

  • #2
    Hallo und willkommen,

    ich hab deinen Code nur kurz überflogen, aber mir erschließt sich nicht ganz was du erreichen willst. Daher wäre es praktischer wenn du beschreibst was du willst und wie dein Ansatz lautet und dann schauen wir weiter


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      1. while(true)
      2. {
      Wie wird diese Scheilfe je verlassen?
      Christian

      Comment


      • #4
        @Cristia, Ja diese Schleife wird verlassen, durch einen Fehler beim versuch die Textdatei weiterzulesen, da diese zu ende ist.

        Also, Das Programm sollte schlieslich als Hauptprogramm für meine Kleinen Instalationslosen Applikationen werden, Es hohlt sich vom Server die Datei wo drinsteht welche Programme dazugekommen sind, und diejenigen werden vom Programm in einem Neuen Thread hinzugeladen. der teil mit den Try Blöcken, Dort wird die heruntergeladene Datei auseinandergenommen, und genau dorf herscht momentan Proglemfacktor, ich muss die Datei in Zeilen und einzelne Teile Zerlegen, und würde die Daten danach gerne in einem 2 Dimensionalen Array ablegen, danach komme ich wieder selbständig weiter bis fast zum ende.

        Ich Bin Beeindruckt von eurer geschwindigkeit.

        Comment


        • #5
          @Cristia, Ja diese Schleife wird verlassen, durch einen Fehler beim versuch die Textdatei weiterzulesen, da diese zu ende ist.
          Sorry, aber das ist keine Programmierung, das ist Murks.

          Um weiteres zu sagen müsste man wissen in welcher Zeile was für ein Fehler kommt.
          Debugge dein Programm und schaue was passiert.
          Christian

          Comment


          • #6
            Ich habs selbst gesehen, die ist sogar unnütz, und für das andere Gemurks möchte ich mich entschuldigen.

            Der Fehler ligt in der ausgabe die ich mache, programme[1,1]="" also ist anscheinend nichts ins array geschrieben worden.

            Fehlermeldungen = "Convertierung Abgeschlossen"+programme[1,1];//= Convertierung Abgeschlossen, ich hab keine Ahnung wieso das geschiet.

            Comment


            • #7
              Und was ergibt

              Debugge dein Programm und schaue was passiert.
              Weiterhin:

              Warum laufen die beiden Schleifen mit festen Werten und nicht bis zu der Länge der jeweiligen Arrays?

              Warum erfolgt keine Fehlerprüfung, ob das splitten überhaupt etwas ergibt (Länge des Array)?

              Wieso lässt du dir nicht das erste Element im Array programme ausgeben?

              Vermutung:

              Das splitten funktioniert nicht richtig (wirklich ein Dach als Zeilentrenner?) und die Schleife mit den festen Werten verursacht eine Exception.
              Zuletzt editiert von Christian Marquardt; 14.09.2010, 22:00.
              Christian

              Comment


              • #8
                Also, beim Degugge hat es nie einen fehler gegeben, weil ich sämtliche fehler abgefangen habe.

                Warum laufen die beiden Schleifen mit festen Werten und nicht bis zu der Länge der jeweiligen Arrays?
                Hab den Fehler behoben, ist leider erst ne vorversion, da wird sich noch einiges Im Code tun.

                Wieso lässt du dir nicht das erste Element im Array programme ausgeben?
                Weil ich es mir angewöhnt habe das dies nicht viel sinn macht weil dieser Wert automatisch etwas ergibt, wenn ich nur 1 Wert habe, brauche ich ja schlieslich kein Array.

                Es läuft, inzwischen.

                Comment


                • #9
                  Also, beim Degugge hat es nie einen fehler gegeben, weil ich sämtliche fehler abgefangen habe.
                  Das ist Unsinn. Ein Debugging hilft den Programmablauf zu verfolgen unabhänigig davon, ob Fehler auftreten oder nicht. Es dient u.a. eben dazu logische Fehler zu finden.

                  Weil ich es mir angewöhnt habe das dies nicht viel sinn macht weil dieser Wert automatisch etwas ergibt, wenn ich nur 1 Wert habe, brauche ich ja schlieslich kein Array.
                  ?? Das ist unverständlich. Du willst mit dieser Ausgabe etwas prüfen, eben die Aufteilung. Warum sollte es keinen Sinn machen, sich den ersten Wert anzusehen, wenn man schon keine Fehlerprüfung hinsichtlich der Aufteilung macht?


                  Es läuft, inzwischen.
                  Und woran lag es?
                  Christian

                  Comment


                  • #10
                    Und woran lag es?
                    Ich hab keine Ahnung, ich habe die Whil und Try's rausgenommen und variablen stat feste Zahlen genommen. Und einen fehler behoben wenn die datei nicht runtergeladen werden kann.
                    Das mit [1,1] ist einfach ne macke von mir.
                    [highlight=c#]try
                    {
                    //Aufteilen der heruntergeladenen Text Datei zur weiteren Verwendung
                    string[] zeile;
                    string[] packet = new String[befehlslang];
                    packet = data.Split(new Char[] { '^' });
                    for (int a = 0; a < packet.Length; a++)
                    {
                    zeile = packet[a].Split(new Char[] { ',' });
                    for (int b = 0; b < zeile.Length; b++)
                    {
                    programme[a, b] = zeile[b];
                    }

                    }
                    }[/highlight]
                    Jetzt sollte ich es eigentlich fertigstellen können.

                    Comment

                    Working...
                    X