Problem mit eNumber

  • Ich möchte die aus einem config-file ausgelesene IP-Adresse in eine eNumber schreiben lassen

    nur irgendwie geht das nicht richtig - er füllt die Felder immer mit 0.0.0.1 aus? :confused_face:

    ------------------------------------------------------
    DM800 HD (newnigma2/ooZooN)
    DM7025 160GB HDD | 256MB CF (newnigma2)
    DBox2 Nokia 2xI | Multicam (Newmake-CVS-Image)
    Maximum T85 mit 5 LNB (9,0°|13,0°|19,2°|23,5°|28,2°Ost)
    XBox360 20GB HDD (iXtreme 1.6)
    XBox 80GB (evoX/XBMC)
    FritzBox 7141 230GB HDD | 256MB USB (freetz-1.3)
    XDA Diamond (WM6.5)

  • Code
    num_boxip->setNumber(eString().sprintf("%d.%d.%d.%d", tmp1, tmp2, tmp3, tmp4));


    sollte klappen, du willst ja den Inhalt, nicht die Speicheradresse (Pointer), daher hier ohne "&" ... dem sscanf dagegen übergibts du die Speicheradresse der variable, wo reingeschrieben werden soll. Deshalb bei sscanf auch das & vor der Variable.

    Einmal editiert, zuletzt von Seddi ()

    • Offizieller Beitrag

    Hi,


    hmm eNumber::setNumber da gibts zwei Methoden... (siehe auch sourcen /include/lib/gui/enumber.h)


    Einmal


    void eNumber::setNumber(int f, int n);


    und


    void eNumber::setNumber(int n);



    Also erstere will als parameter die field number .. du hast 4 fields.. also 0 bis 3 .. und jeden Wert einzeln.


    Die zweite will eine Zahl.. die dann auf alle fields verteilt wird... auch das wird dir nichts bringen.


    Naja und Du übergibts da einen std::string.. wundert mich, dass das überhaupt kompiliert. Also der Compiler sollte da definitv meckern :winking_face:


    Also die wohl beste funktionierende Lösung wäre also nun die Zeile

    Code
    num_boxip->setNumber(eString().sprintf("%d.%d.%d.%d", tmp1, tmp2, tmp3, tmp4));

    durch

    Code
    num_boxip->setNumber(0, tmp1);
    num_boxip->setNumber(1, tmp2);
    num_boxip->setNumber(2, tmp3);
    num_boxip->setNumber(3, tmp4);


    zu ersetzen.


    cu

    Einmal editiert, zuletzt von Ghost ()

  • Zitat

    Original von Ghost
    Also erstere will als parameter die field number .. du hast 4 fields.. also 0 bis 3 .. und jeden Wert einzeln.


    Das ist die Lösung :] Hatte mir die eNumber.h zwar auch angeschaut aber bin da irgendwie nicht draus schlau geworden


    Und nein - der Compiler hat nicht gemeckert :winking_face:


    Wieder was gelernt - Danke Euch beiden!!

    ------------------------------------------------------
    DM800 HD (newnigma2/ooZooN)
    DM7025 160GB HDD | 256MB CF (newnigma2)
    DBox2 Nokia 2xI | Multicam (Newmake-CVS-Image)
    Maximum T85 mit 5 LNB (9,0°|13,0°|19,2°|23,5°|28,2°Ost)
    XBox360 20GB HDD (iXtreme 1.6)
    XBox 80GB (evoX/XBMC)
    FritzBox 7141 230GB HDD | 256MB USB (freetz-1.3)
    XDA Diamond (WM6.5)