Jump to content

Tician

Mitglieder
  • Gesamte Inhalte

    405
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    5

Tician hat zuletzt am 19. August gewonnen

Tician hat die beliebtesten Inhalte erstellt!

1 Benutzer folgt diesem Benutzer

Über Tician

  • Rang
    Advanced Member

Profile Information

  • Ort
    127.0.0.1

Letzte Besucher des Profils

4.520 Profilaufrufe
  1. @GoulaszStreich das XML, ich hab keine Ahnung wie das da reingerutscht ist, ich meinte natürlich XLS. Ich hab in letzter Zeit viel mit XML gearbeitet. Ich schaue mir mal R an
  2. Huff, ihr braucht mehr Infos wenn ich das richtig sehe? Das Dateiformat ist .xls und das immer (kein .xlsx). Wie gesagt auf der Maschine auf der das Programm laufen soll ist kein Excel installiert (Windows Server 2016), mir steht es frei welche Programmiersprache ich benutze oder ob zusätzliche Bibliotheken mit eingebunden werden müssen. Wobei die Idee die XML in eine CSV umzuwandeln mich gerade am ehesten interessieren würde weil für CSV habe ich bereits den Code - aber auch da scheine ich um Interop und OleDb nicht drum rum zu kommen. Das Problem mit Interop (heute natürlich weil Excel nicht installiert ist) war, dass egal wie ich es versucht hab die Prozesse nicht beendet wurden und es die Klasse "Mashal" nicht (mehr?) gibt, die 90% der Beispiele ausmachen um die Prozesse sauber zu beenden. Wenn ich das richtig sehe wird (auch durch den Faktor das es xls und keine xlsx-Dateien sind) wohl auf R hinaus laufen und bei heise hab ich gesehen dass das seit letztem Jahr auch von Visual Studio unterstützt wird. Welche Infos braucht ihr denn?
  3. Moinsen, Ich hatte schonmal ein Projekt indem mein Programm eine Excel-Datei erstellen und verändern sollte. Damals habe ich Office's Interop benutzt - und es war zum Haare raus reißen. Jetzt brauche ich wieder ein programm, diesmal muss aber nur eine Excel-Tabelle (quasi eine csv, aber ist leider eine xls-Datei) ausgelesen und bestenfalls in einer DataTable gespeichert werden. Mich interessiert absolut nur der Inhalt der Zellen. Im Internet habe ich nun etwas mit OleDb gefunden, aber das scheint mit Office 365 (Office 2016) null zu funktionieren, entweder bekomme ich die Meldung das der Provider auf meinem PC nicht eingerichtet ist oder dass ISAM nicht installiert ist. Ich hab zahlreiche OleDb-Connectionstrings versucht, aber alles was ich dazu finde ist veraltet (Office 2008/2010) udn auch wenn ich es sinngemäß auf Office 2016 übertragen möchte - es tut nicht. Weiß jemand was mir fehlt oder gibt es vielleicht einen ganz anderen Ansatz um die Excel-Datei auszulesen (auf der Ziel-Maschine ist kein Excel installiert)?
  4. Code wie ich ihn habe (ich weiß das man tausend Sachen besser machen kann, aber bitte eins nach dem anderen ._.): using Oracle.ManagedDataAccess.Client; ... OracleConnection con = new OracleConnection(); DataTable dataRollkarte = new DataTable(); int sumRollkarte = 0; public Form1() { InitializeComponent(); this.Shown += LoadSQL; //Oberfläche wird angezeigt, aber blockiert, sämtliche Elemente werden nur als weiße Rechtecke angezeigt } private async void LoadSQL(object sender, EventArgs e) { //Rollkarte label7.Text = "Processing"; sumRollkarte = 0; dataRollkarte = await GetRollkarte(); foreach (DataRow dr in dataRollkarte.Rows) { sumRollkarte += Convert.ToInt32(dr[11]); //Endlosschleife } label2.Text = Convert.ToString(sumRollkarte); label1.BackColor = Color.LimeGreen; label2.BackColor = Color.LimeGreen; label7.Text = "Fertig"; } private async Task<DataTable> GetRollkarte() { dbConnect(); OracleCommand cmd = new OracleCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = @"Viel zu lange..."; cmd.Connection = con; DataTable dt = new DataTable(); using (DbDataReader dr = await cmd.ExecuteReaderAsync()) { dt.Load(dr); } dbDisconnect(); return dt; } Ich hab die komische weiße Oberfläche und eine Schleife die endlos läuft - das hat sie vor dem async noch nicht getan. Ich musste auch meine OracleDataReader-Klasse gegen die NET-eigene DbDataReader-Klasse austauschen sonst hab ich Fehlermeldungen bekommen. Edit: Endlosschleife hat sich erledigt, es läuft alles durch, aber das async-Zeug funktioniert null^^
  5. Jetzt funktioniert es gar nicht mehr, es läuft und läuft und gibt mir meine GUI überhaupt nicht mehr - und der RAM wird immer voller. Oh man bin ich genervt, also erstmal debuggen mit Breakpoints... Das wird immer seltsamer, mit Breakpoint zeigt es mir die Oberfläche an, aber die Elemente sind alle nur weiße Vierecke und blockiert ist sie trotzdem...
  6. Oh arlegermi <3 Mein Kopf war Hohl, mein Magen auch, jetzt nach dem Mittagessen kann ich wieder denken. Ich hatte versucht mein Event (bzw die Erstellung dessen) außerhalb von Methoden, also direkt in die Klasse zu packen, deswegen die tausend Fehlermeldungen. So, also mein Plan ist die Oberfläche zu haben, die soll ein kleines Element für Statusmeldungen haben zum Beispiel "Abfrage 1 wird ausgeführt", dann "Anfrage 2 wird ausgeführt", etc. Gleichzeitig soll sich nach jeder Abfrage ein label verändern. Gott sei Dank hat das Oracle-zeug das ich runtergeladen habe jeweils eine async-Methode zum ausführen dabei. Mein Konzelt wäre also jetzt so: public Form1() { //load some settings this.Shown += LoadSQL; } private async void LoadSQL(object sender, EventArgs e) { label.Text = "Abfrage 1 ist in bearbeitung"; DataTable anfrage1 = await SQL-Anfrage1.ExecuteReaderAsync(); //blabla paar Berechnungen label2.BackgroundColor = green; DataTable anfrage2 = await SQL-Anfrage2.ExecuteReaderAsync(); ... } Sorry für die scheiß Formatierung^^ Ich muss mir das nochmal durchlesen, ich habe es nur halbherzig verstanden, vielleicht auch mal etwas rumprobieren mit Breakpoints (geht das überhaupt?) um zu sehen was genau gleichzeitig abläuft und was wann wartet. Edit: DataTable enthält keine Definition für "GetAwaiter" ...
  7. So, Programm funktioniert, bis mir jemand sagt das es sofort gebraucht wird habe ich also Zeit das ganze zu verbessern. Ich habe mir mal die Seite von SilentDemise angesehen und wenn ich das richtig sehe funktioniert das nur mit Events. Jetzt wurde natürlich vorher gesagt ich soll die SQL-Abfragen in das Form.Shown()-Event packen. Allerdings habe ich die Microsoft-Seite schon immer gehasst, die hat nichts was ich irgendwie verstehe. Ich weiß das meine Form1 automatisch in den Designer und meinen eigentlichen Code aufgeteilt ist. Mache ich einen doppelklick auf das Event von der Form1-GUI (so hatte ich es gelernt) wird mein Event im Designer erstellt und im Code-Teil kann ich sagen was passieren soll. Wie funktioniert das mit dem async-Ding? Ich habe etwas rumptobiert (weiß auch nicht was "=>" heißen soll, habe ich noch nie benutzt) Ich hätte es ja irgendwie so gemacht: this.Shown += async (o, e) =>{} Aber da schmeißt mich VS mit genau 68 Fehlermeldungen zu.
  8. Keine Ahnung ob man mich zum Inventar zählt oder nicht, aber ich spreche auch mal frei von der Seele: Ich stimme dem Topic-Ersteller grob zu. Wenn ich fragen habe bekomme ich hier mittlerweile auch zielgerecht und lösungsorientiert antworten im Sinne von "Das und das wäre der beste Weg, du möchtest es aber schnell haben dann kannst du es auch so und so machen - ist aber scheiße und wird nicht gern gesehen". Sowas ist perfekt, ich kriege eine Lösung und weiß aber auch das ich beim nächsten mal gleich darauf achten kann etwas anders zu machen. Das ist jetzt so, vermutlich weil mich die Leute kennen und mich keiner mehr für meinen Spaghetti-Code nieder macht, denn genau das war es am anfang. Ich hatte Code vorgestellt udn gesagt bekommen ich soll die Grundlagen nochmal wiederholen weil ich mit Fachbegriffen nicht um mih schmeißen konnte - das hat mich ziemlich zur verzweiflung gebracht und mir auch die Lust am Programmieren genommen (nochmal für alle: ich bin FISI, ich automatisiere die Prozesse hier im Betrieb mit C# weil es sich anbietet). Aber andersrum: Es gab auch die Leute die mich in Schutz genommen haben und mir durch ihre freundlichen Worte wieder motiviert haben
  9. Hab noch nie von asynchronem blablubb gehört. Ich schau erstmal das die Funktionen fertig sind, das Ding soll auch noch Mails verschicken und heute noch fertig werden. Bis es produktiv ist schau ich mal das ich das using-Zeug auf die Datei-verarbeitung bekomme, das Event richtig hinbastel und schau mal etwas verständliches über asynchrone Abfragen zu finden.
  10. Die SQL-Abfragen sind nicht von unserer Firma und wir dürfen da nichts dran drehen - die Datenbank übrigens auch nicht. Form.SHow-Event hört sich gut an, danke!
  11. Ohje, das sah mir bis jetzt zu hoch aus. @Chief Wiggum Der Konstruktor meiner Form1 (stinknormales .NET btw) ist das Problem, da wird die Verbindung zum Oracle-SQL hergestellt und es werden die SQL-Abfragen gemacht und je nach Ergebnis werden labels mit unterschiedlicher Hintergrundfarbe versehen. Ich weiß es zwar nicht genau, aber ich denke es werden die SQL-Abfragen sein die so lange dauern, wie gesagt die gehen über 100 Zeilen und die DB ist rießig.
  12. Hallöööchen mit 3 öchen, Ich habe ein Programm mit grafischer Oberfläche (Form) und ner Menge code der losrennt sobald das Programm gestartet wurde - unter anderem 3 SQL-Abfragen die jeweils über 100 Zeilen lang sind. An sich läuft alles durch, aber vom "Klick" auf die exe-Datei bis hin zur sichtbaren Oberfläche dauert es 20 Sekunden - das passt mir nicht und ein Anwender denkt dann natürlich das es nicht funktioniert und klickt dementsprechend noch ein paarmal auf die ausführbare Datei. Meine Frage ist nun: Gibt es eine Möglichkeit die grafische Oberfläche anzuzeigen und ohne Zwischenaktion (wie Button-Click oder so) erst den Rest des Codes rennen zu laufen wenn die GUI angezeigt wird?
  13. XML-Exception ungültiges Zeichen

    Funktioniert einwandfrei, vielen Dank!
  14. Baden Würtemberg 2018 Prüfungstermine

    https://www.stuttgart.ihk24.de/blob/sihk24/Fuer-Unternehmen/Fachkraefte-und-Ausbildung/Ausbildung/downloads/662928/c0c139bd2d71886f02294d680c724dbf/Pruefungstermine_Abschlusspruefung_Sommer-data.pdf Prüfungen FISI/FIAE: Schriftliche Prüfung 14. + 15.05.2018
  15. XML-Exception ungültiges Zeichen

    Hallöööchen mit 3 öchen, Mit meinem C# programm lese ich XML-Dateien aus. Damals hätte ich einen StreamReader genommen und mit Regex ausgelesen, seit geraumer Zeit benutze ich aber die angebotenen XML-Klassen. Das Problem: Die XML-Datei hat keinen Header der die Codierung angibt - zudem habe ich darauf auch keinen EInfluss, die Anforderung ist also ohne auszukommen. Die Datei selbst beinhaltet norwegische, dänische und schwedische Zeichen - und eines davon (vielleicht auch mehrere) bringt mein Programm dazu mit einer Exception zu beenden: System.Xml.XmlException: Ungültiges Zeichen in der angegebenen Codierung Der relevante Code sieht so aus: string[] files = Directory.GetFiles(stringSource, "*.xml"); if (files.Length != 0) { using (StreamWriter sw = new StreamWriter(destinationPath)) { foreach (object file in files) { name = Convert.ToString(file); //Read XML, get Nodes XmlDocument doc = new XmlDocument(); doc.Load(name); //hier Exception Das angemeckerte Zeichen: å Ich habe gesehen das andere das wohl irgendwie in einen StreamReader packen - aber verstanden habe ich es nicht wirklich. Außerdem weiß ich überhaupt nicht welchen Zeichensatz ich brauche. Habt ihr Ideen oder Lösungen? Grüße Tician
×