Beiträge von sutupud

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.

    Sollte man dann allerdings totzdem in Lieferverzug kommen, entbindet einen das aber natürlich nicht von obig erwähnten Klauseln, oder?

    Natürlich nicht, für den Subvertrag kann man aber auch wieder Klauseln für den Lieferverzug vereinbaren. Denn wenn der Sub-Auftragsnehmer bei Lieferverzug nichts zu befürchten hat, wird ihm deine Deadline ziemlich egal sein. Nur falls du im letzten Moment jemanden brauchst, der dir ein Werk fertig stellen hilft weil die Deadline schon fast da ist, wird du probleme haben jemanden zu finden, der dir so einen Vertrag unterschreibt.
    Zudem muss man aufpassen, ob im ursprünglichen Vertrag das Weitergeben nicht explizit geregelt ist. Kann sein dass der Auftraggeben verhindern will, dass der Auftrag billig nach Indien outsourced wird... Oder es gibt Sicherheitsbedenken...
    In vielen Fällen ist's dem Auftraggeber aber egal, hauptsache die Qualität stimmt - und wie das beurteilt wird sollte auch im Vertrag stehen.

    ih will nur manchen output im cron-fall nicht

    fehlermeldungen will ich schon damit diese vom cron per mail trotzdem weitergehen

    in diesem fall könntest du auch z.b. alles was du haben willst (fehlermeldungen) auf stderr ausgeben, den rest auf stdout.
    wenn du dann im crontab stdout nach /dev/null umbiegst, kriegst du nur noch den stderr per mail (cron sammelt beides).
    dazu ist schließlich die trennung in stdout+stderr da...

    muss ich vor den ausdruck noch das wort grep setzen?

    wenn du in der command line arbeitest, schon... es gibt viele verschiedene engines für regex, bekannt ist z.b. die integration in perl, aber auch in javascript - was viel verwendet wird...
    in javascript könntest du z.b. sowas machen:

    Code
    rx=/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
    /* 
        ist das selbe wie rx=RegExp("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$", "i");
        das "i" steht für ignorecase --> mailadressen sind case-insensitive
    */
    
    
    if (rx.test("validmail@example.com")) {
       alert("it's valid!");
    }


    oder in python:

    PHP
    import re
    if re.match("^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$", "validmail@example.com", re.I):
        print "it's valid"

    oder eben für grep:

    Code
    $ echo "validmail@example.org" | grep -Ei "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"
    [COLOR='#FF8C00']validmail@example.org[/COLOR]


    --> gibt als output jede übereinstimmende zeile aus.

    ohne das ^ bzw. $ am anfang und ende würde es reichen, wenn das pattern irgendwo im text vorkommt (ist übrigens bei der langen version von oben so)

    edit: gute referenz für javascript: http://de.selfhtml.org/javascript/objekte/regexp.htm

    software von negative-scannern macht das normalerweise automatisch. das problem bei der ganzen sache ist, dass die genauen farbeinstellungen von der art des films abhängig sind.
    aber wenn man z.b. in gimp das bild invertiert und dann ein bischen mit den farbkurven spielt, dann kann man schon etwas hinbekommen kann was einigermaßen nach was aussieht:

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    die einstellungen + gimp curves tool settings

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    ein wesentliches problem bleibt halt die auflösung beim scannen des negativs...

    wofür ist denn die aufgabe? ich behaupte einfach mal, dass derjenige, der sie erstellt hat, sich nicht bewusst war dass sie so wenig sinn macht.
    wie gesagt, das was eine gültige email-adresse ist, ist im RFC genau beschrieben, und ist viel komplexer als das, was man täglich an adressen so sieht.
    welche der folgenden adressen sind z.b. gültig:

    a) jack.o'neill@stargate.com
    b) "foo@bar!baz#blah..."@example.com
    c) xx...yy@aaa.bbb
    d) asdf.@qwertz.jkl

    Lösung:

    Spoiler anzeigen


    a) apostroph ist gültig
    b) in einem quoted string ist fast alles erlabut, auch mehr als ein @, gültig
    c) geht so nicht, mehrere punkte hintereinander
    d) punkt vor dem @, nicht erlaubt

    wenn man es sich einfach machen will überprüft man einfach, ob die adresse ein @ enthält, vielleicht noch ob davor und dahinter noch etwas anderes steht.
    dann lässt man sicher alle gültigen mailadressen duch - halt auch viele ungültige.
    oder man macht eine einschränkung, z.b. wie auch unter dem link beschrieben:

    Code
    ^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$


    erkennt zwar viele ungültige mailadressen (aber nicht alle), eliminiert aber auch viele gültige. die beispiele oben werden z.b. genau verkehrt ausgewertet: a und b werden abgelehnt, während c und d durchgehen.

    ich würde einfach nachfragen, welchen kompromiss man hier eingehen soll.

    dazu muss man zuerst mal wissen, was eine "gültige emailadresse" ist. genau steht das in rfc 5322.
    wenn man sich das genaure anschaut wird man sehen, dass es keinen einfachen regulären ausdruck gibt, eine mailadresse zu überprüfen.
    das beste was ich gefunden habe ist das:

    Code
    (?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])


    quelle: http://www.regular-expressions.info/email.html
    es gibt noch weitere möglichkeiten (google sollte hier helfen)...
    generell gilt bei solchen validierungen: lieber etwas ungültiges zulassen als etwas gültiges ausschließen...

    Hallo zusammen,
    vielleicht kann mir jemand bei einer Aufgabe zu Selectionsort weiterhelfen da ich grad nicht weiterkomme?!

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    :confused:

    was genau ist bitte deine frage?

    Koffer 4 kann's nicht sein, sonst wären hinweis #1 und #5 beide richtig - es ist aber nur ein hinweis richtig.
    Wenn koffer 4 leer ist, darf koffer 3 nicht leer sein, sonst wären #3 und #4 beide richtig.
    also ist der gewinn in koffer 3, hinweis #2 ist richtig.

    zumindest bei früheren windows-versionen ging das immer in der registry, eigentlich sollte das noch immer so funktionieren.
    wenn du z.b. den eintrag von .txt dateien ändern möchtest, suchst du unter "HKEY_CLASSES_ROOT" nach ".txt", unter dem schlüssel "Standard" steht dann z.b. "txtfile".
    Also weiter zu "HKEY_CLASSES_ROOT/txtfile", dort findest du unter "shell" die einzelnen commands. wenn du bei open so was wie "java -jar C:\path\prog.jar %1" eingibst, sollte es eigentlich klappen.
    diese einstellungen gelten dann für alle user, nur für den aktuellen benutzer sind ähnliche einstellungen unter HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts bzw. HKEY_CURRENT_USER\Software\Classes\Applications zu finden... am besten selbst probieren

    Berechtigte Frage.

    Die Implementierung ist so nicht ganz sicher: Der Vertrag von hashCode() sieht in keiner Weise vor, dass zurückgegebene Werte eine Ordnung haben müssen (siehe API).

    Auch wenn man selbst Autor der verglichenen Klasse und des Comparator ist, und selbst weiß, dass hashCode() so implementiert ist, dass die ID geordnet ist, sollte man potentielle Leser nicht damit verwirren, das man so "um die Ecke" programmiert.



    ich wollte einfach nur schnell ein beispiel angeben bei deim irgendwas nach irgendwas sortiert wird, ich hätte auch strings oder integers oder was auch immer nehmen können... außerdem wollte ich was nehmen was nicht schon comparable ist.

    Oki konnte das jetzt auch selber lösen:
    if(o1.weight - o2.weight == 0)
    return o1.weight;

    Danke nochmal für den Tipp mit dem TreeSet - funzt jetzt einwandfrei!!!



    die einträge sind dir weg gefallen, weil wenn compare 0 zurück liefert werden die elemente als gleich angesehen, und ein set kann nun mal keine gleichen werte enthalten.
    wie du's oben machst sagst du dass o1 in jeden fall größer ist alls o2 (angenommen weight > 0)...
    besser wärs sich zu überlegen, welches element wirklich als größer gesehen werden kann, eventuell spielen die anderen parameter ja auch eine rolle. dann hättest du nämlich eine stabile sortierreihenfolge, so ist die position von 'gleichen' elementen mehr oder weniger zufällig.

    Am besten dafür geeignet ist ein TreeSet. zB:


    die objekte landen beim einfügen immer gleich an der richtigen position. einface ts.addAll(otherSet) --> fertig
    wenn deine 'Klasse' comparable implementiert kannst du dir den Comparator sparen.