Je nachdem... in der Produktion kostet das Teil wahrscheinlich ~40€. Um die Produktionskosten zu decken, werden Zuschlagssätze kalkuliert, die den Preis fast verdoppeln. D. h. die FritzBox könnte jetzt etwa 80€ kosten und dem Produzenten keinen Gewinn einbringen. Also werden für den Verkauf weitere 70% - 80% aufgeschlagen, damit ein beabsichtigter Gewinn erzielt werden kann.

Das wiederum bedeutet, die FritzBox kostet im B2B etwa 120€ - 140€ - netto.

...zur Antwort

Es kann auch sein, dass auf dem Stick gar keine Daten vorhanden sind. Vllt ist es ein Bad-USB und du hast dir etwas auf den PC geladen, was nicht hingehört.

...zur Antwort

Social Engineering macht's möglich :)

...zur Antwort

https://www.ifap.de/_Resources/Persistent/d31f8f4b10f21764a30b9cd8430add8f7dddcb4c/Geschaeftsbedingungen_sytemDATEN_Version_A.pdf

...zur Antwort

Kaufvertrag = zwei inhaltlich übereinstimmende Willenserklärungen

Wenn du deine WE nicht abgibst, dann ist kein KV entstanden.

...zur Antwort
Python .txt Datenbearbeitung?

Hallo an alle,

Es geht um folgendes.
Ich habe zwei .txt Dateien mit folgenden Inhalten:

Datei1:
Schlüssel: Y&XXXXXXXXXX,

Werte: Y:10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX, Y:10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX, Y:10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX, Y:10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX, Y:10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX

Datei2:

Schlüssel: User 1

Werte: Y&XXXXXXXX, Y&10_XXXXXXXX, Y:XXXXXXX, Y:XXXXXXXX, Y:XXXXX, Y:XX_XXXXX, Y:XX_XXXXXXXX, YH:XX_XXXXXXXXX, YH:XX_XXXXXXXXX

In beiden Dateien ist natürlich mehr Inhalt drin. Also bei beiden mehr als 1000 Zeilen.

In Datei2 stehen ganz viele User und deren Namen ist der Schlüssel. Diese User haben bestimmte Berechtigungen als Rollen. Jede Rolle wird als Wert (durch Komma getrennt) dargestellt in dieser Ansicht wie gezeigt.

Zwischen allen Schlüsseln/Werten ist jeweils eine Zeile frei.

Wichtig ist nur das die Werte hinter dem Komme zu dem Schlüssel darüber gehören.

Die Rollen sind immer so aufgebaut das sie mit einem X oder einem Y oder ganz selten auch mit einem YH: anfangen, was nach dem Doppelpunkt kommt, gibt nur an um was für Berechtigungen es sich handelt, das habe ich durch die vielen X dargestellt.

Die Rollen die ein & und kein : haben sind Sammelrollen die viele Einzelrollen (das sind die mit :) zusammenfassen. Hat ein User also eine Rolle mit einem & dann hat er alle Berechtigungen, die in dieser Sammelrolle enthalten sind.

Allerdings haben viel User Einzelrollen, die sie aber eigentlich schon durch eine Sammelrolle erhalten haben.

Um das zu bereinigen wollte ich ein Python Programm schreiben welches die Datei2 für jeden User (Schlüssel) durchgeht, sie dich rollen mit dem :, also die Einzelrollen nimmt, in Datei1 schaut, ob diese Einzelrolle in einer Sammelrolle enthalten ist, die ebenfalls dem User zugewiesen ist, was bedeuten würde er hätte zweimal diese Rolle.
Wenn das der Fall ist dann soll in einer neuen Datei (Erstmal egal ob csv oder txt, lieber aber direkt eine CSV Datei) eine neue User liste sein in der eben alle Einzelrollen entfernt wurden die der User halt schon durch eine Sammelrolle erhält.

Ich habe mich mehrere Stunden damit beschäftigt und auch versucht mit KI mir helfen zu lassen aber es funktioniert nicht. Entweder werden falsche Sachen geändert, erkannt oder gesucht oder es funktioniert gar nicht.

Aber eigentlich stell ich mir das gar nicht so unfassbar komplex vor.

Im Screenshot ist ein Beispiel zu sehen wie die txt Dateien aussehen.
Beide sind genauso aufgebaut nur das bei der einen halt der Schlüssel ein Name ist und bei der anderen ist der Schlüssel der Name der Sammelrolle, bei der einen ist der Wert alle Berechtigungen (Sammel und Einzelrollen) eines Users und bei der anderen sind der alle Einzelrollen aufgelistet, die die Sammelrolle enthält.

Und beide enthalten natürlich weitaus mehr Inhalte als nur das eine wie in dem Beispiel auf dem Bild zu sehen ist.

Vielleicht ist hier ja jemand der mir hier eine Lösung vorschlagen kann.
Danke VG

...zur Frage

Nach dem Sinn, Benutzernamen und Passwörter in einer Textdatei abzulegen, frage ich nicht. Aber wäre an dieser Stelle nicht wenigstens eine sqlite-Datenbank angebracht? Klein, sicher und mit ein paar SQL-Statements ist der Käse besser als in der Schweiz.

...zur Antwort

Na, wie ist es gelaufen? Such dir eine Note aus dem Array raus.

int[] noteInInformatik = { 1, 2, 3, 4 };

...zur Antwort

Instinktiv würde ich 1:1 nehmen, was aber nicht sein kann. Denn du musst überlegen, wie du die Arbeitszeit dem Mitarbeiter in einer RDB zuordnen kannst.

Ich weiß nicht, ob ihr starke und schwache Entitäten behandelt habt. Aber die Arbeitszeit würde ich als n-Beziehung darstellen und den PK des MA auf die n-Seite ziehen. So hast du einen ordentlichen FK in der Arbeitszeit und kannst diese jedem MA zuordnen. Nennt sich auch referenzielle Integrität.

Zudem hat ein MA mehrere Arbeitszeiten, nicht nur eine. Dein Modell würde also nur einen Eintrag pro MA erlauben.

...zur Antwort

Was du da versuchst zu laden, wissen wir nicht. tkinter wird mit Python als Standard-Lib mitgeliefert. Daher kann es nicht an der Installation von tkinter liegen.

...zur Antwort

Nein, du musst den Schlüssel zurückgeben. Die Kaution darf er nicht einfach so einbehalten - dafür muss er eine Begründung liefern, falls Schäden ausgebessert sein müssen.

Grundsätzlich sind der Mietvertrag und das BGB deine engsten Freunde.

...zur Antwort
Nicht strafbar

Rein rechtlich habt ihr einen Kaufvertrag geschlossen. Er könnte dich natürlich verklagen und einen Schadenersatz einfordern. KÖNNTE, heißt nicht, dass er es machen wird. Ich bezweifle, dass da was kommt.

Nichterfüllung eines Vertrages ist keine Straftat, denn dies ist nicht im StGB gelistet und wird ebenso nicht über das Strafrecht geregelt.

...zur Antwort
php-Zugriff auf mysql funktioniert nicht?

Ich habe folgende Funktion in PHP geschrieben:

function getName($id) {
                global $conn;
                $sql = "SELECT Vorname, Nachname FROM mitglieder WHERE ID = `$id`";
                $result = $conn->query($sql);
                if ($result->num_rows > 0) {
                    $row = $result->fetch_assoc();
                    return $row['Vorname'] . " " . $row['Nachname'];
                } else {
                    return "";
                }
            }

Aber aus irgendeinem Grund kommt immer folgende Fehlermeldung:

Warning: Attempt to read property "num_rows" on bool in C:\xampp\htdocs\***********.php on line 35

Diese Variable $conn funktioniert aber an anderer Stelle im globalen Code außerhalb dieser Funktion einwandfrei wie gewünscht und ich sehe vom Code her keinen nennenswerten Unterschied.

Was ich bereits versucht habe:

  • $conn als Parameter an die Funktion zu übergeben
  • $conn in der Funktion selber zu definieren
  • $conn in der Funktion selber definieren und dass $conn im globalen Code entfernen
  • ChatGPT nach dem Fehler fragen
  • Folgende Fehlerabfrage einzubauen (dabei war $conn auch in der Funktion selber und NUR in der Funktion selber definiert):
if ($conn->connect_error) {
                die("Serverfehler: " . $conn->connect_error);
            }

Das führte aber nur zu folgender Fehlermeldung:

Warning: Attempt to read property "connect_error" on null in C:\xampp\htdocs\*********.php on line 26

Hat alles nichts geholfen. Wisst ihr wo der Fehler liegt?

...zur Frage

Der Code von HANSPAUL... funktioniert, weil die prepare- und execute-Anweisungen vorhanden sind und mysqli richtig benutzt wird. Welcher Grund liegt für $global conn; vor?

...zur Antwort

Weil es ein eindimensionaler Array ist.

Position = Index + 1

Array[3] stellt demnach die 4. Stelle im Array dar. Und da du nur eine Schublade hast, gibt es hier nicht viel mehr.

Anders verhält es sich bei zwei(mehr-)dimensionalen Arrays.

String[][] zeug = {

{ "1", "2", "3"},

{ "4" ,"5", "6" }

};

Hier hast du nun deine zwei Schubladen.

zeug[0][1] ergibt "2"

zeug[1][2] ergibt "6"

...zur Antwort