Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Tician

User
  • Registriert

  • Letzter Besuch

Beiträge Beiträge von Tician

  1. ·

    Bearbeitet von Tician

    vor 5 Stunden schrieb Tician:

    catch (Exception ex)

    {

    Console.WriteLine(ex);

    Console.WriteLine("Programm wird beendet, bitte beliebige Taste druecken...");

    sw.Close();

    sr.Close();

    Console.ReadKey();

    }

    Auch wenn das jetzt alles wieder sehr Lehrreich war würde ich fast behaupten wenn ich jetzt das hier mache:

    catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    Console.WriteLine("Programm wird beendet, bitte beliebige Taste druecken...");
                    sw.Close();
                    sr.Close();
    				sw.Dispose();
                    Console.ReadKey();
                }                     

    Das sich das Programm trotzdem an der unbehandelten Ausnahme bei sw.Close() aufhängt weil er das schon gar nicht mehr machen kann. Wenn ich das jetzt aber umdrehe und sw.Dispose() zuerst aufrufe denke ich gibt es auch Probleme (ich sollte ja keine Ressourcen freigeben wenn der StreamWriter noch nicht geschlossen wurde).

    Wenn ich jetzt also doch ein using() benutze... wann genau wird das Dispose aufgerufen? Direkt am Anfang der Exception oder am Ende? Keine Ahnung wie lange ich heute noch bleibe das ist alles Spekulation basierend auf meinem Verständnis der Dinge, ich probier entweder später oder morgen nochmal rum.

  2. Also schaue ich mir die Klassen die ich benutze wohl besser genauer an. Ist das IDispose das einzige Anzeichen für unmanaged Code?

    Wenn ich das richtig verstehe und faul wäre müsste ich rein theoretisch in meiner Exception also statt sw.Close() einfach ein sw.Dispose() einfügen? Oder brauche ich trotzdem das sw.Close() (wir hatten in der Schule gelernt das das Erzeugen des Objektes eine Datei öffnet; mit sw.WriteLine schreiben wir in die Datei und ohne sw.Close() gibt es keine Datei oder Veränderung da mit sw.Close die Datei erst gespeichert und geschlossen wird)? Oder warum meintest du brauche ich dringend ein using? Ich behandel die csv ja wie eine normale Text-Datei und genauso wird sie auch wieder geschrieben, das Programm funktioniert ja soweit fast einwandfrei.

  3. Ah, dann hast du das wiederholt was mein Ausbilder vorgeschlagen hat: Erst alles in einer Variable sammeln und dann in einem Rutsch in die Datei.

    Wenn mein Programm so abstürzt hab ich nämlich auch eine Datei (Die .tmp die geschrieben wird) die sich dann auch nach PC Neustart nicht löschen lässt ("wird von einem Prozess verwendet"), das dauert dann etwa 20 Minuten bis dieser Zugriff weg ist.

    Ich habe jetzt oft von managed und unmanaged Code gehört und weiß auch etwa was es ist. Wie erkenne ich unmanaged Code denn, wie kommst du auf dieses IDisposable? Ich dachte unmanaged Code wäre alles was ich von einer .dll entnehme die nicht automatisch in der IDE enthalten ist (z.B. Public Declare Function BlockInput Lib "user32".... ) oder sowas, wir haben das Schreiben und Lesen aus Dateien in der Schule drangenommen aber auch nur ohne dieses "using".

    Ich habe also die Wahl entweder erst alles im Speicher zu machen oder ein using zu benutzen. Und wenn ich das richtig gelesen habe dann muss ich Dispose() aufrufen wenn ich fertig bin, aber wenn mein Code gegen die Wand rennt (also ne Exception wirft) dann wird Dispose() automatisch ausgeführt.

    https://msdn.microsoft.com/de-de/library/yh598w02.aspx

  4. So also ich kann sagen beim ersten Ausführen an jedem PC kommt dieser Fehler, danach nicht mehr. Ich hab also nachdem es 20 mal lief den PC neu gestartet und zack hatte den Fehler. Wie gesagt kann ich nicht sagen warum sich das Netzwerk so verhält, aber das Programm macht komisches, wenn ich das richtig sehe kommt der mit dem sw.Close() nicht klar und schmeißt dann noch einen unbehandelten Fehler?

     

    Unbenannt2.png

  5. Oh, ich hatte es jetzt vorübergehend auf Desktop verschoben weil es Netzwerkmäßig eben diesen Hänger hatte, das sollte eigentlich ein Netzwerkpfad sein

                    //string sourcePath = @"\\nas-xxx\blabla";
                    //string destinationPath = @"\\nas-xxx\blabla";
                    string sourcePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Ordnername";
                    string destinationPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\Ordnername";

    So sieht es gerade vorübergehend im Code aus, ich hatte es vergessen zu verändern.

    Mit deinen Fragen kann ich nichts anfangen, den genauen Wortlaut der Exceptions muss ich nochmal irgendwie kreieren und hoffen das ich einen Screenshot machen kann und das "Programm funktioniert nicht mehr" blabla von Windows irgendwie wegschieben. Was sind Symbol-Dateien und Stacktrace? Ich kann also die pdb-Datei in den Ordner werfen in dem auch meine exe-Datei ist? Erzeugt das dann eine Datei?

  6. ·

    Bearbeitet von Tician

    Ja, mein Programm soll aus csv-Dateien aus jeder Zeile eine bestimmte Spalte auslesen (Zahl). Diese wird an einen link gehängt, der link selbst steht fest im Code und gibt auch ohne den Zusatz der Zahl (oder sogar einer falschen Zahl) ein Ergebnis zurück. Die URL muss richtig sein, zu 99% läuft das Programm durch, selten gibt der angesprochen Server einen Fehler (500 - "Interner Serverfehler") zurück, auch das funktioniert einwadnfrei und das Programm läuft wie ich es wollte weiter.

    Der Rest stimmt nicht ganz, ich fächer meinen Code mal komplett auf, aber dadurch das es Spaghetti-Code ist bin ich einfach mittlerweile schon so deprimiert das ich mich nicht mehr traue den Code zu posten ._.

    static void Main(string[] args)
            {
                StreamReader sr = null;
                string currentLine;
                StreamWriter sw = null;
                List<string> nummerListe = new List<string>();
    
                try
                {
                    string sourcePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
                    string destinationPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
                      //doppelt da später noch geändert wird
                    string[] filearray = Directory.GetFiles(sourcePath, "*.csv");
                    int sourcearraylength = filearray.Length;
    
                    if (sourcearraylength == 0) //wenn keine Datei vorhanden dann schließ das Programm
                    {
                        Environment.Exit(0);
                    }
    
                    for (int x = 1; x <= sourcearraylength; x++) //jeder Datei
                    {
                        sr = new StreamReader(filearray[x - 1], true);
                        string dateiname = "\\inArbeit";
                        sw = new StreamWriter(destinationPath + dateiname + ".tmp");
                        WebClient wc = new WebClient();
                      
                        //Read and write header
                        string header = sr.ReadLine();
                        sw.WriteLine(header + ";Status-Text;Status");
    
                        while ((currentLine = sr.ReadLine()) != null) //jede Zeile
                        {
                            string[] singleData = currentLine.Split(';');
                            string nummer = singleData[6];
    
                            if (singleData[0] == "Anzahl:")
                            { //Datei hat noch viele leere Zeilen nach "Anzahl:", diese sollen übersprungen  werden
                                sw.WriteLine(currentLine);
                                break;
                            }
    
                            Console.WriteLine("Schaue nach Nummer: " + nummer);
    
                            if (!nummerListe.Contains(nummer))
                            {
                                //get site information
                                string url = "https://blabla" + nummer;
                                byte[] response = null;
                                try
                                {
                                    response = wc.DownloadData(url);
                                }
                                catch (WebException)
                                {
                                    Console.WriteLine("...HTTP-Error");
                                    sw.WriteLine(currentLine+";Fehler;Fehler");
                                    continue;
                                }                            
                                string webtext = Encoding.ASCII.GetString(response);
    
                                //Regex for searching
                                Regex reg = new Regex("String1", RegexOptions.Singleline);
                                Regex reg2 = new Regex("String2", RegexOptions.Singleline);
                                Regex reg3 = new Regex("String3", RegexOptions.Singleline);
                                Regex reg4 = new Regex("String4", RegexOptions.Singleline);
                                Match match = reg.Match(webtext);
                                Match match2 = reg2.Match(webtext);
                                Match match3 = reg3.Match(webtext);
                                Match match4 = reg4.Match(webtext);
    
                                if (match.Success)
                                {
    
                                    sw.WriteLine(currentLine + ";blabla;alles gut");
                                    Console.WriteLine("...gut");
                                }
                                else if (match2.Success)
                                {
                                    sw.WriteLine(currentLine + ";blabla2;gut");
                                    Console.WriteLine("...gut");
                                }
                                else if (match3.Success)
                                {
                                    sw.WriteLine(currentLine + ";blabla3;gut");
                                    Console.WriteLine("...gut");
                                }
                                else if (match4.Success)
                                {
                                    sw.WriteLine(currentLine + ";blabla4;kein Status");
                                    Console.WriteLine("...ohne Status");
                                }
    
    
                                else
                                {
                                    sw.WriteLine(currentLine + ";blabla5;ueberpruefen");
                                    Console.WriteLine("...ueberpruefen");
                                }
    
                                //add to list
                                versandnummerListe.Add(versandnummer);
                            }     
                            else
                            {
                                sw.WriteLine(currentLine + ";bereits geprueft;uebersprungen");
                                Console.WriteLine("...uebersprungen");
                            }  
                                          
                        }
                        sw.Close();
                        sr.Close();
    
                        File.Move(destinationPath + dateiname + ".tmp", destinationPath + "\\Fertig" + Path.GetFileName(filearray[x - 1]));
                    }
                    Console.WriteLine("Abgeschlossen\n\nBeliebige Taste zum Beenden des Programmes druecken...");
                    Console.ReadKey();
                }          
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                    Console.WriteLine("Programm wird beendet, bitte beliebige Taste druecken...");
                    sw.Close();
                    sr.Close();
                    Console.ReadKey();
                }                     
            }

    Ich hoffe ich hab alles erwischt was nicht neutral ist.

    Wie gesagt das Programm stürzt nur ohne IDE ab und da gibt es dann keine Zeilennummer oder ähnliches, das einzige was ich gesehen habe ist das mehrmals ein "Pfad nicht vorhanden" kam, weil wie gesagt aus irgendeinem Grund beim Programmstart der Netzwerk-Ordner mal kurz neu geladen hat - zum 2. mal.

  7. ·

    Bearbeitet von Tician

    OK dann hier mal anhand des Codes erklärt was ich mache:

    try
    { 
    ...
    byte[] response;
    //ließ alle Dateien in einem Ordner ein
    	for () //für jede Datei führe aus...
    	{		//Bsp: skip erste Zeile (Header)
          WebClient wc = new WebClient();
    		while ((currentLine = sr.ReadLine()) != null) //für jede Zeile...
    		{
    			if (!nummerliste.Contains(nummer) 	//wenn eine Nummer in der Datei noch nicht vorkam
    			{
                  byte[] response = null;
    				try
    				{
    				response = WebClient.DownloadData(url+nummer) //ließ die Seite aus
    				}
    				catch (WebException)
    				{
    				Console.WriteLine("HTTP-Error") //Seite gibt bei Stichzeiten einen 500-Error zurück, das ist ein Einzelfall und soll übersprungen werden
    				continue;
    				}
                  //hier noch einige if/Else if/else-Abfragen um die Informationen zu sortieren
                  nummerliste.Add(nummer)
    			}
    		}
            sw.Close();
            sr.Close();
    	}
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex);
    sw.Close();
    sr.Close();
    Console.ReadKey();
    }

    Das sollte einen groben EInblick geben was passiert, bzw was ich bezwecken möchte.

    Die Betreiber der Siete haben eine API, die aber leider schon seit Wochen in Wartung und nicht verfügbar ist weswegen ich das Programm hier überhaupt schreibe

  8. Veröffentlicht

    Hallöööchen mit 3 öchen

    ich habe ein Programm das Dateien einließt und auch schreibt. Das Programm läuft mit der IDE einwandfrei (liegt auf einem Netzlaufwerk) - ohne IDE stürzt es oft ab.

    Unser Netzwerk ist sehr stabil, die exe-Datei, die zu lesende Datei und die zu schreibende Datei befinden sich alle im selben Ordner und sobald ich mein Programm starte passiert es oft das der grüne (Windows 7) Ladebalken in der Pfad-Leiste des Netzwerkordners erscheint, kurz darauf schmeißt mein Programm 2 IO-Exceptions (eine davon "Netzwerkpfad nicht vorhanden") und reagiert schließlich nicht mehr (ich schätze ja das Programm selbst wird komplett in den Arbeitsspeicher geladen sonst kann er ja nicht mehr auf die exe zugreifen?).

    Abgefangen habe ich Exceptions so:

    try
    { 
    ...
    byte[] response;
    	for ()
    	{
    		while ()
    		{
    			if ()
    			{
    				try
    				{
    				response = WebClient.DownloadData(url)
    				}
    				catch (WebException)
    				{
    				Console.WriteLine("HTTP-Error")
    				continue;
    				}
    			}
    		}
    	}
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex);
    sw.Close();
    sr.Close();
    Console.ReadKey();
    }
    	

    Den WebException brauche ich extra, weil das Programm mit neuem Beginn der while-Schleife weiterlaufen muss, bei allem anderen soll es natürlich abbrechen. Ich hätte behauptet eigentlich sollte ich nur 1 Exception erhalten, aber mein Programm wirft ja 2 bevor es abstürzt. Ist das nun weil C# automatisch mehrere Threads erstellt oder rutscht es bei IO-Exceptions irgendwie doch in das kleine WebException rein oder kann ich bei Netzwerkabbruch überhaupt nichts abfangen weil das Programm ja selbst nicht erreichbar ist?

    Warum das Netzlaufwerk an erster Stelle da kurz Schluckauf hat weiß ich nicht. Für Hilfe wäre ich wie immer dankbar.

  9. vor einer Stunde schrieb Whiz-zarD:

    Sorry aber das, was ich von dir in diesem Forum gesehen habe, war keine objektorientierte Programmierung. Nur weil man eine objektorientierte Sprache verwendet, heißt es noch lange nicht, dass man auch Objektorientierung anwendet

    Exakt, wir lernen es, weswegen die Ausssage hier auch nichts zu suchen hat, das ich es nicht anwenden kann ist mein Problem :(

    Du beziehst dich nur auf FIAE'ler, aber was denkst du erwartet man programmiertechnisch von einem FISI wie mir später?

    Kein Lehrer und auch keine Schule ist perfekt, man muss sich anpassen und wenn ich etwas nicht verstehe frage ich meinen Ausbilder oder belese mich in Büchern oder über google.

  10. Also ich komme aus Baden Württemberg und bin im 2. Layer (Lehrjahr :D) und bis jetzt ist Schule eigentlich echt super.

    BWL und Wirtschaftslehre gibt es absolut nichts auszusetzen, unsere Lehrerin bringt alles verständlich und geordnet rüber und sagt uns auch vorher was Prüfungsrelevant ist und was nicht.

    SAEL ist ziemlich viel: C#, objektorientiertes Programmieren, Struktogramm, UML und gleichzeitig lernen wir die Grundlagen von Datenbanken (Access), also Begriffe, Beziehungen, ERModell

    Deutsch und GGK sind meine Hassfächer, nicht weil ich es nicht kann sondern weil ich den Lehrer nicht abkann er springt von Thema zu Thema, hat überhaupt keinen Faden den man verfolgen kann und ist ein Einwanderer der gebrochen deutsch spricht, aber zumindest in der Theorie weiß wie die Sprache funktioniert. Dementsprechend rennen wir die Themen durch und lernen halt irgendwie auswendig.

    ITS ist solala. Wir haben im ersten Lehrjahr Hardware-Grundlagen gehabt, sprich was ist in einem PC verbaut, wie pflegt man es und aus welchen Funktionsteilen besteht es. Dieses Lehrjahr haben wir mit Windows-Server angefangen, also einen aufgesetzt, AD und DHCP installiert, Benutzer angelegt und Laufwerke mit verschiedenen Rechten automatisch verbunden. Mit Linux haben wir noch gar nichts gemacht. Wir richten Cisco-Switche ein (IP, Passwörter, MOTD, VLAN,...), dabei lernen die meisten die Befehle die sie eintippen auswendig, weil ein paar Grundlagen nicht angekommen sind (z.B. wie man das '?' verwendet und das die Befehle Abkürzungen sind).

    Der Hammer dabei ist das wir zwar IPs vergeben aber noch überhaupt keine Grundlage haben, die Schüler wissen nicht was das überhaupt ist, was es mit der SNM auf sich hat oder warum plötzlich kein SGW gebraucht wird. "Weil das kommt erst in Kapitel 6 dran" und damit umgeht unser Lehrer den theoretischen Teil weil er die Frage nach dem "Warum brauchen wir das" umgehen möchte indem er erst das praktische macht. Regt mich zwar auf, aber ich persönlich komme damit klar weil ich mir alles ergoogle, wie andere das machen - keine Ahnung.

    Englisch ist halt englisch^^ Kreuz und quer mal Texte übersetzen, neue Wörter lernen, Betrieb vorstellen können. Irgendwie sowas.

    Und mehr Fächer haben wir Gott sei Dank nicht. Alles in allem für mich persönlich sehr lehrreich.

  11. Bei uns gibt es niemanden der Programmieren kann und außer mir und meinem Ausbilder gibt es auch keine anderen Informatiker hier. Was ich mache sind im Prinzip nur kleine Dinge die einem das Leben (arbeiten^^) einfacher machen sollen.

    Mein Problem war das ich schon einen Timer habe und IN diesem Timer soll bei einem Exception 10 Minuten pausiert werden, bevor der Timer wieder losrennt, aber das habe ich gelöst.

    Zurück zum Topic, alles was meine Form und deren Sichtbarkeit betrifft sieht so aus:

    		public Form1()
            {
                        this.FormBorderStyle = FormBorderStyle.None;
                        this.ShowInTaskbar = false;
                        this.Load += new EventHandler(Form1_Load);
    		}
    
            private void Form1_Load(object sender, EventArgs e)
            {
                this.Size = new Size(0, 0);
            }

    Funktioniert ja wie gesagt auch einwadnfrei, es sei denn ein Exception wird geworfen (Wie gesagt die Exception ist im Timer.Tick Event drin)

    catch (Exception ex)
                {
                    sw = new StreamWriter(tmpPath + "MessageClient.log", true);
                    sw.WriteLine(ex.Message + " " + DateTime.Now);
                    sw.Close();
                    Thread.Sleep(600000);
                }

    Dann taucht in der Taskleiste ein Fenster auf das einfach nur nervig ist und mit dem man nichts tun kann, weder schließen noch anklicken noch sonst irgendwas. Wenn die Sleep-Zeit vorbei ist tut es dann wieder und das Fenster ist verschwunden.

    Das wäre gerade "nur" ein Schönheitsfehler

  12. Ich hatte es mal probiert. Ich slebst kann kein WIndows-Service erstellen mit meiner Community-Edition. Mein Ausbilder hat es erstellt und ich sollte es bearbeiten aber dann waren da Dinge in der Anleitung die ich einstellen sollte und bei mir nicht gefunden habe also habe ich es gelassen.

    @Gottlike Steht bereits in meinem Code, macht es einen unterschied wenn ich es in den "Form_Load" reinschmeiße?

  13. Veröffentlicht

    Moin!

    Ich hab ein Programm das ähnlich wie ein Service im Hintergrund laufen soll. Es hat kein Fenster und wird auch nicht in der Taskleiste angezeigt.

    Soweit so gut funktioniert es auch. Benutzt dazu wurde folgender Code:

    					this.FormBorderStyle = FormBorderStyle.None;
                        this.ShowInTaskbar = false;
                        this.Load += new EventHandler(Form1_Load);
    
    private void Form1_Load(object sender, EventArgs e)
            {
                this.Size = new Size(0, 0);
            }

    Jetzt soll das auch bei Fehlern so bleiben, das Programm schreibt bei Fehlern in eine Text-Datei und pausiert dann für 10 Minuten bevor es erneut den Code in einer Schleife ausführt. Allerdings hab ich nun das Problem das anscheinend bei Thread.Sleep() das Programm in der Taskleiste mit buntem Symbol auftaucht. Man kann es nicht anklicken, es erscheint natürlich kein Fenster aber für den Benutzer ist es natürlich irritierend. Der Code zum Fehler abfangen sieht so aus:

    while ()
                {
                    try
                    {
                    }
    
                    catch (Exception ex)
                    {
                        sw = new StreamWriter(tmpPath + "TicianClient.log", true);
                        sw.WriteLine(ex.Message + " " + DateTime.Now);
                        sw.Close();
                        Thread.Sleep(600000);
                    }
    			}

    Eine Idee warum das so ist und wie ich das vermeiden kann?

  14. Ich hätte vielleicht noch hiinzufügen sollen das unsere PCs auch für die private Nutzung zugelassen sind (solange es nicht ausartet) - aber das natürlich mit EInschränkungen.

    Das mit dem Löschen oder Verändern war mehr so mit dem Gedanken "Ich darf die Excel-Datei die Frau xyz erstellt und auf ihrem Desktop gespeichert hat nicht einfach löschen".

    Zitat

    Grundsätzlich gilt: "Alles ist verboten, was nicht per Gesetz ausdrücklich erlaubt ist." (Zum Thema persönliche Daten und BDSG)

    Genau das hatte ich auch noch im Kopf, das wurde uns gesagt :)

    Meine Frage hatte sich allerdings jetzt geklärt, es wurde als "kritischer Bereich" deklariert, also Gebot ist vorsichtig sein, aber ein Gesetz dazu gibt es nicht.

  15. ·

    Bearbeitet von Tician

    Also die praktische Erfahrung: Ich brauche Threading.

    Mein Timer (scheint nicht automatisch in einen neuen Thread geschoben zu werden) blockiert alle 10 sekunden meine GUI. Bzw es blockiert sie nicht, geklickte Check-Boxen oder ein Text der in eine Textbox geschrieben wird werden 'nachgeholt'.

    Aber ich schätze das kommt daher das ich einen Ping auf bestimmte Rechner absetze mit dem Timer und sich je nach Ergebnis das DataGridView in der GUI verändert. Und dann scheint eben nicht nur das DataGridView sondern die gesamte GUI mal für 2 Sekunden zu hängen, was dann doch etwas nervig ist.

    Bringt mir dann Threading überhaupt etwas? Der Timer steht ja im Zusammenhang mit einem Element der GUI...

    Noch etwas:

    Wenn ich IN einem timer Thread.Sleep(x) benutze wird dann allgemein der Timer pausiert sodass ich x Sekunden Ruhe habe oder fängt der Timer-Durchlauf nach seinem eigenem Interval mit einem neuen Durchlauf an?

  16. Veröffentlicht ·

    Bearbeitet von Tician

    Guten Morgen,

    wir hatten letztens eine 1-stündige Datenschutzschulung für unsere Abteilung die mein Ausbilder leider verpasst hat und weswegen ich jetzt noch Fragen zu einem Thema habe.

    Und zwar wurde mir gesagt das das Löschen von Daten logischerweise verboten ist, aber auch das sämtliche Software-Änderungen dem Benutzer des jeweiligen Rechners mitzuteilen sind.

    Das giibt mir jetzt zu denken weil über die Gruppenrichtlinien machen wir hin und wieder Änderungen und die Beste Zeit um Software zu installieren oder zu verändern ist natürlich wenn der Benutzer nicht da ist. Gibt es dazu einen Ausschnitt aus einem Gesetzbuch? Wie sieht es mit PC-Tausch aus? Wir haben sämtliche PCs letztes Jahr auf Windows 7 umgestellt und es gab eine Mitarbeiterin die sich wehement geweigert hat ihren XP-Rechner tauschen zu lassen also haben wir das an einem Wochenende gemacht, aber das Geschrei hinterher war jenseits von gut und böse. Wie handhabt ihr das? Welche Regeln sind Betriebs-spezifisch, welche gelten für Datenschutz allgemein?

  17. Veröffentlicht

    Moinsen,

    ich kam heute durch eine Anforderung auf eine seltsame Frage die vielleicht jemand beantworten kann:

    Wenn ich ein Programm mit GUI habe, das einen Timer im Hintergrund hat der natürlich läuft und alle paar Sekunden eine Aktion ausführt, aber gleichzeitig Buttons habe die bei einem Klick ebenfalls Dinge ausführen brauche ich ja anscheinend kein Multi-Threading. Woher weiß ich denn wann ich Multi-Threading brauche und wann nicht? Was passiert denn genau wenn mein Code in einer Timer-Schleife ist und ich aber einen Button klicke der ein Ereignis auslöst? Wird das ancheinander verarbeitet? Gleichzeitig?

     

    Grüße

    Tician

  18. Um die Antwort auf den Punkt zu bringen: Man nehme mich als schlechtes Beispiel^^

    Ich bin kein AE, aber mir macht Programmieren rießig Spaß, zum optimieren/automatisieren von Prozessen reicht es, aber ich kann nur das machen was mir in der Schule beigebracht worden ist und jeder der meinen Code sieht kriegt Haarausfall.

    Ja, von 0 auf programmieren geht, aber ohne Anleitung (oder einem richtig guten Buch) wird es Spaghetti-Code bleiben.

  19. Veröffentlicht

    Hi Leute,

    Ich bin ja noch Azubi, wir haben unseren ersten Windows-Server aufgesetzt, Domäne erstellt und Benutzer angelegt und unser Lehrer hat nach einer Frage eine Stunde lang versucht uns zu erklären was der unterschied zwischen AD und Domänencontroller ist. Mein Ausbilder hat es versucht. Google hat es versucht - aber ich verstehe es nicht.

    Was ist denn der Unterschied? Ich verbinde beides mit einem Server mit dem man die Benutzer und Domänenstruktur verwalten kann. Ich hoffe da jetzt nicht eine Diskussion vom Zaun zu brechen, aber vielleicht hat ja jemand eine einfach zu verstehende Erklärung?

  20. ·

    Bearbeitet von Tician

    Könnte man mir bitte einen Link geben in dem steht das der Informatiker ein (teils) kaufmännischer Beruf ist (und nicht nur kaufmännische Wurzeln hat)? Ich zähle den direkten Informatikkaufmann mal nicht dazu. Ist reine Neugierde, wenn man das Fach BWL von Anfang an nicht nur auswendig lernt sondern versucht zu verstehen macht es auch Sinn und sogar Spaß :) Aber zugegeben, es hängt auch viel vom Lehrer ab.

  21. Fun-fact: Ich habe gar keine geschrieben. Ich wurde vom Arbeitsamt in eine Maßnahme geschickt, die junge Leute in die Bereiche Gastronomie, Altenpflege, Metall,... vermittelten.

    Ich war tot-unglücklich dort weil keiner der Bereiche auch nur annähernd für mich infdrage kam und eine der Betreuerinnen hat sich mal an nem Abend hingesetzt und ein paar Betriebe durch-telefoniert, weil ich darauf bestanden habe nirgendwo anders hiinzuwollen als in Richtung IT.

    Am nächsten Tag hatte ich ein Vorstellungsgespräch mit anschließendem Praktikum und bin im besten Betrieb der Welt gelandet \o/

    Ich musste nur meinen Lebenslauf noch nachreichen und das war es :D

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.