Beiträge von amok

    Zitat von Devask

    Hi!
    Im Oktober fang ich an Informatik zu studieren. Dafür werd ich mir auf jeden Fall einen Laptop zulegen.
    Gibt es dafür (von der TU) für Studenten spezielle Angebote, oder soll ich mich eher selbst nach einem Laptop umsehen?

    preise vergleichen und selber umsehen hilft immer. weiss ja sonst keiner was du wirklich willst oder brauchst.

    die firma abv hat fuer ibm notebooks spezielle studentenangebote.
    http://www.studentline.at/

    Zitat von bimbo


    jetzt denk ich mir es kann doch kein problem sein, die php-skript ausgabe in eine (BASH)variable zu schreiben und im cronjob zu prüfen ob etwas drinnen steht. wenn das der fall ist, dann soll eine mail mit ebendiesem inhalt versendet werden.

    nein, ist kein poblem

    VARIABLE = `deinphpscrip`

    ueberpruefen ob die variable gefuellt ist und fertig. umgebungsvariablen haben aber auch limits.

    die schoener variante waere:

    mittels mktemp ein temporaeres file anlegen (man mktemp)

    TMPFILE = `mktemp ...`

    die ausgabe deines phpscripts in diese datei umleiten

    pruefen ob was in der datei steht

    mittels mail (man mail) verschicken

    temporaeres file loeschen

    den rest musst du selber machen da ich nie mit der bash gearbeitet habe, bin noch ein tcsh user und sehe auch keinen grund zum umstieg (oder darueber zu diskutieren)

    lg
    zhan

    Zitat von chiefhoerbi

    (Person vom Typ: "He du hast doch mal Informatik studiert, i hab da folgendes Problem....")

    naja, du verhaeltst dich ja auch so. die einfachste moeglichkeit ist wohl beim provider anzurufen, ihn zu bitten ein verzeichnis mit .htaccess passwortschutz anzulegen da ihr sensible daten habt die nicht jeder einsehen soll.

    zum thema sensibilitaet der daten:

    natuerlich kann man mit dienstplaenen sehr viel schindluder treiben. man immerhin feststellen wann bestimmte personen wo sind und ihnen das leben schwer machen. kenn da zb einen fall bei einer sameriterbund station in feldkirch.

    lg
    amok

    Zitat von moaxl

    thx amok
    mit dem hätt ich's eh versucht, komm aber leider nicht weiter
    und ist leider nicht beschrieben, was das für ein fehler sein könnt
    (wahrscheinlich ist's eh nur irgendein kleiner irrtum, ich komm nur nicht drauf...)

    hast du python installiert? der fehlermeldung nach fehlt spawn im pfad?

    lg
    amok

    Zitat von julla

    hallo,
    also im moment habe ich das zustande gebracht, aber ich weiss nciht ob das richtig ist:
    % simple.bbl \begin{Buch}{25} @ Publikation \Autor ={ schiller } \Titel ={ der zauberlehrling } \Verlag ={ reclam } \Ort ={ friedelshexenburg } \Seiten ={ 1-89 } \ISBN ={ ISBN 321548-3469, } \Jahr ={ 2002 } \end{Buch}

    http://de.wikipedia.org/wiki/Bibtex

    Zitat von julla


    und was ist eigentlich: % simple.bbl? was hat das denn für eine bedeutung!?

    das ist eine latex kommentarzeile

    Zitat von julla


    mal angenommen das was ich geschrieben hab ist richtig...wie formatiere ich es dann also da müssen noch komas und absätzte rein!? weil im moment steht das alles einfach nur hintereinander....



    frag doch bitte erst deinen auftraggeber was er denn haben will. der vorteil von latex
    ist gerade dass der source vom style unabhaengig ist.

    lg
    amok

    Zitat von letommy


    // so in etwa sollte es doch gehen, leider sagt mir
    //der compiler das, dass objekt von typ object ist
    //und nicht vom typ sensorobject, kann man das
    // irgendwie umwandeln, oder was mach ich falsch?

    da hat der compiler ja auch recht. wenn du in der javadoc nachschaust wirst du
    sehen dass der returntype der get() methode des List interfaces Object ist.

    public Object get(int index)

    du musst das objekt, das du zurueck bekommst also auf den richtigen typ casten.

    ((Sensorobject)a.get(0)).getName();

    fehler- und exceptionbehandlung ueberlasse ich dir.

    lg
    amok

    Zitat von mindless
    Code
    field &operator+(field &a)
    {
    ... addition
    return (this);
    }


    oder werden die Felder trotzdem nur per Referenz übergeben?

    1. this ist in diesem zusammenhang ein pointer auf ein objekt vom typ field. der return type deiner funktion ist aber field& ... du moechtest also return *this; verwenden.

    2. veraendert deine neue implementation den operanden auf der linken seite. das willst du nicht :) c = a + b; // veraendert c und a

    3. liegt dein problem nicht in der addition sondern im memory management des objekts, und du kommst nicht daran vorbei, das zu loesen ohne dass du dir 100e neue probleme schaffst.

    du kannst also durchaus den operator+ ueberladen. aber du musst auch sicherstellen,
    dass die internen datenstrukturen richtig verwaltet werden.

    dazu hast du natuerlich mehrere moeglichkeiten. eine davon hat hal schon gepostet
    (siehe copy constructor und operator= beispiele von hal). natuerlich koenntest du auch andere loesungen verwenden (copy on write, reference counting ...)

    Zitat


    2) Habe wo gelesen, daß die Methoden einer Klasse in externe cpp-Dateien gehören und nur die Header in die h-Datei. Muß das sein (finde es nämlich ein bisserl komisch für eine Klasse 12 Dateien zu erstellen) oder ist es eigentlich wurscht?

    kommt darauf an was du machen willst. wenn du die member function innerhalb der
    klasse definierst ist sie implizit inline.

    wenn sie ausserhalb der klasse definiert ist musst du aufpassen, dass sie nicht
    doppelt definiert wird (dadurch, dass das include file oefters verwendet wird).

    um das verhalten zu erreichen, das du offensichtlich beabsichtigst sollten member functions in eigenen dateien definiert sein und die declaration der classe in einem include file.

    Zitat von hal


    irgendwer verändert noch den content -- ein Hoch auf deine OOP-Künste! ;)

    ja, allerdings sehr versteckt. durch die parameteruebergabe per copy gibts 2 pointer die auf den selben memoryblock zeigen. das eine objekt wird beim verlassen der funktion (in diesem fall operator+) destructed.

    ist ein c++ idiom und hat nix mit fehlenden objektorientierungskenntnissen zu tun.
    ein typischer anfaengerfehler.

    lg
    amok

    Zitat von mindless


    Mit unsigned char kann ich die Klasse (siehe Source) compilieren (Bloodshed Dev-C++), das Programm stürzt aber ab. Nehme ich die Ausgaberoutine heraus, so stürzt es nicht mehr ab.

    Daher die nächste Frage: Was mache ich bei der Verwendung von unsigned char falsch ?? (mit unsigned int statt unsigned char gibt es dieses Problem nicht). Desweiteren stürzt es auch ab, wenn ich einfach Zuweisungen verwende, d.h. wenn ich

    tja, ich schaetze mal dein programm macht eine ganze menge unbeabsichtigter sachen.

    erst mal das wichtigste:

    1. es fehlt das return statement

    2. dein gravierendstes problem liegt hier:

    field operator+(field a)

    c++ uebergibt werte per copy ... das heisst das objekt wird fuer die uebergabe als
    parameter a kopiert ... nachdem der parameter a out of scope faellt (beim ende der funktion) wird dieses kopierte objekt destructed ... du deletest also den speicherblock
    auf den unsigned char *content zeigt.

    du greifst aber spaeter noch auf diesen speicheblock zu, weil deine objekte sich den speicherbereich (parameter a ist ja nur eine kopie von objekt b und c ist nur eine kopie des temporaeren namenlosen objekts das du in operator+ zurueckgibst) teilen (weil du keine implementierung des operator= bzw des copyconstructors bereitgestellt hast) -> undefined behaviour

    3. main hat den return type int nicht void

    4. du solltest die c++ standard header verwenden ... also

    #include <cstdio>

    #include <iostream>

    #include <cstdlib>

    dann natuerlich mit namespace std

    5. den default constructor solltest du nicht so stehen lassen.
    entweder verbieten oder eine sinnvolle implementation bereitstellen.

    zusammenfassend:
    copy constuctor hinzufuegen
    operator= hinzufuegen
    operator+ ueberarbeiten

    lg
    zhan

    Zitat von markus


    ANN.dll existiert, ich habe auch den pfad in der linker registerkarte eingetragen (anm: benutzte VC6). ich kann mir jetzt nicht mehr erklären, wo das problem liegen könnte. ansich müsste ANN.dll ja gefunden werden, oder?

    die ausfuehrung des programmes hat nichts mit dem build des programmes zu tun. dh nur weil beim build des programmes die library gefunden wurde heisst das noch nicht, dass das beim ausfuehren auch passiert.

    kopier die dll in ein verzeichnis in dem windows nach dlls sucht oder in das verzeichnis in dem auch dein executable liegt. dann sollts klappen.

    Zitat von Lord Binary

    -'0' wandelt den ASCII Code von Ziffernzeichen in Zahlen 0-9 um.

    es ergibt _immer_ den wert der ziffer solange das character, von dem '0' abgezogen wird, '0'...'9' ist. dies gilt _nicht nur_ fuer den ascii zeichensatz
    (siehe ISO/IEC 9899:1999 5.2.1 (3))

    Zitat von fips

    Doch was hat das mit dem - '0' auf sich.

    das ist ganz einfach. der c standard garantiert, dass die interne representation
    der zeichen 0 - 9 aufeinanderfolgend ist. dh: '9' - '0' ist 9, '5' - '0' ist 5 ...

    fuer ein system das ascii als zeichenrepresentation verwendet wuerde das so
    ausschaun:

    57 (ascii wert von '9') - 48 (ascii wert von '0') = 9 (also die numerische representation des zeichens 9)

    wuerde man die numerischen werte verwenden so waere der code nicht portabel, weil
    verschiedenen systemen unterschiedliche zeichensaetze verwenden (ascii, EBCDIC,
    utf-8, ...)

    Zitat von Chrise

    Hallo!
    Das MS Visual c++ ist mir schon öfters untergekommen, hab aber zum gratis download nur son MSV c++ toolkit gefunden, dass es nur für win 2000 und xp gibt.

    eine studentenversion von visual studio von microsoft gibts im lehrmittelzentrum
    der tu wien um 18 euro.

    weiters kannst du natuerlich auch die gnu tools oder das lcc-win compilersystem verwenden.

    lg
    amok

    ps: versuch doch einfach mal dem problem beim linken mit den SDL libs auf die spur
    zu kommen.

    Zitat von Paladin_FRW


    Punkt 1: Wie kann ich (syntaktisch) in C++ einen Socket eröffnen, der mit einem DHCP Server kommunizieren kann?

    gar nicht. c++ kennt kein konzept namens socket. das ist systemabhaengig.

    du hast hier mehrere moeglichkeiten unter linux.

    1. verwenden der posix systemcalls (man socket(2), accept(2), bind(2), connect(2), ...)
    2. verwenden einer c++ klassenbibliothek fuer netzwerkkommunikation (sock++, ACE, ...)

    wie der konkrete code ausschaut haengt natuerlich davon ab wie du dich entscheidest.

    Zitat von Paladin_FRW


    Punkt 2: Welche Parameter (mir fällt kein besseres wort ein, es ist ja auch noch früh) hat der Socket, welche braucht der DHCP Server und wie kann ich dem (wiederum: es geht mir nur um die Syntax, die RFC's mit den erläuterten Optionen habe ich schon entdeckt) eigene Optionen schicken?

    tja, ebenfalls abhaengig. generell laeuft die sache am client so ab:

    du schickst deine anfrage ueber einen udp datagram socket an port 67 der broadcast addresse deines netzwerks.

    du bindest einen udp datagram socket auf port 68 und wartest auf die antwort.

    Zitat von Paladin_FRW


    Ich kenn mich zwar mit DHCP nicht ganz so gut aus, aber ich denke, dass das wahrscheinlich mit RAW sockets gehen sollte.

    nein. empfangene udp oder tcp pakete werden nie an raw sockets uebergeben.
    falls du raw sockets mit dem linux SOCK_PACKET interface verwechselst so wuerdest du mit kanonen auf spatzen schiessen weil du damit auf den data link layer zugreifst.
    etwas low level fuer so eine applikation.

    ein bisschen beispielcode fuer die socket api hab ich dir hier zusammen kopiert (das ist nur ein schnell zusammengestueckeltes snippet aus ein paar sourcen von mir und deshalb nicht vollstaendig und auch nicht compiliert :). darin wird ein udp socket erstellt und auf port 68 gebunden. nun koenntest du von diesem socket lesen.

    den c code in schoene c++ klassen zu giessen obliegt dir