UpdateWecker (Anfänger bittet um Hilfe)

MDS

Grünschnabel
Wie im Titel schon beschrieben bin ich ein ziemliecher Programmier Anfänger, jedoch habe ich ein paar vorkenntnisse in C#. Bevor ich weiter auf die Probleme eingeh, hier erstmal die idee zu meinem Programm.

Beim Aussführen des Programms soll in regelmäßigen abständen (z.b. 15min) der Quelltext einer Seite ausgelesen werden, in diesem Quelltext, soll anschließend an einer gewissen Stelle eine Zahl ausgelesen werden (beim ersten ausführen soll diese gespeichert werden), in jedem weiterm zykluss, soll dann überprüft werden, ob sich die eben ausgelesene Zahl der beim ersten mal Gespeicherten unterscheidet, ist dies der Fall, soll ein Warnton abgespielt werden (da soll dann noch eine Stoppuhr starten, wie lang die letzte aktualisierung her ist)

So das ist im Groß und ganzen die Funktion die ausgeführt werden soll, ist sicher nicht zu kompliziert und ich hab auch schon ideen, jedoch was mir immer am schwersten fällt ist der Aufbau einenes Programmes (Was für Klassen und wiviele leg ich an, wie deklarier ich die methoden etc.) Ich werd wärend ich auf eine Antwort warte den Tutorials bereich durchstöbern, es wäre sehr nett, wenn jemand Stichwortartig ein Layout vorschlagen könnte oder ähnliches.

Achja noch ne Frage, ist es möglich so ein Script in eine html Seite einzubauen, das es quasi 24h läuft?
 
Hey,


Klassen: Timer, HttpWebRequest, SystemSounds (SystemSounds.Beep)

Soll das Programm wirklich eine System.Windows.Form haben oder reicht vielleicht auch eine Konsolenanwendung?

Für 24/7 würde ich einen Dienst daraus machen, damit kenn ich mich aber nicht aus, hab noch nie einen programmiert.

MfG
 
Zuletzt bearbeitet von einem Moderator:
eigentlich reicht auch eine kosolenanwendung, wenn die darstellung einer stoppuhr dort auch möglich ist.

Die Klassen die du aufgezählt hast, muss ich die nur importieren oder sind das die Klassen die ich anlegen soll? (wie gesagt, einzelne methoden zu schreiben klappt ganz gut, aber das layout für ein programm zu erstellen, da hab ich imense lücken)
 
eigentlich reicht auch eine kosolenanwendung, wenn die darstellung einer stoppuhr dort auch möglich ist.

Also wenn du einfach nur eine Anzeige als Zahl/Zeichenfolge haben möchtest, reicht eine Konsolenanwendung aus, soll die einwenig mehr graphisches Beinhalten wirst du wohl eine WinForms/WPF-Anwendung erstellen müssen.

Die Klassen die du aufgezählt hast, muss ich die nur importieren oder sind das die Klassen die ich anlegen soll? (wie gesagt, einzelne methoden zu schreiben klappt ganz gut, aber das layout für ein programm zu erstellen, da hab ich imense lücken)

Diese Klassen solltest du dir mal angucken und dann bei Bedarf benutzen. Wie man Klassen benutzt weißt du oder? Wenn nicht (wonach es ehrlich gesagt aussieht), solltest du mal das kostenlose Online-Buch mind. bis Kapitel 10 durcharbeiten!.

Gruß
RudolfG
 
erstmal danke für eure Hilfe, mit den von VScan vorgeschlagenen Klassen bin ich shcon ein stückchen weiter gekommen, das regelmäßige abspeichern des Quelltext in einem String klappt schon, auch die ausgabe des Tons, jetzt bin ich jedoch mit eineme Probelm konfrontiert, wo ich nicht wirklich weiss wie ich es behandeln soll.

Im Quelltext gibt es eine bestimmte Zahl die mich interessiert, jedoch verändert die sich:

<td><img src="http://" alt="Name"></td>
<td><a href="http://">Name</a></td>
<td>2,841</td>
<td><span class="drop">-22</span></td>

Dies sind die Zahlen die mich interessieren und dich ich gern verlgeichen möchte, wär nett wenn da jemand helfen könnte, hatte schon überlegt mit IndexOf dran zu kommen aber irgendwie klappt das nicht so recht.
 
So habs geschafft, mit IndexOf und Substring hab ich mir was zusammengebastelt was den jeweiligen string rausliest, jetzt heisst es nur noch warten und hoffen das es funktioniert!


//edit: Problem hat sich erledigt, vielen dank für die Hilfe.
 
Zuletzt bearbeitet:
Hey,

nur um noch Klarheit zu schaffen und weil ich zu wenig Übung in Regex hab :)

Hab versucht, es mit einer Regex zu lösen, dazu musst Du aber die Zeile wissen, in der der Wert ist, vielleicht weis Jemand ein eleganteres Pattern...


Code:
            String lineOne = "<td>2,841</td>";
            String lineTwo = "<td><span class=\"drop\">-22</span></td>";
            

            Regex rex = new Regex(@">(?<num>.?\d[^<]+)");
            MessageBox.Show(rex.Match(lineOne).Result("${num}"));
            MessageBox.Show(rex.Match(lineTwo).Result("${num}"));

Bedingung: Der Text muss eine Zahl enthalten in den angegebenen Strings, d.h. wenn keine vorhanden ist, bekommst Du eine Null-Exception.


Greetz
 
Zuletzt bearbeitet von einem Moderator:
danke nochmal für die mühe VScan, war die letzten zwei Tage verhindert, aber jetzt zurück zum Projekt! Bei genauerer Betrachtung des Quelltextes ist mir aufgefallen das die gewünschenten Zahlen immer in zeile 272 und 273 stehen, gibt es die Möglichkeit anstatt den ganzen Quelltext in nem String zu speichern sich auf diese 2 zeilen zu beschränken und dann anschließend Regex zu benutzen?
 
habs jetzt mal so versucht

StringReader PriceIt = new StringReader(Quelltext);



string Price1 = "";
for (int i = 0; i <= 272; i++)
{
Price1 = PriceIt.ReadLine();
}

was auch funktioniert und mir den Richtigen Preis ausgibt! Jedoch ist meine Frage jetzt ob das nicht villeicht ein bisschen eleganter geht.

@VScan: Ich hab jetzt dein Regex mal getestet, wenn ich .Result anhäng schmeisst es ein Fehler (kann leider grad nicht nachschauen was genau für einer, da mir das Programm die ganze Zeit abschmiert ^^) ... wenn ich jedoch einfach .ToString() anhäng wirft es mir auch die gewünschten Zahlen aus... nur mit > am anfang.
 

Neue Beiträge

Zurück