kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Frage zu einer Kombinatorikaufgabe

    geschrieben von bandi999

    Hi,

    area-of-games schrieb:
    Es handelt sich hierbei vereinfacht um ein Urnenmodell. Die Dinge werden bei dieser Aufgabenstellung 1. nicht zurückgekegt und 2. wird die Reihenfolge nicht beachtet.
    wenn das tatsächlich die Aufgabe ist (was für mich nach dem Ausganspost nicht ganz klar ist), dann kannst du dir als Ergänzung zu der mathematischen Betrachtung von area-of-games auch einfach vorstellen: Für das erste Fach hast du 11 Möglichkeiten, für's zweite 10 und für's dritte 9, also 11*10*9 Möglichkeiten.

    Gruß
  • in: JS Funktionszuweisung mit variablen Variablen

    geschrieben von bandi999

    Hi,

    ich denke schon, dass ich das Problem verstanden habe. Allerdings ist der Weg den du einschlagen willst eine Sackgasse.
    Was passt hieran nicht?
    Das ist zwar nicht so wie du es machen wolltest, führt aber zum gleichen Ergebnis: Der Wert value ist in der Funktion onfocus verfügbar und zwar passend zu jedem Element field(i).
    Nach dem was du bisher geschrieben hast, ist es nicht erforderlich den Wert fest in die Funktion zu schreiben.Und nach dem was ich weiß, ist es nicht möglich eine Funktion dynamisch zu erstellen. Es ist immer ein Umweg über z.B. ein Attribut erforderlich.

    Edith: Muß mich korrigieren, es würde z.B. so funktionieren:
    document.getElementById(i).onfocus = new Function("fx", "var y ="+x);
    Habe ich mit einer bekannten Suchmaschine für dich hier gefunden.

    Gruß
  • in: JS Funktionszuweisung mit variablen Variablen

    geschrieben von bandi999

    Hi,

    wie wär's mit:
    field[i].onfocus = function() {
      var y = this.value;
    }


    Gruß
  • in: Zuerst PHP Code ausführen, dann Seite neu laden

    geschrieben von bandi999

    Hi,

    na wenn du jetzt zufrieden bist.

    Ich würde zwar vermuten, dass es reicht $i nach dem update der Textdatei zu ermitteln, ganz ohne Vergleich und sonstwas, aber so geht es ja scheinbar auch.

    Gruß
  • in: Zuerst PHP Code ausführen, dann Seite neu laden

    geschrieben von bandi999

    Hi,

    bei mir ändert sich der wert wenn ich auf "hinzfügen" klicke, ohne nochmal neu zu laden.

    Gruß
  • in: Zuerst PHP Code ausführen, dann Seite neu laden

    geschrieben von bandi999

    Hi,

    sehe gerade das Problem nicht.
    Warum soll die Seite überhaupt neu geladen werden? Wegen der Anzahl der Spieler?
    Wie wäre es, wenn du erst die PHP Sachen abarbeitest und am Ende der Seite das HTML ausgibst?

    Gruß
  • in: Zuerst PHP Code ausführen, dann Seite neu laden

    geschrieben von bandi999

    Hi,

    ultimate-bravery schrieb:
    Unter XAMPP hat das auch geklappt aber auf meinem bplaced Server kommt folgende Fehlermeldung:
    Warning: Cannot modify header information - headers already sent by (output started at /users/spielertrinken/www/zuweisung.php:60) in /users/spielertrinken/www/mitspieler_hinzufuegen.php on line 40

    Ich habe gelesen, dass vor einem header Befehl keine Ausgabe stattfinden darf. Aber wie kann ich mein Ziel sonst erreichen, wenn ich vor dem Neuladen den o.g. Code ausführen will?
    Wenn es unter xampp geklappt hat, warum sollte es bei bplaced nicht gehen? Was steht den in zuweisung.php:60 und drum herum? Evtl. ist es einfach nur eine php Notice z.B. wegen Zugriff auf die Datei oder ein Leerzeichen vor dem <?php was die Ausgabe gestartet hat?
    Evlt. kannst du auch anstatt header('Location ... die andere Datei includieren?

    Gruß
  • in: Multimedia-tastendruck (Tastatur) abfangen

    geschrieben von bandi999

    Hi,
    koslo schrieb:
    Aber vllt. hat Jemand eine Lösung...
    also ich hab keine Lösung aber vielleicht google: http://forums.sun.com/thread.jspa?threadID=5397084&start=0&tstart=0. Hier wird auf JIntellitype http://www.softpedia.com/get/Programming/Other-Programming-Files/JIntellitype.shtml verwiesen und zumindest die Beschreibung hört sich gut an, bezogen auf deine Problemstellung. Ob es denn nun wirklich funktioniert kann ich nicht sagen. Leider wird auch im oben verlinkten Thread nichts zum abschließenden Ergebnis gesagt.

    Gruß
    Manni
  • in: In Textarea von tinymce mit eigenen javascript text einfügen

    geschrieben von bandi999

    Hi,
    christian1603 schrieb:
    Das Funktioniert soweit.
    meine Theorie wäre, dass soweit nicht alles ganz genau funktioniert. Wenn irgendwo ein Fehler im Javascript festgestellt wird, dann werden die nachfolgenden Scripte nicht mehr ausgeführt. Zum Test würde ich am Ende des ersten Scripts, also da wo tinyMCE eingebunden wird, einen alert einbauen und schauen, ob er ausgeführt wird. Wenn ja, ist meine Theorie Müll, wenn nicht, dann passt irgendwas mit tinyMCE nicht.

    Gruß
    Manni
  • in: A* Algorithmus fast fertig in PHP implementiert

    geschrieben von bandi999

    Hi,
    yuzuke schrieb:
    Vielen Dank, ich hoffe ihr findet meinen Fehler . Hier noch die Wikipedia Erklärung: http://de.wikipedia.org/wiki/A_Stern Ich habe mich so gut es geht an die Namen in Wikipedia gehalten.
    Na dann schaun wir mal ;).
    Im Abschnitt
    // Berechnet H Wert des Successors
              $XDifference = $Successor[0] - $this->tx;
              if($XDifference < 0) {
                $XDifference *= -1;
              }
              $YDifference = $Successor[1] - $this->ty;
              if($YDifference < 0) {
                $YDifference *= -1;
              }
              $h = sqrt($XDifference * $XDifference + $YDifference * $YDifference);
              // G, C und H Wert werden zum F Wert addiert
              $f = $g + $c + $h;
    addierst du H zu F. Das macht keinen Sinn. H ist eigentlich nur gedacht, um die Auswahl des nächsten Knoten zu beeinflussen um die Chance zu haben, möglichst schnell die kürzeste Route zu finden. In die tatsächliche Weglänge fließt H nicht ein. Wenn Heuristik haben möchtest, müßtest du zu jedem Konten den H-Wert speichern und dann beim Sortieren der openlist bei gleichem F, den Knoten mit dem kleinsten H wählen. Die einfache Variante wäre aus dem oben genannten Code nur
    $f = $g + $c;
    zu machen. Dass ist dann ohne Heuristik, quasi Brute-Force :)

    Ich habe es jetzt nicht bis ins letzte Detail geprüft, aber dein Beispiel funktioniert mit den beschriebenen Änderungen.

    Gruß
    Manni
  • in: Hilfe zu deinem PHP Charts script

    geschrieben von bandi999

    Hi,
    vertausche die beiden unteren Zeilen in
    FROM
            `charts_lists` AS `diese_woche`,
            `charts_songs` AS `songs`
    zu
    FROM
            `charts_songs` AS `songs`,
            `charts_lists` AS `diese_woche`
    und werde (hoffentlich) glücklich.

    Erklärung: der "LEFT JOIN" nimmt nur zwei Argumente. In der ersten Version gibt das dann
    songs LEFT JOIN letzte_Woche
    Zum einen ist das nicht was gewollt ist, zum anderen wird bei diesem JOIN der Alias "diese_Woche" nicht erkannt, da er ja kein Argument ist.

    Gruß
    Manni
  • in: Java Fehler: Klicken Sie um .... Ausführung nicht möglich

    geschrieben von bandi999

    Hi,
    das Problem ist, dass Lima die Class Datei nicht rausrücken will ;). Wenn ich mal den Link auf die Datei http://fischej.lima-city.de/ticker/HollywoodText.class anklicke, dann sagt mir der Lima Server, dass er nicht will.
    Die Server von lima-city haben deine Anfrage für die aufgerufene Adresse abgelehnt.
    Die Fehlermeldung ist allerdings etwas verwirrend :).
    Warum, weiß ich leider auch nicht. Evtl. Rechte auf das Verzeichnis oder die Datei ändern oder mal in ein anderes Verzeichnis legen.
    Allerdings sehe ich da auch wenig Erfolgschancen, denn ich habe die Datei mal auf meinen Webspace gelegt http://bandi999.lima-city.de/forum/HollywoodText.class und erhalte den gleichen Fehler.
    Lima ist ja kürzlich auf andere Server umgezogen, evtl. liegt da die Ursache. Kannst ja mal ein Ticket eröffnen.
    Evtl. vorher einfach mal ein anderes Applet hochladen und versuchen ob das läuft oder ob es ein grundsätzliches Problem mit Applets ist.

    Gruß
    Mani
  • in: Joomla Formeln(latex)

    geschrieben von bandi999

    Hi,
    kennst du jsMath?
    http://sourceforge.net/projects/jsmath/files/
    http://www.math.union.edu/~dpvc/jsMath/welcome.html
    aus meiner Sicht mit beeindruckender Browserkompatibilität.

    Gruß
    Manni
  • in: LM317 parallel schalten

    geschrieben von bandi999

    Hi nochmal,

    also ich schließe mich den Ausführungen von theseven an. Die Berechnung der Widerstände bleibt ja gleich, auch wenn du drei LM's parallel schaltest. Den Einwand bezüglich Toleranzen und ungleicher Lastverteilung teile ich ebenfalls.
    Ein konkretes Beispiel mit Bauteilwerten findest du hier http://www.national.com/ds/LM/LM317.pdf auf Seite 22. Das ist genau die Idee von theseven, allerdings mit einem OP. Ob es auch ohne geht wäre zu testen. Kommt wahrscheinlich darauf an, wie konstant die Ausgangsspannung sein soll.
    Alternativ findest du auf Seite 19 auch ein Beispiel mit zusätzlichem Lasttransistor, aber so wolltest du es ja wahrscheinlich nicht lösen.

    Gruß und viel Spaß beim Basteln!
    Manni
  • in: LM317 parallel schalten

    geschrieben von bandi999

    Hi,
    wie so oft habe ich eine mir gut bekannte Suchmaschine befragt:
    http://www.elektronik-kompendium.de/public/schaerer/ureg3pin.htm
    Bild 7 mit dem darunter liegenden Text könnte dir evtl. helfen.


    Gruß
    Manni
  • in: [suche] Transistor Daten für Gericom (Medion) TFT Monitor

    geschrieben von bandi999

    Hi,
    oggy1 schrieb:
    ... jedoch sieht das Teil auf dem Foto dort völlig anders aus und deswegen mal ein Bild von dem defekten Teil......
    ok, habe zwar zuerst gedacht es passt, denn in den Links oben waren ja auch schon Bilder. Nun habe ich aber noch mal für dich gegoogelt (Vielleicht ist dein Google ja kaputt ;)) und folgendes gefunden:
    Hier gibt es die Teile bei ebay (mußt allerdings schaun ob er ausnahmsweise nach DE versendet):
    http://cgi.ebay.com/4-Inverter-transistor-viewsonic-VX910-VX924-DK-QB-QO-QA_W0QQitemZ370351164293QQcategoryZ174QQcmdZViewItemQQ_trksidZp4340.m263QQ_trkparmsZalgo%3DDLSL%252BSIC%26its%3DI%252BC%26itu%3DUCI%252BIA%252BUA%252BFICS%252BUFI%252BDDSIC%26otn%3D20%26po%3D%26ps%3D63%26clkid%3D8659570963061479668

    Dann hat hier einer geschrieben, dass er einen DK QG erfolgreich durch einen 2SC4672 ersetzt hat:
    http://www.vvt-europe.de/forum/thread.php?threadid=4456&hilight=gericom
    Bestellen kannst du das Teil hier:
    http://www.elektronik-werkstatt.de/onlineshop.html?bezeichnung=2SC4672&eref=forumartsuche

    Hier schreibt jemand ein Ersatz für den DK QH wäre der 2SD1628:
    http://www.electronicspoint.com/sceptre-x9g-komodo-monitor-identifying-transistor-t188444.html

    Ob es evtl. besser oder sogar erforderlich wäre Pärchen zu ersetzten weiß ich nicht. Ich rate auch die diversen Hinweise auf defekte Elkos zu beachten, damit der schöne neue Transistor nicht gleich wieder verbleicht.

    Irgendwo in einem der Links im ersten Post hat jemand geschrieben, dass er einen Inverter lahm gelegt hat und mit 2 statt 4 Röhren arbeitet. Wäre die billigste Lösung :). Bin aber nicht sicher, ob es genau dein Monitortyp war.

    Das wars dann aber von meiner Seite. Schreib doch mal was du gemacht hast.


    Gruß
    Manni
  • in: [suche] Transistor Daten für Gericom (Medion) TFT Monitor

    geschrieben von bandi999

    Hi,
    wie so oft habe ich eine bekannte Suchmaschine befragt:
    Unter http://www.elektronik-kompendium.de/service/smdcode.php habe ich dk eingegeben und als Ergebnis ist http://www.datasheetcatalog.net/de/datasheets_pdf/B/C/X/4/BCX42.shtml herausgekommen. Ganz sicher bin ich nicht, aber nach den Werten könnte es schon der richtige sein (Schalttransistor, hohe Spannung, Niederfrequenz).
    Gibts bei Reichelt für 0,10 EUR. http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=A121;GROUPID=2881;ARTICLE=41357;START=0;SORT=artnr;OFFSET=16;SID=29evsiR6wQAR0AAAx1ak8a116df4dafa443325dd923e412070e22

    Falls du nicht ganz sicher mit dem Defekt bist kannst du ja auch mal die Tipps hier nachlesen:
    http://forum.iwenzo.de/reparatur-monitor-und-tft-f4/viewsonic-vx910-dk-qt-oder-dk-qf--t45066.html
    http://forum.iwenzo.de/reparatur-monitor-und-tft-f4/gericom-t920-modell-s1902d-schwarzer-bildschirm--t33132.html
    http://forum.electronicwerkstatt.de/phpBB/topic87759_f4_bxtopic_timexDESC_by1_bz0_bs0.html
    http://forum.electronicwerkstatt.de/phpBB/topic82817_f4_bxtopic_timexDESC_by1_bz0_bs0.html
    http://techmeister-board.com/showthread.php?21269-suche-Transistor-Daten-f%BCr-Gericom-(Medion)-TFT-Monitor&s=ee6c88188248d61806eb4e40049bc3fc&p=42221#post42221
    http://www.repdata.de/wbb2/thread.php?threadid=39042&threadview=0&hilight=&hilightuser=0&page=1

    Danach kommen auch die üblichen Verdächtigen wie Lötstellen und Elkos in Frage. Sollten alle Stricke reißen und du willst das Teil unbedingt retten könntest du auch noch versuchen bei ebay & Co für wenig Geld einen defekten Monitor zu erwerben um ihn auszuschlachten.

    Gruß
    Manni
  • in: Gleich- oder Wechselstrom?

    geschrieben von bandi999

    Hi,
    fatfox schrieb:
    AC = Asynchronious Current = Wechselspannung
    hmm normalerweise bin ich ja nicht so, aber das tut mir in der Seele weh. http://en.wikipedia.org/wiki/Alternating_current
    Nix für ungut.
    Manni
  • in: Addressfreigabe nach socket.close()

    geschrieben von bandi999

    Hi,
    alphara schrieb:
    Nein, das Problem liegt so:
    nun ja, offenbar bist du nicht so recht bereit zur Lösung des Problems beizutragen, wenn sich das "Nein" auf das Posten von Code bezieht. Wie stellst du dir vor, dass man das Problem lösen soll, ohne es ganz zu kennen? (bitte auch beachten was weiter unten steht)
    Meine Frage bezieht sich also genau auf die Freigabe der reservierten Verbindung nachdem der Timeout reagiert hat.
    Ich behaupte mal, wenn du das Problem tatsächlich soweit eingrenzen könntest, dann könntest du es auch lösen ;). Offenbar sind aber die Zusammenhänge anders als du glaubst und genau deshalb hast du ein Problem.
    Noch mal ins Blaue: Kannst ja mal versuchen das
    ServerSocket servsock = new ServerSocket(9000);
    ausserhalb der run Methode auszuführen (weiß ja nicht ob es schon so ist, hab ja keinen code ;))
    Ansonsten viel Glück für dein Projekt und ich wünsch dir Hilfe von jemanden, der besser raten kann als ich und auch die Zeit und Lust hat um Spielchen zu spielen.

    Gruß
    Manni
  • in: VBS, String im String finden: Fehler im Code

    geschrieben von bandi999

    Hi,
    nun ja, manchmal denkt man zu kompliziert, vor allem wenn man schon lange vor so einem Rechner am selben Problem sitzt :).
    For j = 0 To UBound(temp)
        output = output & temp(i)
    Next
    Hier hast du die Variablen j und i gemischt, dass sollte wohl nicht so sein.

    Gruß
    Manni
  • in: Addressfreigabe nach socket.close()

    geschrieben von bandi999

    Hi,
    dein Code funktioniert bei mir soweit einwandfrei. Du sagst während der 60 Sekunden bis zum Timeout geht keine Anfrage von einem Client ein, oder?
    Für weitere Analyse würde ich vorschlagen du postest mehr Code.

    Gruß
    Manni
  • in: VBS, String im String finden: Fehler im Code

    geschrieben von bandi999

    Hi,
    cdas schrieb:
    i = 1
            Do Until objReadFile.AtEndOfStream
                Redim Preserve arrData(i)
                arrData(i) = objFile.ReadLine
                i = i + 1
            Loop

    Funktioniert aber bei mir nicht einwandfrei, weil in Zeile 4 Typen nicht passen, oder so ähnlich.
    Das Objekt objFile hat keine Methode ReadLine sondern das Objekt objReadFile. Hier mal das Beispiel mit Änderungen, was bei mir funktioniert:
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.GetFile("addresses.txt")
    
    If objFile.Size > 0 Then
       Set objReadFile = objFSO.OpenTextFile("addresses.txt", 1)
       i = 1
       Do Until objReadFile.AtEndOfStream
           Redim Preserve arrData(i)
           arrData(i) = objReadFile.ReadLine
           i = i + 1
       Loop
    
       objReadFile.Close
       strContents = arrData(4)
       for i = 0 to (UBound(arrData))
         MsgBox(arrData(i))
       next
    End If
    Gruß
    Manni
  • in: VBS, String im String finden: Fehler im Code

    geschrieben von bandi999

    Hi,

    also bei mir funktioniert dein Script _grundsätzlich_ schon.
    Du hast ja ein paar MsgBoxes als Debug eingebaut, guck doch die Ausgaben an, dann siehst du wo das Problem liegt. Ich würde auch vorschlagen zunächst mal nur nach einem Bergriff zu suchen, wenn das funktioniert kannst du ja das Script erweitern.
    Eine Problemursache könnte sein, dass ReadLine immer nach der gelesenen Zeile stehen bleibt (genauer gesagt der Zeiger in der Datei zeigt auf das erste Zeichen nach der gelesenen Zeile). Um für die nächste Abfrage wieder am Dateianfang zu starten müstest du die Datei schließen und wieder öffnen.
    Ein anderes Problem könnte sein, dass sich im Suchbegriff ein Zeilenumbruch befindet. Für diesen Falls müßtest du das "<\" dann auch in den nächsten Zeilen suchen.
    cdas schrieb:
    Gut, wenn keiner antworten will...
    Kann mir jemand erklären, wie die Funktion "datei.readline" funktioniert?
    Welchen Wert sie liefert?
    Wie sie sich zu readall unterscheidet?
    Immer mit der Ruhe. Wie eigentlich unschwer aus den Funktionsnamen zu erkennen ist liest ReadLine den Dateiinhalt zeilenweise und ReadAll den gesamten Inhalt der Datei auf einmal.

    Hier mal der etwas geänderte Code:
    function extrahieren(suchterm,datei)
      
        Do Until datei.atEndOfStream
        strLine = datei.Readline
        'Vorne und hinten finden
        if inStr(1,strLine,suchterm,0)>0 then
            MsgBox(strline)
            vorne = inStr(1,strLine,suchterm,0)
            MsgBox(vorne)
            bisHinten = inStr(vorne, strLine,"<\",0) - vorne '<--- Gibt immer nur null-vorne zurück.
            MsgBox(bishinten)
            wert = wert & mid(strline,vorne,bisHinten)
            MsgBox(wert)
            extrahieren = extrahieren & wert
            exit function
        end if
    
        loop   
    end function
    
    function datensatz(datei)
        'suchterme_definieren()
        Dim suchterme(2)
    
        'Jeweilige html-tags
        suchterme(0) = "vi-is1-prcp" 'Preis tag
        suchterme(1) = "EUR"
        suchterme(2) = "MEZ"
    
        terms = (UBound(suchterme))
        
        for i = 0 to terms
          Set datei = fs.OpenTextFile("text.txt")
          datensatz = datensatz & extrahieren(suchterme(i), datei) & ","
          datei.close
        next
    end function
    
    '----------------------
    'Datei öffnen/einlesen
    '----------------------
    Dim fs, datei
    
    Set fs = CreateObject("Scripting.FileSystemObject")
    
    '----------------------------------
    'In Datei schreiben/schließen
    '----------------------------------
    set fs = createobject("Scripting.filesystemobject")
    set output = fs.opentextfile("output.txt",2,true,0)
    output.write datensatz(datei)
    output.close
    
    MsgBox "Abwischen...",0,"Fertig!"
    als input die Datei text.txt:
    sdfsf <EUR>Hallo<\EUR> ssadffsf

    Gruß
    Manni
  • in: Autokommentare in Eclipse gehen nicht

    geschrieben von bandi999

    Hi,
    also im Speziellen kann ich nichts dazu sagen, da ich Eclipse - svn nur mit Java verwende.

    Wenn ich deinen Aussagen richtig folge, dann sollte es ja möglch sein ein Projekt zu erzeugen und zu committen. Dann das lokale Projekt löschen. Und nach einem checkout sollte die Welt in Ordnung sein. Irgendwie kann ich das aber nicht so recht glauben. Schätze ich verstehe da was miss ;).

    Gruß
    Manni
  • in: WikiAPI + Ajax

    geschrieben von bandi999

    Hi,
    also im ersten Post schreibst du, dass du irgendeinen Kram zurück bekommst. Mit der geänderten Abfrage sollte nicht irgend ein Kram zurück kommen, sondern die gewünschte Antwort. Dieses Problem sollte doch damit gelöst sein, oder?

    Warum du dann auf die Antwort nicht als XML Dokument zugreifen kannst scheint mir wiederum eine andere Sache zu sein. Für Hilfe bei diesem Problem bitte den enstprechenden Code von dir posten, damit wir auch von gleichen Grundlagen ausgehen.

    Gruß
    Manni
  • in: WikiAPI + Ajax

    geschrieben von bandi999

    Hi,
    du hast zwischen
    "format=xmlfm" +
            "prop=info",
    das "&" vergessen. Füg' es hinzu, dann klappt es auch :).

    Gruß
    Manni
  • in: Autokommentare in Eclipse gehen nicht

    geschrieben von bandi999

    Hi,

    also grundsätzlich funzen die Kommentare schon, auch wenn ein Project unter svn ist.
    Hast du mal im Menü "Quelle > Elementkommentare generieren" versucht?
    Ansonsten könntest du mal das Projekt aus svn lösen (kannst es ja dann wieder auschecken) und versuchen ob die Kommentare dann wieder normal funktionieren. Nur so als Fehlereingrenzung.

    Gruß
    Manni
  • in: mod_rewrite: Erneutes Matchen verhindern

    geschrieben von bandi999

    Hi,
    nikic schrieb:
    Da ich bis jetzt noch keine Möglichkeit gefunden habe mit PHP an die 404-Fehlerseite zu gelangen, möchte ich einfach den "Original"-Request senden, um Apaches originale Fehlermeldung ausgeben zu können.
    Ich hoffe du verstehst jetzt, warum es in diesem Fall wenig bringt prephp einen no-Parameter zu übergeben, ich stünde immer noch vor dem selben Problem.
    Also um ehrlich zu sein verstehe ich den Teil
    RewriteRule ^(.*\.php[345]?)@prephp!direct$ $1 [QSA,L]
    aus dem Ausgangpost jetzt noch weniger als zuvor. Ich schätze mal das ist auch nicht mehr relevant. Zu dem für mich nun neuen Problem aus PHP an die Fehlerseite zu kommen kannst du
    $url = rootdir . $GET_['prephp_path'];
    header("Location: $url");
    benutzen. Evtl. geht das auch mit relativem Pfad, ansonsten mußt du halt schaun wie du an das rootdir kommst. Dann hast du sozusagen eine Umleitung aus PHP heraus. Klappt allerdings nur, solange die Datei noch keine Ausgaben gemacht hat. Nach den bisher beschriebenen Anforderungen sollte dies aber kein Problem sein. Das war übrigens auch schon die Idee aus dem letzten Post von mir, wobei ich es mir mit echo $url etwas zu einfach gemacht habe ;). Die Sache mit der Header Location habe ich getestet und es funzt.
    Bin ja gespannt, ob ich mich nun näher an des Pudels Kern heran getastet habe ;).
    Gruß
    Manni
  • in: Funktion erweitern

    geschrieben von bandi999

    Hi,
    will ja nicht zu viel klugsch... da das Problem anders gelöst wurde, aber wenn ich mir das erste Beispiel anschaue, dann scheint es mir um da Überladen von Funktionen zu gehen. Über einen Trick mit der magischen Varaiable __call wäre es ab PHP 5 schon möglich so ein Konstrukt zu erstellen, wie man hier nachlesen kann: http://www.strassenprogrammierer.de/%DCberladen-mit-php5_tipp_450.html.
    Ob es allerdings dann zielführend ist kann woh nur der Verfasser des Threads beurteilen ;).

    Gruß
    Manni
  • in: mod_rewrite: Erneutes Matchen verhindern

    geschrieben von bandi999

    Hi,
    nikic schrieb:
    Ja, warum es nicht funktioniert ist mir schon klar, mein Problem ist wie ich das behebe.
    hmm, ich wollte dir nicht zu nahe treten. Allerdings ließ deine Aussage
    Das Problem bei der Sache: Das [L] zeigt hier keine Wirkung.
    die Vermutung zu, dass nicht alles ganz klar ist, denn das [L] macht genau das was es soll.
    Das würde nicht ganz das gewünschte Ergebnis sein. Mein Ziel ist es den Request direkt an den Server zu leiten. Eine der Anwendungen dafür wäre nämlich die Fehlerseite abzufangen, die Apache normalerweise werfen würde. Das kann ich aber nicht, wenn ich alles über prephp.php leite.
    Das ist mir jetzt irgendwie nicht klar. Die Idee in deinem code war doch, dass Seiten die mit @prephp!nodirect enden direkt aufgerufen werden, alles andere was mit .php[345] endet wird auf die prephp umgeleitet. Wenn du nun die direkt aufzurufenden Seiten mit ?prephp=no kennzeichnest, kannst du doch in der prephp.php prüfen ob die direkte Ausgabe erfolgen soll oder ob vorher z.B. auf Fehlerseiten geprüft werden soll.
    if(isset($_GET['prephp'] )&& $_GET['prephp']="no") 
    {$url= rootdir . $_GET['prephp_path'] 
    echo $url 
    } 
    else //Fehlerseitenerkennung

    Oder gibt es irgendeine andere Möglichkeit an die Apache-Fehlerseiten-Konfiguration zu kommen?

    Eine bekannte Suchmaschine liefert z.B. http://forum.fachinformatiker.de/rootserver-vserver-webspace/95079-apache-404-eigene-errorseite.html oder http://www.netconcept24.de/nuetzliches/tutorials/tutorial2.php wonach eine Konfiguration sowohl in der httpd.conf als auch in einer .htaccess möglich sein sollte.

    Ich hoffe diesmal habe ich besser verstanden um was es dir geht.
    Allerdings gilt auch diesmal: Alles ungetestet!

    Gruß
    Manni
  • in: mod_rewrite: Erneutes Matchen verhindern

    geschrieben von bandi999

    Hi,
    nikic schrieb:
    Das Problem bei der Sache: Das [L] zeigt hier keine Wirkung.

    nun ja, wenn ich mal beim Erfinder nachlese, dann ist das schon so ok: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriteflags
    Der interne redirekt gilt als erneuter request und deshalb werden alle Regeln wieder von vorne abgearbeitet. Das Flag bewrikt aber, dass nicht auch noch die zweite Regel angewendet wird, wenn die erste schon passt, so wie es in deinem Beispiel der Fall ist.
    Als Lösung würde ich vorschlagen einen Parameter mitzugeben, der dann in der prephp.php ausgewertet wird, also z.B. config.php?prep="no". Dann kannst du dir die erste Regel schenken.

    Ich weiß nicht ob du gesehen hast, dass du eine schönen Schleife gebaut hast. Irgendwann gibt mod_rerwrite scheinbar auf, aber die feiner Art ist das nicht. :).
    Wenn die zweite Regel zutrifft wird umgeleitet und dann trifft die zweite Regel wieder zu, da es sich ja wieder um ein .php file handelt (Die Argumente nach dem ? werden offenbar nicht zur url gezählt, wie man in deinem Log sehen kann).
    Ich habe eine Zeit lang nachgedacht wie das zu umgehen wäre. Ohne es wirklich exakt durchgespielt oder gar getestet zu haben, würde ich mal versuchen eine erste Regel durch die Rewrite Condition
    RewriteCond %{REQUEST_URI}. !.*prephp.php.*
    zu ersetzen.

    Ich hoffe das funktioniert so oder hilft dir zumindest auf einen guten Weg :).

    Gruß
    Manni
  • in: Problem mit abstraktem Datentyp Liste

    geschrieben von bandi999

    Hi,
    also abstrakte Klassen sind in Java eigentlich Klassen die nicht instanziiert werden können, sondern nur als oberstes Element einer Vererbungshierachie dienen. Ich bin mir nicht ganz sicher ob das in deiner Aufgabe auch gemeint ist. Dein Beispiel ist auf jeden Fall eine konkrete Klasse. Auch dein Hinweis auf Zeiger hat eigentlich nichts mit abstrakten Klassen zu tun. In abstrakten Klassen werden einfach einige Methoden nicht ausprogrammiert, sondern nur die Signatur vorgegeben.
    Ein Programm, das einen Datentyp Liste liefern soll ergibt irgendwie keinen Sinn. Die abstakte Klasse Liste implementieren schon eher.
    Daher formuliere ich die Aufgabe mal so: Erstellen sie eine verknüpfte Liste (Linked List) für integer Elemente :).

    Die Idee Elemente als Wrapper für den Integer einzusetzen ist schon mal gut.
    Dann hast du die insert Methode für die Liste implementiert. Dabei solltest du zunächst die möglichen Fälle untersuchen:
    1.) Liste ist leer (erstes Element wird eingefügt)
    if (isEmpty()) {
    			anfang = x;
    			aktuell = x;

    2.) Eingefügtes Element ist erstes Elment in einer nicht leeren Liste (Listenanfang wird geändert)
    else if (wert < anfang.getWert()) {
    			x.setZeiger(anfang);
    			anfang = x;
    			aktuell = x;

    3.) Element ist innerhalb der Liste einzufügen (richtige Stelle ermitteln)
    4.) Element ist letztes Element (an Liste anhängen und für Abschluss sorgen)
    else {
    			aktuell = anfang;
    			while (!(aktuell.getZeiger() == null)
    					&& (wert > aktuell.getZeiger().getWert())) {
    				aktuell = aktuell.getZeiger();
    			}
    			if (aktuell.getZeiger() == null)
    				aktuell.setZeiger(x);
    			else {
    				x.setZeiger(aktuell.getZeiger());
    				aktuell.setZeiger(x);
    			}

    Im letzten Code Schnipsel wird die Liste durchlaufen, bis die Liste zu Ende ist, oder bis ein Wert in der Liste gefunden wird, welcher größer ist als der einzufügende. Dann wird das Element eben angehängt (beim Erzeugen des Elements wird der Zeiger bereits auf null gesetzt und zeigt somit das neue Listenende an) oder vor dem größeren Wert eingefügt.

    Das war's schon :), zumindest mit insert.
    Wahrscheinlich willst du ja auch Elemente ausgeben oder auf das Vorhandensein eines Elementes prüfen oder Elemente löschen oder ..... Vielleicht war ja auch das die Aufgabe, dass du dir einfach nur überlegen sollst welche Funktionen in so einer Liste sinnvoll wären und die Implementierung gar nicht gefragt ist (deshalb abstrakt)?
    Hier noch das Gesamtwerk:
    public class Liste {
    	Element anfang, aktuell = null;
    
    	public void insert(int wert) {
    		Element x = new Element(wert);
    		if (isEmpty()) {
    			anfang = x;
    			aktuell = x;
    			System.out.println("Start new List: **" + anfang.getWert()+"**");
    		} else if (wert < anfang.getWert()) {
    			x.setZeiger(anfang);
    			anfang = x;
    			aktuell = x;
    		} else {
    			aktuell = anfang;
    			while (!(aktuell.getZeiger() == null)
    					&& (wert > aktuell.getZeiger().getWert())) {
    				aktuell = aktuell.getZeiger();
    			}
    			if (aktuell.getZeiger() == null)
    				aktuell.setZeiger(x);
    			else {
    				x.setZeiger(aktuell.getZeiger());
    				aktuell.setZeiger(x);
    			}
    		}
    		aktuell = anfang;
    		System.out.println("Show list order:");
    		if (anfang == x)
    			System.out.print("**" + anfang.getWert() + "** ");
    		else
    			System.out.print(anfang.getWert() + " ");
    		while (!(aktuell.getZeiger() == null)) {
    			aktuell = aktuell.getZeiger();
    			if (aktuell == x)
    				System.out.print("**" + aktuell.getWert() + "** ");
    			else
    				System.out.print(aktuell.getWert() + " ");
    		}
    		System.out.println();
    		aktuell = x; // Neuer aktuell Wert = neues erstelltes Element
    	}
    
    	public boolean isEmpty() {
    		if (anfang == null) {
    			return true;
    		} else {
    			return false;
    		}
    	}
    
    	public class Element {
    		int wert;
    		Element zeiger = null;
    
    		Element(int wert) {
    			this.wert = wert;
    		}
    
    		public int getWert() {
    			return wert;
    		}
    
    		public void setZeiger(Element zeiger) {
    			this.zeiger = zeiger;
    		}
    
    		public Element getZeiger() {
    			return zeiger;
    		}
    	}
    
    	public static void main(String args[]) {
    		Liste a1 = new Liste();
    		a1.insert(15);
    		a1.insert(27);
    		a1.insert(60);
    		a1.insert(16);
    		a1.insert(28);
    		a1.insert(3);
    		a1.insert(61);
    		
    	}
    }

  • in: Das Abgehen einer ungeordneten Liste

    geschrieben von bandi999

    Hi,
    deine Frage motiviert mich zur Erinnerung an scheinbar längst vergessene Zeiten ;).
    Die Liste kann man sich als Graph vorstellen, der aus Knoten und Kanten besteht. Die Knoten sind durch ihre Koordinaten bestimmt, die Kanten existieren nur zwischen benachbarten Knoten (so wie du benachbart definiert hast).
    Alle Knoten werden mit einem Tiefendurchlauf druchlaufen, wenn der Graph zusammenhängend ist. Sofern nicht, müssen mehrere Durchläufe gestartet werden. Hier mal etwas Code zu deinem Beispiel:
    package liste;
    
    import java.awt.Point;
    import java.util.ArrayList;
    
    public class Tiefendurchlauf {
    	Point P0 = new Point(0, 0);
    	Point P1 = new Point(1, 1);
    	Point P2 = new Point(3, 4);
    	Point P3 = new Point(2, 1);
    	Point P4 = new Point(0, 1);
    	Point P5 = new Point(0, -1);
    	ArrayList<Node> list = new ArrayList<Node>();
    	boolean[][] edge;
    
    	public Tiefendurchlauf() {
    		list.add(new Node(P0));
    		list.add(new Node(P1));
    		list.add(new Node(P2));
    		list.add(new Node(P3));
    		list.add(new Node(P4));
    		list.add(new Node(P5));
    		for (int i = 0; i < list.size() - 1; i++)
    			for (int j = i + 1; j < list.size(); j++)
    				if (sindNachbarn(list.get(i), list.get(j))) {
    					list.get(i).neighbour.add(list.get(j));
    					list.get(j).neighbour.add(list.get(i));
    				}
    		for (int i = 0; i < list.size(); i++) {
    			if (list.get(i).visited == 0) {
    				runTree(list.get(i));
    				System.out.println("****************************");
    			}
    		}
    	}
    
    	public static void main(String[] args) {
    		new Tiefendurchlauf();
    	}
    
    	public boolean sindNachbarn(Node n1, Node n2) {
    		if ((n1.point.x == n2.point.x || n1.point.y == n2.point.y)
    				&& (Math.abs(n1.point.x - n2.point.x) == 1 || Math
    						.abs(n1.point.y - n2.point.y) == 1))
    			return true;
    		else
    			return false;
    	}
    
    	public void runTree(Node n) {
    		boolean end = true;
    		System.out.println(n.point);
    		if (n.visited == 0) {
    			n.visited++;
    			for (Node v : n.neighbour) {
    				if (v.visited == 0) {
    					end = false;
    					runTree(v);
    				}
    			}
    		}
    		n.visited = 2;
    		if (!end)
    			System.out.println("+" + n.point);
    	}
    
    	private class Node {
    		public Point point;
    		public int visited;
    		ArrayList<Node> neighbour;
    
    		public Node(Point p) {
    			visited = 0;
    			point = p;
    			neighbour = new ArrayList<Node>();
    		}
    	}
    }
    Dabei werden Knoten mehrfach durchlaufen und der Durchlauf endet am Startknoten.
    Eine Variante ist die folgende. Hier wird der längste mögliche Pfad gesucht, wobei die Knoten jeweils nur ein mal durchlaufen werden.
    package liste;
    
    import java.awt.Point;
    
    public class FindeAlle {
    	static int maxTiefe;
    	static Point[] pfad = null;
    
    	public static void main(String[] args) {
    		Point P0 = new Point(0, 0);
    		Point P1 = new Point(1, 1);
    		Point P2 = new Point(3, 4);
    		Point P3 = new Point(2, 1);
    		Point P4 = new Point(0, 1);
    		Point P5 = new Point(0, -1);
    		Point[] Points = { P0, P1, P2, P3, P4, P5 };
    		maxTiefe = Points.length +1;
    		while (pfad == null){
    			maxTiefe--;
    			findePfad(Points,0);		
    		}
    		if (pfad == null)System.out.print(pfad);
    		else {
    			System.out.println("Pfadlänge: " + maxTiefe);
    			for (int i= 0; i < pfad.length; i++){
    				System.out.println(pfad[i]);
    			}
    		}
    	}
    
    	public static void findePfad(Point[] teilPfad, int start) {
    		if (start == maxTiefe) {
    			pfad = teilPfad.clone();
    			return;
    		}
    		for (int i = start; i < teilPfad.length; i++) {	
    			if (start==0 || sindNachbarn(teilPfad[start-1], teilPfad[i])) {
    				Point[] hilfPfad = teilPfad;
    				Point merk = hilfPfad[start];
    				hilfPfad[start] = hilfPfad[i];
    				hilfPfad[i] = merk;
    				findePfad(hilfPfad, start + 1);
    			}
    		}
    	}
    
    	public static boolean sindNachbarn(Point P1, Point P2) {
    		if ((P1.x == P2.x || P1.y == P2.y)
    		&& (Math.abs(P1.x - P2.x) == 1 || Math.abs(P1.y - P2.y) == 1))
    			return true;
    		else
    			return false;
    	}
    }
    Ich hoffe du kannst was davon brauchen.

    Gruß
    Manni
  • in: php post übergeben

    geschrieben von bandi999

    Hi,
    da hammas scho!
    Wenn ich das richtig sehe, dann willst du aus einer PHP Seiter herus mit AJAX eine andere PHP Seite einbinden. Nach meiner Meinung ist das nicht möglich. Ich befürchte du bringst da PHP und Javascript durcheinander. Ich hätte übrigens eher vermutet, dass aus dem Script form_chat_texte.php heraus eine Seite erzeugt werden soll, und von dierer aus dann die Seite insert_chat_texte.php zum Setzen der Einträge aufgerufen wird. Aber so kann man sich täuschen....

    Ich bin nämlich davon ausgegangen, dass du eine HTML Seite hast und von dieser aus per AJAX mit einer PHP Seite kommunizierst, also ein PHP Script aufrufst. Das was du jetzt gepostet hast ist aber eher so wie czibere es vorgeschlagen hat, zumindest im weitesten Sinne. Ich sehe allerdings nicht, wie du so das vollständige Laden der Seiten verhindern kannst.

    Ich wünsche dir, dass noch jemand eine Lösung für dein Problem hat.

    Gruß
    Manni
  • in: php post übergeben

    geschrieben von bandi999

    Hi,

    czibere schrieb:
    @bandi999dass man mich nicht falsch versteht: ich habe nichts gegen ajax! dein beispiel geht ja auch! kleiner schönheitsfehler: die nachgeladene seite hört nicht auf sich nachzuladen. eine post-variable sehe ich auch nicht (aber ich kann ja 'fachblind' sein).
    Nun mein Beispiel bezog sich auf die letzte Frage von programtools die da lautete:
    P.S. kann ich in einer Seite die per Ajax geladen wird wirklich garkein Javascript nutzen??
    Von "post" war da nicht mehr die Rede und die Frage hatte ich in meiner Antwort auch gequotet. Und bevor jetzt so was kommt wie: "Ja aber der Thread hat doch zum Thema..." meine ich, dass es nicht selten vorkommt, das sich ein Thread entwickelt und dies auch hier der Fall ist. Ob denn ggf. ein neuer Thread zu eröffnen ist, ist imho eine philsophische Frage, welche (genau wie die Frage ob man nur in Kleinschrift verwenden sollte) wohl nie abschließend beantwortet wird. Also nichts für ungut...
    Das ewige Laden hatte ich gesehen und es liegt wohl an dem komischen Werbescript auf Lima. Da es mir aber eher um Grundsätzliches ging, dieses Werbescript speziell Lima ist, der sonst so böse IE das Problem nicht hat und noch reichlich Änderungen der Aufgabenstellung zu erwarten waren/sind habe ich mich nicht weiter damit beschäftigt.
    In der Frage steht übrigens auch nichts davon, dass eine Seite per Ajax eingebunden wird, sondern da steht dass eine Seite per Ajax geladen wird ;).

    Fazit: Wie kann ich das machen, dass wen ich in einer per Ajax eingebundenen Seite ein Formular sehde nicht die ganze Seite neu geladen wird, sondern nur die eingebundene??
    Hier kannst du wohl kein Formular verwenden. Mach anstelle des <form> ein <div>, nimm anstelle des Submit-Buttons einen normalen Button und als Action führst du die Ajax Anfrage aus. Dann wird die Seite nicht neu geladen.
    Auch ich fände es übrigens ganz toll, wenn du uns jeweils ein Beispiel mit Erläuterungen geben könntest. Dann sehen wir was du gemacht hast und können wahrscheinlich besser verstehen was du möchtest und im Idealfall sogar weiterhelfen.

    Gruß
    Manni
  • in: [C#] Bild per Stream übertragen

    geschrieben von bandi999

    Hi,
    ich möchte mal voraus schicken, dass ich in meinem Leben noch keine Zeile C# geschrieben habe, aber irgendwie ist ja doch immer alles ähnlich ;).
    Also in der Zeile
    netStream.Write(BitConverter.GetBytes(bildbuffer.Length),0,4);
    gehst du von einer Länge der Buffergröße von 4 Byte aus, warum? Insbesondere dimensionierst du das korrespondierende Array im Empfänger mit 1000 Bytes. Ich würde also mal diesen Wert 4 auf Client und Serverseite erhöhen und sehen was passiert.
    Wenn ich mir das Beispiel auf http://msdn.microsoft.com/de-de/library/system.net.sockets.tcpclient.getstream.aspx anschaue, würde ich übrigens sagen, dass es gar nicht erforderlich ist die Größe des Arrays mit den Bilddaten zu übertragen (noch dazu als Array), weil der Wert mit
    Client.ReceiveBufferSize
    abgefragt werden kann, wobei der Objektname "Client" natürlich an deinen Code angepasst werden muß.

    Gruß
    Manni
  • in: php post übergeben

    geschrieben von bandi999

    Hi,
    dank dir werde ich noch zum Javascript Spezialisten ;).
    programtools schrieb:
    P.S. kann ich in einer Seite die per Ajax geladen wird wirklich garkein Javascript nutzen??
    Also so grundsätzlich kann man das nicht sagen. Meine Lieblingssuchmaschine liefert z.B. diese Aussagen hier: http://www.ajax-community.de/javascript/7235-innerhtml-javascript-laden.html.
    Und damit man mir nicht nachsagen kann, ich würde immer nur für andere googlen und auch wenn mein Beispiel nicht so schön ist, wie das von czibere ;) hier mal ein kleiner Test: http://bandi999.lima-city.de/ajax/ajax.html. Das Script auf der mit Ajax geladenen Seite kann über den Button ausgeführt werden. Ich bin schon gespannt welche neuen Infos du uns als nächstes gibst und welche Probleme daraus resultieren :).
    Gruß
    Manni
  • in: php post übergeben

    geschrieben von bandi999

    Hi,
    ein POST ohne Form kannst du per AJAX machen: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php (und dann ein weinig runter scrollen).
    Das sollte genau so sein wie du es möchtest. Aber auch hier mußt du ja die Variable irgendwo hinterlegen.

    Insgesamt befürchte ich, wirst du dennoch nicht zufrieden sein, denn das was du wahrscheinlich eigentlich willst (nur ein Berechtigter kann löschen) kannst du nur erreichen, wenn du den User indetifizierst und dann prüfst ob er ausreichende Rechte besitzt. Welche Daten dann von der Seite auf welche Art gesendet werden ist eigentlich wurscht ;).
    Gruß
    Manni
  • in: setTimeout problem

    geschrieben von bandi999

    Hi,
    also die bisher angestellten Vermutungen scheinen mir richtig:
    Das Problem kommt daher, dass die Funktion ithover immer wieder eine neue Funktion erzeugt und dabei die alten Parameter übergibt. Wärhend dieser Zeit kann die Funktion ein zweites mal (oder öfter gestartet werden), jedoch mit anderen Parametern. Gleichzeitig arbeiten die Funktionen jedoch auf der globalen Variablen padd. So kann es kommen, dass der eine Funktionsaufruf die Variable padd erhöht, der andere die Variable wieder herunterzählt und so die Grenzen für das Ende der Funktion nie erreicht werden. Wenn ich mich nicht täusche nennt der Informatiker das "Seiteneffekt", der aber in deinem Fall eigentlich beabsichtigt ist.
    Eine mögliche Lösung ist die globale Varibable, so wie qap2 es vorgeschlagen hat. Damit wird erreicht, dass entweder nach rechts oder links verschoben wird und nicht hin und her. Diese Variable darf allerdings nur beim ersten Aufruf gesetzt werden, da sie sonst ja wiederum hin und her geschaltet wird.
    Anders gesagt: Nur wenn die Maus über das div oder aus dem div heraus fährt wird festgelegt, ob die Bewegung links oder rechts erfolgt. Interne Funktionsaufrufe haben keine Einfluss auf die Richtung.

    Nun, das war die Theorie und hier der Code;):
    var pedd = 5;
    var dir;
    function ithover(id,mas){
      if (mas) dir = mas;
      if (dir == 'on'){
        if (pedd < 35){
        	++pedd;		
        	window.setTimeout(function(){ithover(id,false)}, 5);	
        }
      }
      else if (dir == 'off'){
        if (pedd > 5){
    	--pedd;	
    	window.setTimeout(function(){ithover(id,false)}, 5);
        }
      }
      document.getElementById(id).style.paddingLeft = pedd + 'px';
    				
    }
    Habe mit IE und FF getestet und hoffe es funzt auch bei dir!

    Gruß
    Manni
  • in: Kollisions Erkennung

    geschrieben von bandi999

    Hi,
    andre-morillon schrieb:
    also dachte ich mir folgendes aus
    for(int i = 1; i < dots.length; i+= 4){
                   if((dots[i] - 1f) > user.y && (dots[i] +1f) < user.y){
                       inDrop = false;
                   }
               }
    nun ja, da es ja um einen Bewegung von oben nach unten geht und deinem Koordinatensystem (0|0) links unten ist müssten wohl die Ungleichzeichen umgedreht werden.
    for(int i = 1; i < dots.length; i+= 4){
                   if((dots[i] - 1f) < user.y && (dots[i] +1f) > user.y){
                       inDrop = false;
                   }
               }
    dann funktioneirt es prinzipiell.
    Ich habe mir dein Projekt mal genauer angeschaut:
    Bei der obigen Betachtung läßt du folgendes vollkommen außer Beracht:
    -wenn sich die Höhe der Linien ändert muß user.x beachtet werden, da sich ja der Boden abgängig davon in der Höhe ändert
    -für Schrägen ist zu jedem user.x Wert der user.y Wert zu ermitteln
    -zwischen zwei Frames bewegt sich der user bis zu 30 Punkte weiter, es kann also gut sein, dass er den Bereich dots(i) +/- 1 einfach überspringt.
    Ich habe mal folgenden Code getestet und er funktioniert (aber nur für den level 1 hart gecoded):
    float floor = 0;
    if (user.x <= 200) floor = 80;
    else if (user.x > 200 && user.x <= 400) floor = ((300-80)/200f * (user.x-200))+80;
    else if (user.x > 400) floor = 300 - 290/390f * (user.x-400);
    if (user.y <= floor){
       user.y = floor + 1;
       inDrop = false;
    }
    Du hast so was ähnliches ja auch schon in der Klasse hasFloor versucht, aber in der hochgeladenen Version scheint mir die Klasse nicht verwendet zu werden.

    Gruß
    Manni
  • in: 3 Datenbank Anweisungen hintereinander

    geschrieben von bandi999

    Hi,
    davy schrieb:
    Ist vielleicht hier dran was falsch?
    $datum2 = date("d.m.Y H:i");
    das hängt davon ab, welchen Typ das Datenbankfeld hat, in das du das Datum schreiben möchtest. So wie ich das sehe, sollte zumindest die Reihenfolge stimmen. Wenn du also y.d.m in der Datenbank stehen hast, macht das Fromat d.m.y Probleme.

    Gruß
    Manni
  • in: 3 Datenbank Anweisungen hintereinander

    geschrieben von bandi999

    Hi,
    mal schnell geschaut, würde ich sagen, es fehlt zumindest eine schließende runde Klammer vor der geschweiften. Ob das nun wirklich dein Problem ist kannst du ja probieren.
    Alternativ könntest du auch z.B. mal hier http://www.w3schools.com/SQl/sql_update.asp nachlesen wie du mit nur einer Anweisung auskommst.

    Gruß
    Manni
  • in: Automatisches Synchronisieren von zwei excel tabellen

    geschrieben von bandi999

    Hi,
    ich antworte mal so allgemein, wie deine Frage gestellt ist:
    Warum 2 Tabellen, wenn du sowieso im Netz bist. Nimm eine Tabelle auf dem Server, NAS oder einem Host und lasse beide Bearbeiter darauf zugreifen. Sofern gleichzeitig gearbeitet werden soll, gib die Arbeitsmappe frei.

    Gruß
    Manni
  • in: Geburtstage in bestimmten Zeitraum

    geschrieben von bandi999

    Hi,

    betrachte einfach Monat und Tag des Datums als ganze Zahl und zwar in der Wertigkeit Monat, Tag, wobei der Tag zweistellig angegeben wird. Der 15. März ist dann 315, der 7. Juni ist 607.
    Den Wert aus der Datenbank erhältst du mit EXTRACT(MONTH_DAY FROM birthdate).
    Den Wert für das Anfangsdatum erhältst du mit Feld1 + Feld2 * 100 (für das Enddatum analog). Evtl. mußt du noch den Text in eine Zahl wandeln mit z.B. intval().
    Dann kannst du schauen ob der Geburtstag im gesuchten Bereich liegt.

    Getestet habe ich es nicht ;).

    Gruß
    Manni
  • in: JUnit Tests

    geschrieben von bandi999

    Hi,
    das scheint mir eine philosophische Frage zu sein. Gedacht ist es wohl, kleine Einheiten möglichst unabhängig vom Rest zu testen, am Besten noch mit "Test First". Diese Meinung lese ich auch hier: http://de.wikipedia.org/wiki/JUnit heraus. Ich persönlich halte davon nichts, zumindest solange man alleine an einem Projekt arbeitet.
    Falls noch nicht bekannt, kannst du dir ja mal http://easymock.org/ zu Gemüte führen. Vielleicht hilft dir das weiter.

    Gruß
    Manni
  • in: Pobleme mir der darstellung im Internet Explorer

    geschrieben von bandi999

    Hi,
    maggus1992 schrieb:
    Ja genau die Ränder meine ich aber mit dem Code da werden die Flashdateien gar nicht erst angezeitgt...
    und ja ich habe den Pfad geändert :)
    nun, das ist sehr bedauerlich. Insbesondere da es bei mir auf dem lokalen XAMPP durchaus funktioniert. Mit dem Code deiner Seite habe ich die Ränder, mit dem Code von oben habe ich keine Ränder und die Darstellung im FF und IE ähneln sich sehr.
    Eventuell solltest du doch noch mal prüfen ob du beide? Pfade angepasst und den Codeschnippsel richtig übernommen hast.
    Ansonsten kannst du auch hier: http://de.selfhtml.org/html/multimedia/objekte.htm#flash noch mal nachlesen, woher meine Idee stammt.

    Nun denn, weiterhin viel Erfolg mit der Seite!
    Gruß
    Manni
  • in: Pobleme mir der darstellung im Internet Explorer

    geschrieben von bandi999

    Hi,

    leider schreibst du nicht, was genau dich noch stört. Das was mir aufgefallen ist, sind die Ränder um die Flash Objekte. Meinst du die?
    Falls ja, könntest du mal versuchen die Objekte wie folgt eingzubinden:
    <object classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0" width="620" height="300">
        <param name="movie" value="main.swf">
        <param name="scale" value="exactfit">
        <embed src="object_flash-Dateien/main.swf" quality="high" scale="exactfit" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" width="620" height="300">
    </object>
    beim anderen Object die Abmessungen und Links entsprechend anpassen.

    Mal sehen was passiert.

    Gruß
    Manni
  • in: Pobleme mir der darstellung im Internet Explorer

    geschrieben von bandi999

    Hi,
    so wie ich das sehe, wurde bei den beiden Flash Objekten rechts das schliessende
    </object>
    Tag vergessen. Falls dies nicht weiterhilft, bzw. grundsätzlich würde ich raten logisch vorgzugehen und einfach mal die beiden .swf Objekte zu entfernen, dann siehst du ja was passiert. Wird die Seite nun angezeigt, hast du das Problem gefunden, wenn nicht, dann halt das nächste Elment löschen usw.

    Gruß
    Manni
  • in: Div bewegen?

    geschrieben von bandi999

    Hi,

    sag der "JoinBox" noch, dass sie einen absolute Position hat, dann klappt es.
    style="position:absolute"

    Gruß
    Manni

    Edit:
    PS: habe ich noch vergessen: ruf die Funktion "draginit();" auch auf, du hast sie ja schon definiert ;).
    nochmal Edit:
    Hab grad gesehen, dass eigentlich alles hier http://aktuell.de.selfhtml.org/artikel/javascript/draganddrop/ steht und ziemliche Ähnlichkeit mit deinem Script hat ;).
  • in: AJAX: Webseite mit XML weitergeben

    geschrieben von bandi999

    Hi,

    wie man hier:http://de.selfhtml.org/xml/regeln/zeichen.htm nachlesen kann, haben bestimmte Zeichen in XML eine Sonderfunktion. Ich vermute mal, dass diese Zeichen die XML Seite aus der Fassung bringen. Insbesondere der Quellcode einer eingebundenen Seite enthält ja Tags und somit auch "<" und ">". Als Abhilfe könnte die Funktion htmlspecialchars dienen, wie man hier:http://php.net/manual/en/function.htmlspecialchars.php nachlesen kann. Die Sonderzeichen würden ersetzt.
    Ich habe einen Test mit
    <inhalt> <?php echo htmlspecialchars('<h2>Hallo</h2>'); ?> </inhalt>
    und
    <inhalt> <h2>Hallo</h2> </inhalt>
    gemacht. Der erste Ausdruck funktioniert, der zweite nicht.
    Ich hoffe das bringt dich weiter.

    Gruß
    Manni
  • in: Vorstellung einer Sportseite

    geschrieben von bandi999

    Hi,

    also technisch:
    +Menü gefällt mir
    +Menü Links funktionieren

    -logo_skinfit.jpg wird nicht angezeigt
    -Imprerssum fehlt
    -Links auf den Bildern laufen teilweise ins Leere

    kreativ:
    +Farben gefallen mir
    +übersichtlich
    +prima Ergebinstabelle

    -sehr werbelastig und das Geblinke stört mich
    -viel Bild wenig Info
    -Datum in Ergebnistabelle bräuchte keine eigene Spalte / Zeile

    Viel Erfolg noch beim Sport und bei der HP
    Gruß
    Manni
  • in: Rangliste berechnen

    geschrieben von bandi999

    Hi,
    eigentlich hat dir eulenpost ja schon alles geschrieben. Ich schätze mal es geht dir aber nur um den Rang, die Ein- und Augsgaben haben dich etwas verwirrt?
    Also noch mal, aus meiner Sicht ziemlich minimal. Du hast die Tabelle von eulenpost, ergänzt mit einer Spalte level. In level stehen z.B. die Werte 4, 8, 1 ,77 und daraus willst du den Rang ermitteln, also 77 ist Platz 1, 8 ist Platz 2 und dies in die Tabelle in der Spalte Rang eintragen. Ist das soweit richtig?
    Die Tabelle heißt also "rangliste" und hat jetzt die Spalten "id", "name", "level", "rang".
    Dann sollte folgender Code den Rang ermitteln und in die Tabelle eintragen. (Ich gehe davon aus, dass die Datenbank bereits geöffent ist)
    <?php
    $zaehler = 1;
    $sql = 'SELECT  *  FROM rangliste ORDER BY level DESC';
    $result = mysql_query($sql);
    while ($row = mysql_fetch_object($result)) {
        $eintrag = "UPDATE rangliste SET rang=$zaehler WHERE name=$row->name";
        $eintragen = mysql_query($eintrag);
    $zaehler++;
    }
    ?>
    Das Script dann per cronjob alle Stunde aufgerufen sollte das Gewünschte leisten. Bin ja mal gespannt :).
    Gruß
    Manni
  • in: Rangliste berechnen

    geschrieben von bandi999

    Hi,
    du kannst dir die Einträge einer Tabelle sortiert ausgeben lassen:
    SELECT Name FROM Tabelle ORDER BY Level DESC;

    Gibt dir die Liste nach Level absteigend geordnet aus (Spalten- und Tabellennamen natürlich an deine Tabelle anpassen).
    Wenn du den Rang unbedingt sütndlich in die Tablle eintragen willst, dann kannst du das Abfrageergebnis Datensatzweise durchlaufen, einen Zähler mitlaufen lassen und für jeden User den Zählerstand als Rang eintragen.

    Gruß
    Manni
  • in: mit VB6 Rechtsklickmenü von Dateien ändern

    geschrieben von bandi999

    Hi,
    ich habe mich mal mit Hilfe einer bekannten Suchmaschine im Netz für das Thema interessiert. Auch wenn du es etwas spannender machst, indem du das verwendete BS verschweigst wird es wohl für alle Systeme vom MS ähnlich sein.
    Wie du schon selbst schreibst, kannst du die gewünschten Änderungen in der Registry durchführen.
    Grundsätzliche Hinweise dazu, wo die Einträge gespeichert werden findest du hier:
    http://www.wintotal.de/Tipps/index.php?id=847
    Wie man die Registry mit VB bearbeiten kann, das ist hier nachzulesen:
    http://www.vbarchiv.net/tipps/details.php?id=155
    http://www.winhelpline.info/forum/programmierung-und-skripte/98587-vb6-registry-bearbeiten.html

    Du hast dir allerdings mit dem Eintrag "Bearbeiten" einen Sonderfall ausgesucht :).
    Dazu kann man hier etwas nachlesen:
    http://www.frankn.com/Forum/thread.php?threadid=7596
    Damit du das in der Registry nachvollziehen kannst, gebe ich dir mal ein Beispiel für eine .reg Datei:
    Dabei wird im Schlüssel "[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\regfile\shell\edit\command]" der Pfad zum Programm angegeben mit dem die .reg Datei bearbeitet werden soll. In diesem Fall für Notepad z.B. "%SystemRoot%\system32\NOTEPAD.EXE %1".
    Wie gesagt ein Sonderfall, bei dem der Registryeintrag nicht "Bearbeiten" heisst, sondern "Edit".

    Ich hoffe diese allgemeinen Antworten auf deine allgemeinen Fragen bringen dich weiter.

    Gruß
    Manni
  • in: Lauflichtmodul - Eine frage dazu

    geschrieben von bandi999

    Hi,
    freewareecke schrieb:
    ich sagte, dass ich vermute das das mit dem kondensator geregelt wird, aber ich denke ich versuche es mal.
    und ich habe geschrieben:
    Ja, C1 aber auch R1, R2, R4 und R5
    aber möglicherweise hältst du ja nichts von meinen Antworten ;).
    Ist natürlich nicht so ernst gemeint, aber so bin ich halt :).
    Ich wünsche dir viel Erfolg beim Aufbau und beglückwünsche dich zur weisen Entscheidung ein paar Cent mehr für Reservehalbleiter auszugeben.
    Auf die Erfolgsmeldung (vielleicht mit Bild?) freue ich mich auch schon.

    Gruß
    Manni
  • in: Lauflichtmodul - Eine frage dazu

    geschrieben von bandi999

    Hi,
    freewareecke schrieb:
    wie dimensioniere ich den die Diode? also wonach sollte ich mich richten?
    Also das mit der Diode nicht zu wichtig nehmen. In deinem Fall könnte ich mir vorstellen, dass es auch ohne klappt, da die Betriebsspannung ja gering ist. Ansonsten ist es sehr schwierig die Strom und Spannungsverhältnisse zu berechnen (ich kann es nicht), aber eine 1N4148 Universaldiode würde wohl reichen.
    und ich denke bei 30-50LEDs pro Lauflichtmodul wäre ein Relais besser oder meint ihr nicht?
    Wenn ich kurz überschlage 50 x 20 mA wäre das rund 1 A, das wird der Transistor nicht schaffen. Also nimm das Relais. Allerdings brauchst du natürlich auch eine Stromquelle, die 1 A liefert.
    und vll kann mir jemand verraten wie ich das mit der ein und ausschalt dauer machen kann? also es soll unterm strich kein blink blink sein, sondern eine mit einem angenehmen farbwechsel zwischen Rot, Gelb und Grün.
    Du hattest doch oben schon geschrieben, dass die Leuchtdauer von C1 abhängt. Ausschaltdauer in dem Sinne gibt es nicht, da mit dem Erlöschen der einen Lampe sofort die nächste leuchtet. Dazu sind die Module ja miteinander verbunden. Zumindest lese ich das aus der Schaltung heraus.

    Gruß
    Manni
  • in: Threadprogrammierung in Java

    geschrieben von bandi999

    Hi,
    du beschäftigst dich ja mit einem interessanten aber aus meiner Sicht schwer durchschaubarem Thema ;).
    Grundsätzlich hast du als Programmierer wenig Einfluss auf die Verwaltung von Threads bzw. Prozessen, denn da will schon das Betriebssystem bestimmen ;). Da geht übrigens der Ärger schon los, da die Begriffe Thread und Prozess nicht immer eindeutig verwendet werden.
    Ich habe mir dein Beispiel mal auf meinem T2060 unter Vista angeschaut (ist der einzige Zweikern den ich privat zur Verfügung habe) und ähnliche Ergebnisse festgestellt wie du. Ein Thread braucht 24 Sekunden (dabei laufen aber beide Kerne) zwei Threads brauchen dann etwa 43 Sekunden. Ich habe gesehen, dass Vista auch bei 2 Threads nur einen Prozess startet. Deshalb habe ich mal zwei class Dateien mit je einem Thread sofort nacheinander gestartet und dann 24 und 28 Sekunden Laufzeit gehabt. Sowohl bei zwei Threads aus einer class Datei als auch bei je einem Thread aus einer class Datei waren beide Kerne zu 100% ausgelastet. Dabei wurde die Last also eher auf die zwei Kerne verteilt. Für mich sieht es so aus, als würde die Threadverwaltung der VM einigen Overhead erzeugen, der dann die Kerne belastet. Aber das ist nur eine Vermutung.
    Nach meiner Auffassung sind die Threads auch nicht unbedingt zur Lastverteilung erfunden worden (zumindest in Java), sondern um weiterarbeiten zu können, während ein Programm beispielsweise auf Eingaben wartet.

    Mehr fällt mir dazu nicht ein, vielleicht findest du ja noch etwas mehr heraus. Ich wäre für Infos dankbar.

    Gruß
    Manni
  • in: Lauflichtmodul - Eine frage dazu

    geschrieben von bandi999

    Hi,
    ich freue mich schon richtig auf diesen Thread :).
    freewareecke schrieb:
    Der Kondensator sollte doch für die Blinkfrequenz des Lichtes sein oder vertue ich mich?
    Ja, C1 aber auch R1, R2, R4 und R5.
    Aber an sich sollte das so Funktionieren oder?
    Zumindest sehe ich bisher keine prinzipiellen Ungereimtheiten und wenn du es aus einem Buch hast, dann wird es wohl passen.
    und ich wollte statt der Lampe ein Relais nehmen, da ich mehr drüber schalten wollte und das sollte kein Problem sein oder?
    Wie schon geschrieben wurde, solltest du über eine Freilaufdiode nachdenken, da in der Spule des Relais Spannungsspitzen induziert werden können, welche dann eventuell T3 beschädigen. Und natürlich sollte das Relais für die Betriebsspannung ausgelegt sein und nicht mehr Strom ziehen als der Transistor schalten kann.
    Wie so oft der Hinweis, dass es so etwas sicherlich schon fertig integriert oder gar programmierbar gibt. Aber natürlich hat die gute, alte, diskrete Bauweise auch was für sich.

    Gruß und viel Spaß beim basteln.
    Manni
  • in: FRITZ!Box 7270 MAC-Adresse ändern

    geschrieben von bandi999

    Hi,
    amul schrieb:
    Vielleicht könntest Du das einfach auch mal ausprobieren und bestätigen, ob es bei Dir klappt.

    so nun habe ich mal getestet. Zunächst hatte ich es nicht für möglich gehalten, dass man ohne Zugriff auf das Modem die IP ändern kann, aber tatsächlich funktioniert es durch Änderung der Router MAC Adresse.
    Und dann bin ich auch schon bei deiner Frage: Mit meinem D-Link DIR-615 (derzeitiger KD Standard Router) klappt das von dir beschriebene Verfahren leider nicht (zumindest habe ich es nicht hinbekommen). Ich kann zwar eine statische IP vergeben und dann wieder auf DHCP zurückgehen, an der IP bei KD ändert dies allerdings nichts.

    Zur deiner Ausgangsfrage habe ich mich ein wenig umgesehen:
    Wie schon geschrieben wurde könnte Telnet funktionieren, was man allerdings wie auslesen bzw. ändern kann weiß ich nicht. Vielleicht hilft dir ja das hier http://wehavemorefun.de/fritzbox/index.php/Starten_von_telnetd.
    Ansonsten lassen sich mit jdownloader http://jdownloader.org/ auch Zugriffe auf den Router aufzeichnen und dann wieder abspielen. Hat bei mir mal mit einem Speedport geklappt, ist aber schon einiger Softwareversionen her ;).
    Ähnliches geht wohl auch mit einem Addon für FF und ich glaube auch für IE, davon habe ich aber nur gelesen.
    Und auch hier http://www.alexander-block.net/Beruflich/Linux/FritzBox-IP-Adresse hat sich mal jemand Gedanken gemacht, wie man auf eine FritzBox per HTML zugreifen kann. Ist leider auch nicht genau das was du suchst und unter Linux, sehe aber nicht warum es nicht auch unter Windows laufen sollte und nicht auch ausbaubar sein sollte.

    Gruß
    Manni
  • in: FRITZ!Box 7270 MAC-Adresse ändern

    geschrieben von bandi999

    Hi,
    ist zwar ein alter Thread den du da aufgewärmt hast, aber von mir aus:
    Zum Automatisieren kann ich dir konkret nichts sagen, ausser dass es sicher möglicht ist aber sicher auch reichlich Einarbeitungszeit erfordert.
    Bevor du dich aber daran machst würde ich mal prüfen, ob du mit deiner Methode auch eine neue öffentliche IP erhältst. (z.B. auf der Seite: http://www.wieistmeineip.de/). Nach meiner Meinung änderst du nur die IP zwischen dem Kabelmodem und der Fritzbox und die ist den Filehostern (ich schätze mal darum geht es dir) ziemlich egal. Deshalb habe ich auch schon den alten Thread nicht so ganz verstanden.
    Ich wünsche dir, dass ich mich täusche und du bald berichtest, dass deine Methode super funktioniert.

    Gruß
    Manni
  • in: JQuery slide - Problem

    geschrieben von bandi999

    Hi,

    wie schon geschrieben solltest du die Reihenfolge der Tags mal überdenken. Das Tag, welches zuletzt geöffnet wurde sollte dann als erstes geschlossen werde.
    Ich habe die Sache mal mit float:left umgebaut. Der folgende Code funktioniert bei mir im FF und IE8:
    <DIV style="WIDTH: 950px; MARGIN-LEFT: 300px" class=eintrag>
    <DIV style="BACKGROUND-IMAGE: url(DLT.png); PADDING-LEFT: 10px"><B><U>Eintrag 
    ins Gästebuch machen:</U></B></DIV>
    <CENTER>
    <FORM method=post name=gbookpost activate="">
    <DIV style="style: " class=eintrag 
    background-image:url(DLM.png);color:black;padding-left:10px;margin-top:10px;width:950px;text-align:left;overflow:auto;margin-left:2px;?>
    <TEXTAREA style="BACKGROUND-COLOR: #f07800; COLOR: #000000" rows=7 cols=80 name=text></TEXTAREA> 
    <BR>
    <INPUT value=abschicken type=submit> 
    <INPUT value="Textfeld Leeren" type=reset> 
    </DIV>
    <INPUT class=toggle style="float:left;" value="neuen Eintrag machen" type=button> 
    </FORM>
    </CENTER>
    <br>
    <HR style="COLOR: orange">
    <BR></DIV>
    Ob es optisch nun ganz genau so ist, wie du willst, weiß ich natürlich nicht.

    Gruß
    Manni
  • in: Einfache Transistorschaltung gibt immer Strom

    geschrieben von bandi999

    Hi,
    das-koenigreich schrieb:
    Nein, die Kontakte sind alle -wenn auch nicht sauber, da sehr oft verändert- angelötet, wie man sehr gut auf dem 2. Bild erkennen kann.
    um ehrlich zu sein kann ich das gar nicht erkennen. Ich sehe nur, dass der Anschluss auf einem Metallteil auf einer Holzplatte angelötet ist. Weitere Bauteile scheinen mir hier nicht angeschlossen, es sei denn du arbeitest unter der Holzplatte weiter.
    Habe die Wörter vertauscht. Sorry.
    für mich sieht es eher so aus, als hättest du die Anschlüsse vertauscht.
    Ja, das ist nicht nach der "nach und nach"-Schaltung, sondern die, die ganz unten ist.
    Wenn wir immer noch über die Bilder vom Eingangspost sprechen, dann hat die Schaltung im unteren Bild einen Kondensator eingebaut. Den kann ich in deiner Schaltung nicht erkennen. Genau wie eine LED bzw. wenigstens einen 330 Ohm Lastwiderstand.

    Sorry ich gebe dann mal die Hilfestellung auf. Ich komm beim besten Willen nicht drauf was du eigentlich möchtest. Ich unterstelle mal nicht, dass du mich hier ein wenig auf den Arm nehmen möchtest.
    Möglicherweise liegt es ja an mir, dass ich dich nicht richtig verstehe.

    Gruß
    Manni
  • in: Einfache Transistorschaltung gibt immer Strom

    geschrieben von bandi999

    Hi,

    täuscht es, oder du hast du die Basis des Transistors gar nicht angeschlossen? Wenn ein Beinchen in der Luft hängt ist das Potential nicht definiert und du kannst über die Schaltung eigentlich gar nichts aussagen.

    Der 27k Widerstand hängt bei dir am Kollektor und nicht an der Basis.

    Mit den Schaltbildern vom Eingangspost soll das aber nichts mehr zu tun haben, oder? Was genau hast du nun eigentlich vor? Ich hatte dich so verstanden, dass du die Schaltungen vom Eingangspost nachbauen wolltest.

    Zum Messen von Spannungen halte eine Strippe des Messgerätes an den Minuspol der Spannungsquelle, den anderen an den Messpunkt. Ich kann nicht ganz verstehen warum das nicht möglich sein sollte.

    @fatfox:
    Warum sollte das Voltmeter in einer Reihenschaltung beschädigt werden? Zumindest ist die Gefahr nicht größer wie bei jeder anderen Messung eher kleiner bis nicht vorhanden. Dass dieser Einsatz völlig sinnfrei ist, sehe ich allerdings genauso.

    Gruß
    Manni
  • in: Einfache Transistorschaltung gibt immer Strom

    geschrieben von bandi999

    Hi,
    das-koenigreich schrieb:
    Also, da, wo der Verbraucher ist, liegen die 4,5V immer an (Anschluss mit 5V). Egal, ob die Alarmschleife geschlossen, oder offen ist. Da sollten aber 0V anliegen, wenn sie geschlossen ist. Zwischen de 27k Widerstand und dem Pluspol liegen bei geöffneter Alarmschleife 0V an. Bei geschlossener 4,4V.

    Wie befürchtet geht die Verwirrung schon weiter :). Ich schätze mal die 4,5 V sind gegen Masse (=Minus) gemessen. Dann misst du die 4,4 V gegen den Pluspol. Das ist sehr unüblich. Spannungsangaben werden immer auf Masse bezogen, das erleichtert die Interpretation erheblich.
    Dann schreibst du von 5 V Betriebsspannung, wenn aber die Alarmschleife (ich schätze mal wir sprechen nun über das Schalbild links unten) geschlossen ist, dann misst du zwischen dem 27k Widerstand und Pluspol 4,4V. Wenn du die Schaltung ansiehst, misst du dann aber genau die Betriebsspannung. Ist die nun 4,4 oder 5 V¿
    Wenn du dann schreibst, dass bei geöffneter Alarmschleife 0 V über dem 27k Widerstand gemessen werden, dann bedeutet das, dass kein Basisstrom fließt und die Basis - Emitter Strecke des Transistors einen Unterbrechung hat, der Transistor also defekt ist. Das allerdings nur, wenn du den Transistor auch richtig angeschlossen hast :).

    Ok, und welche Anschlüsse soll ich mit welchen Durchmessen?

    Genau wie mit einem Diodentester jeweils zwischen Basis - Emitter und Basis - Kollektor messen. Je nach Polung sollte auf beiden Strecken mal ein Wert angezeigt werden, und bei verdrehter Polung unendlicher Widerstand gemessen werden. Zwischen Kollektor und Emitter sollte der Wiederstand, unabhängig von der Polung, unendlich sein. Da du noch "frische" Transistoren hast, kannst du ja auch mal mit denen vergleichen. Durch die Messung machst du sicherlich keinen kaputt.
    Die 4 Bauteile + Spannungsquelle machen uns ganz schön zu schaffen :), aber bleib dran!

    Gruß
    Manni
  • in: Einfache Transistorschaltung gibt immer Strom

    geschrieben von bandi999

    Hi,
    das-koenigreich schrieb:
    Auswendig weis ich aber, dass bei einem Anschluss von 4,5V mehrere Volt beim Kollektor (das ist da, wo der Verbraucher ist, oder) anliegen.

    der Kollektor ist in den von dir verlinkten Schalbildern der Anschluss, an dem der 330 Ohm Widerstand angeschlossen ist.

    Edit: Habe grad nur eine 5V Stromquelle da. Bei dieser Spannung habe ich (bei geschlossener Schleife) eine Kollektorspannung von 4,5V und eine Emitterspannung von 4,4V. Öffne ich die Alarmschleife, so fällt die Emitterspannung auf 0V, die Kollektorspannung bleibt jedoch unberührt auf 4,5V.

    Der Transistor schaltet ja offenbar. Ist dann dein Problem gelöst?
    Ansonsten wird es wieder mal schwierig ;). Wenn wir über die Schaltbilder von oben reden, dann hast du sicherlich keine 4,4 V am Emitter, da dieser direkt mit Minus verbunden ist. Am Kollektor hast du die Betriebsspannung (also 5V) wenn der Transistor gesperrt ist. Ist er voll leitend, dann sollten dort 0,1 oder 0,2 V anliegen.

    Ich empfehle dir, dir die Schaltung noch mal in Ruhe anzusehen und ggf. den Transistor zu ersetzen, wenn du keinen Diodentester hast. Evtl. kannst du den Transistor aber auch mit dem Ohmmeter prüfen, sofern dies dein Multimeter kann. Dann erst mal die Begrifflichkeiten klären (wo sind die Anschlüsse des Transistors und wie heißen sie), dann vielleicht noch den Umgang mit dem Messgerät und dann die Schaltung nach Plan aufbauen.
    Sorry soll jetzt nicht überheblich klingen, aber wenn du dich dafür interessiert hilft es halt ungemein die Grundlagen zu verstehen bevor man sich an die Schaltungspraxis macht.

    Gruß und viel Spaß und Erfolg mit Elektronik
    Manni
  • in: Einfache Transistorschaltung gibt immer Strom

    geschrieben von bandi999

    Hi,

    so wie im Schaltbild gezeichnet, zeigt die flache Seite nach links http://www.datasheetcatalog.org/datasheets/150/128424_DS.pdf.

    Prüfe den Transistor, so wie das Ersatzschaltbild (also zwei Dioden) mit dem Diodentester. Plus des Multimeters an die Basis, dann müssen zum Kollktor und zum Emitter etwa 0,4 bis 0,7 V Durchbruchspannung gemessen werden. Zum Kollektor üblicherweise minimal weniger als zum Emitter. Bei gegensätzlicher Polung wird keine Durchbruchspannung gemessen.

    Gruß
    Manni
  • in: Makro Start per tastendruck in Userform

    geschrieben von bandi999

    Hi,
    also ich hab ein wenig herumprobiert mit meinem Office XP und tatsächlich ist es mir nicht gelungen an ein Key Event eines Forms heranzukommen.
    Hier http://www.mrexcel.com/forum/showthread.php?t=56649 wird zwar empfohlen die TAB Stop Eigenschaft auf false zu setzen, hat bei mir aber nichts gebracht und auch wenn keine Controls auf dem From sind wurde das Key Ereignis nie ausgelöst.
    Google hat mir dann diese Idee gebracht:
    http://www.office-loesung.de/ftopic216405_0_0_asc.php. Habe ich jetzt nicht probiert und ist mit Zugriff auf die Windows API und einem Timer der diese alle z.B. 20 MS abfragt. Weiß also nicht ob es so funktioniert.

    Eine andere Idee hatte ich dann auch noch:
    Auf den Steuerelementen des Forms werden Key Ereignisse ausgelöst, wenn das Steuerelement den Focus hat. Eines der Elemente hat normalerweise immer den Focus, also einfach für jedes Element das Ereignis abfangen und das Makro aufrufen. Hat bei mir funktioniert mit CommandButton und TextField. Mehr habe ich nicht getestet.
    Also im Form dann:
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As _
        MSForms.ReturnInteger)
          Makro1 KeyAscii
    End Sub
    
    Private Sub CommandButton1_KeyPress(ByVal KeyAscii As _
        MSForms.ReturnInteger)
          Makro1 KeyAscii
    End Sub
    und im Makro dann
    Sub Makro1(KeyAscii)
     MsgBox ("Taste " & KeyAscii.Value)
    End Sub
    Kombinationen mit Strg und Alt haben so nicht funktioniert, aber das wolltest du ja auch nicht.
    Ich hoffe es bringt dir was.

    Gruß
    Manni
  • in: Dekompilierung + Strings

    geschrieben von bandi999

    Hi,

    einen "Schutz" gegen das Decompilieren und somit auch gegen das einfache PW Auslesen bietet auch das Komprimieren der ausführbaren Binärdatei. Natürlich auch nur eine kleine Hürde aber relativ leicht anzuwenden und somit vielleicht in Kombination mit anderen Maßnahmen auch für deine Zwecke sinnvoll. Zumindest der HEX Editor und Strings tun sich dann sehr schwer ;).
    Verbreitet ist UPX http://de.wikipedia.org/wiki/UPX und bietet entsprechend auch wenig Schutz, da es in den "bösen" Tools evtl. schon eingebaut ist.
    Sofern du auf Windows arbeitest gibt es auch ein paar Exoten http://de.wikipedia.org/wiki/Kompression_ausf%C3%BChrbarer_Programmdateien die dann nicht jeder Debugger sofort erkennt.

    Gruß
    Manni
  • in: Bild bewegen?

    geschrieben von bandi999

    Hi,

    warum machst du es nicht so wie im oberen Teil und verwendest else if?
    else if(b<300)
    {
       b++;
       meinbild.style.top=b;
       window.setTimeout ('bewegen()', 1.5);
    }

    Gruß
    Manni
  • in: Transistor als schalter

    geschrieben von bandi999

    Hi,
    freewareecke schrieb:
    ich hab gerade mal die schaltung experimentel aufgebaut und getestet und an sich ist es super. also es funktioniert fast so wie es soll. also der vorwiderstand für die rote LED (LED 2) ist zu hoch, also die leuchtet nicht voll und kräftig. hab einfach ein 68ohm ggenommen weil ich den gerade zur hand hatte und es ist so wie es sein sollte.

    also das scheint mir doch ein wenig komisch, dass der Widerstand so klein werden muss. Hast du ein Multimeter, dann schau mal ob T2 überhaupt voll durchschaltet indem du die Spannung am Kollektor misst. Es sollte um die 0,1 Volt sein. Das könnte das Problem sein, dass nicht genügend Basisstrom durch die gesperrte LED fließt. Evtl. hilft hier tatsächlich ein kleinerer Basiswiderstand. Vielleicht stimmt die Stromverstärkung des Transistors (also die 40) doch nicht. Dann wären die Widerstände halb so groß.

    und den signalkontakt (basis kontakt des Transistors T1) muss man hinter der grünen LED (LED 1) halten, also an die kathode damit die LED2 aus geht und die LED 1 angeht. Halte ich den kontakt an die Anode der LED 1 geht zwar LED 2 aus, aber LED 1 nicht an.

    Das kann ich irgendwie nicht so recht glauben. Es scheint mit nicht logisch. Hast du evtl. einen kleinen Wurm in der fliegenden Verdrahtung?

    und naja das ist noch ein kleines problem, den das sollte ja nicht so funktionieren, das ich hinter die LED 1 abgreife, sondern vor der LED 1 also das ich die 5V im ganzen auf die Basis gebe.

    Ja so war es auch von mir gedacht. Am Signaleingang sollten 5V oder 0V anliegen.

    meine idee ist, kann es sein, dass die basiswiderstände doch etwas zu groß sind?

    Probier es aus, dann siehst du was passiert. Solange du im kOhm Bereich bleibst sollte nichts durchbrennen ;).
    Die Betriebsspannung ist schon 5 V oder?

    und das andere problem ist, dass ich 2 LEDs nehmen muss und keine Duo LED mit gemeinsamer kathode. Also 2 Anoden und eine Kathode. Gibts dafür vielleicht noch eine Idee?

    Das ist natürlich einen neue Info und jetzt weiß ich auch warum du deinen ursprünglichen Schaltungen so entworfen hast wie sie sind. Ideal wäre halt ein PNP Transistor aber das willst du ja nicht.
    Ich hänge dir mal eine "brutale" Lösung ran. Brutal, weil immer Strom fließ, auch wenn die LED aus ist.
    http://bandi999.lima-city.de/output1.png

    PS2: ich hab die verbindung mit einem zusätzlichen darht zwischen widerstand von basis t1 und LED kathode

    Das bedeutet du hast die LED und BE des Transistors in Reihe geschaltet, ohne den Strom zu begrenzen. Eigentlich sollte das nicht lange gut gehen, es sei denn die Betriebsspannung geht in die Knie. Sehr komisch was du da alles erzählst.
    Mal ne andere Frage: Du bist dir schon sicher mit den Anschlüssen des Transistors, oder?
    Ansonsten halt schrittweise Fehlersuche: den zweiten Transistor abklemmen und im ersten Zweig messen bei Eingangsspannung 0V und 5V usw., je nach Ergebnis der Messung.

    Gruß
    Manni
  • in: Transistor als schalter

    geschrieben von bandi999

    Hi,
    freewareecke schrieb:
    du hast aber nur nen anderen transistor benutzt. ich hab ja den bc 337 und nicht den transistor bc 237. oder sind die vom aufbau und so gleich? den neue transistoren wollte ich nich unbedingt kaufen wenn ich diese noch zu haus habe.

    sorry ich habe nur falsch beschriftet. Die Werte habe ich schon aus dem Datenblatt vom BC 337.

    PS: vorallem wie kommst du bei LED Vorwiderstand auf 180Ohm? weil 150Ohm tuts doch auch? zumindest nach meiner Rechnung von 3V die Abfallen müssen bei 20mA. Den Rot, Gelb und Grün Leuchten ja auch bei 2V und 20mA. Gut eigentlich sind leichte unterschiede bei den verschiedenen Farben der LEDs aber mein Dad meinte schon früher wo ich mit elektronik bischen rumgespielt habe, dass man dies eigentlch ruhig vernachlässigen kann ohne Probleme.

    Genau so sehe ich das auch, also 150 oder 180 Ohm, was du halt grad zur Hand hast. Ich bin von 1,5 V am LED ausgegangen, aber das hängt ja nun davon ab welches Bauteil du konkret verwendest. Hier mal irgendwelche Kennlinien von irgendeinem Hersteller http://www.nullohm.de/berichte/gifs/led_kennlinie.jpg.
    Insgesamt sollte es ja nur der Weg sein, wie ich es machen würde. Ganz sicher bin ich mir auch nicht, ob der Basisstrom für den 2. Transistor duch die gesperrte LED ausreicht, aber das wirst du ja evtl. sehen :).

    @fatfox: tiny cad

    Gruß
    Manni
  • in: Transistor als schalter

    geschrieben von bandi999

    Hi,
    du machst es mir aber auch nicht leicht ;).
    Also Skizze findest du unter http://bandi999.lima-city.de/output.png.
    Im Emitterkreis (Tansistoranschluss mit dem Pfeil) findet man normalerweise nur Widerstände zur Stabilisierung der Schaltung. Hängt die Last im Emitterkreis, so steigt mit steigendem Kollektorstrom ja auch U E, was die Stromverstärkung des Transistors kompensiert. Beim Einsatz als Schalter, der ja nur 0 oder 1 kennt, also denkbar ungünstig.

    Wäre interssant ob es funktioniert, da auch ich schon eine ganze Zeit nichts mehr mit Elektronik zu tun habe.

    Gruß
    Manni
  • in: Transistor als schalter

    geschrieben von bandi999

    Hi,
    also mit deiner Schaltung wirst du nur wenig Freude haben. Die obere LED wird ständig leuchten. Bei der unteren wird die Berechnung etwas schwieriger, da die Last im Emitterkreis hängt, was eher ungünstig ist. Aus meiner Sicht kommst du um 2 Transistoren nicht herum.
    Ich würde so vorgehen:
    Im Kollektorkreis des ersten Transistors die LED und den Vorwiderstand, den Emitter des Transistors auf Masse. Mal angenommen du brauchst für die LED 20 mA und hast eine Betriebsspannung von 12 Volt, dann fallen am Vorwiderstand 12 V (UB) - 1,5 (LED) - 0,1 V (UCE am Transistor aus Datenblatt) = 10,4 V. R = U / I also 10,4V / 20 mA = 520 Ohm. In der Bastelkiste finden wir 560 Ohm. Die Leistung P = U * I also 10,4 V * 20 mA = 208 mW < 1/4 W kann unser Widerstand mit ziemlicher Sicherheit hab. Passt!
    Nun schaue ich im Datenblatt nach der Stromverstärkung hFE. Beim BC 237 ohne Zusatz finde ich 100 bis 250. Ich gehe auf Nummer sicher und nehme 100.Für den Basisstrom gilt dann: IB = IC / 100 = 20 mA / 100 = 0,2 mA. Ebenfalls aus dem Datenblatt oder aus Allgemeinwissen weiß ich: UBE = 0,7 V. Nun muss ich wissen mit welcher Spannung der Transistor angesteuert wird. Da du vom µC schreibst, tippe ich mal auf 5 V. Am Basiswiderstand müssen also 5 V - UBE = 5 V - 0, = 4,3 V abfallen. R = U / I = 4,3 V / 0,2 mA = 21,5 KOhm. In der Bastelkiste finde ich 22 kOhm und mache mir über die Leistung keine Gedanken. Nun kann der Lötkolben angeheizt werden :).
    Für die zweite LED klemme ich den Treibertransistor an den Kollektor des ersten, da ist die Spannung gerade invertiert. Für die Schaltung stelle ich die gleichen Überlegungen an, passe aber auf, da die Ansteuerspannung jetzt nicht 5 sondern 12 V ist.

    Übrigens gibt es auch fertige IC’s für die Ansteuerung und ggf. noch Inverter dazu ;).

    Ohne Gewähr und gut löt!
    Manni

    Edit: Meine Ausführungen beziehen sich auf das erste Schaltbild von dir, da du mittlerweile ein zweites gepostet hast. Evtl. solltest du dir noch mal den Unterschied zwischen NPN und PNP Transistor klarmachen. Könnte es sein, dass nicht 4D, sondern 40 auf dem Transistor steht? Dann wäre die Stromverstärkung nicht 100, sondern 250 und der Vorwiderstand enstprechend 2,5 mal so groß. Aber du solltest eh noch mal nachrechnen.
  • in: Matrizen Parallelprojektion

    geschrieben von bandi999

    Hi,
    eine mathematische Herleitung kann ich dir auch nicht bieten, aber vielleicht eine vorstellbare ;).
    Zuerst überlege ich mir, was eigentlich gemacht wird:
    1.) Ein Punkt im Raum "wirft einen Schatten auf eine Ebene"
    2.) Die "Lichtstrahlen" laufen parallel, v gibt die Richtung der Lichtstrahlen an
    3.) Ich soll ausgehend vom den Koordinaten des Punktes den Schattenpunkt auf der Ebene berechnen
    4.) Die Multiplikation funktioniert so:
    Formel: \begin{pmatrix} b_1_1 & b_1_2 & b_1_3 \\ b_2_1 & b_2_2 & b_2_3 \\ b_3_1 & b_3_2 & b_3_3 \end{pmatrix} * \begin{pmatrix} a_1 \\ a_2 \\ a_3 \end{pmatrix} = \begin{pmatrix} a_1 * b_1_1 + a_2 * b_1_2  + a_3 * b_1_3 \\ a_1 * b_2_1 + a_2 * b_2_2  + a_3 * b_2_3 \\ a_1 * b_3_1 + a_2 * b_3_2  + a_3 * b_3_3 \end{pmatrix}

    Wenn du nun deine Matrix ansiehst, dann erkennst du, dass die z - Komponente (die dritte) des Schattenpunktes immer null ist. Das ist auch gut so, denn der Schatten liegt ja auf der xy Ebene und für alle Punkte auf dieser Ebene ist z = 0;
    Nehmen wir nun an du stehst auf dem Äquator, die Sonne ist direkt über dir. Dann sind die Lichtstrahlen parallel, dein Kopf ist ein Punkt im Raum und die Erdoberfläche ist eine Ebene. Dann haben wir die X Koordinaten entlang des Äquators, die Y Koordinaten sind in Richtung der Längengrade und Z läuft in Richtung Sonne.
    Somit ist v
    Formel: \begin{pmatrix} 0 \\ 0 \\ -1 \end{pmatrix}, wobei die z Komponente negativ ist, weil die Strahlen zur Ebene hin laufen. Für -1 kann jede andere negative Zahl stehen, da es nur um die Richtung geht. Deine Abbildungsmatrix sieht nun so aus:
    Formel: \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{pmatrix}, das bedeutet x und y Koordinaten des Schattens sind die gleichen wie die deines Kopfes, z wird allerdings 0, denn der Schatten ist ja nicht auf deinem Hals, sondern auf der Ebene (Erdoberfläche) ;).
    Nun gut, die Zeit vergeht, du machst ein Nickerchen und die Sonne wandert entlang des Äquators weiter. Ein paar Stunden später stellst du dich wieder an den gleichen Punkt. Die Sonnenstrahlen kommen nun im Winkel von 45° entlang des Äquators. Somit ist v
    Formel: \begin{pmatrix} 1 \\ 0 \\ -1 \end{pmatrix}, und nun befindet sich der Schatten deines Kopfes auf dem Schatten deines Halses nicht mehr unter sondern neben dir. Hmm. aber wo ist der Schatten nun genau? Mathematisch hat sich also nicht nur die Z Koordinate, sondern auch die X Koordinate geändert. Aber um wie viel? Genau das bestimmt der Faktor -v1/v3 in der Abbildungsmatrix. Es ist also wichtig wie lange du geschlafen hast, ääh ich meine wie weit die Sonne entlang der X Achse (Äquator) gewandert ist und somit wie schräg die Lichtstrahlen einfallen. Genau dies sagt aber v aus und für die X Richtung ist es eben -v1/v3. Wie bereits erwähnt kommt das Minus daher, das die Richtung der Strahlen auf die Ebene zu erfolgt. Für die Berechnung ist es dann egal ob der Richtungsvektor vor oder hinter der Ebene liegt, für mein Beispiel ist es schon eher wichtig ;). Nun weißt du auch warum v3 nicht 0 sein darf? Klar weil teilen durch 0 verboten ist, aber ich meine in meinem Beispiel? Wäre v3 gleich 0, dann wären die Sonnenstrahlen genau parallel zur Erdoberfläche, wo sollte dann der Schatten sein. Das geht nicht.
    Das was ich beschrieben habe gilt natürlich auch für die Y Richtung. Wenn die Sonne sich also nicht nur gerade entlang des Äquators bewegt. Aber das kannst du ja jetzt sicher selbst nachvollziehen.

    Ich hoffe meine Darstellung ist nachvollziehbar, denn ich habe mir wirklich Mühe gegeben.
    Gruß
    Manni
  • in: Studentenversion von Windows 7 kostenlos?

    geschrieben von bandi999

    Hi,

    evtl. kann man Windows über die Uni beziehen.
    Was ich kenn ist ein "upgrade" für 35 EUR http://www.microsoft.com/germany/windows/offers/windows-7-student-upgrade.aspx, sofern du die Voraussetzungen erfüllst.

    Gruß
    Manni
  • in: Gummiball Algorithmus

    geschrieben von bandi999

    Hi,
    knoi schrieb:
    ähm,..also beschleungigung ist ja abhängig von masse ^^ und dadurch wird die Geschwindigkeit auch beeinträchtigt?!
    oda nich?

    Die Erdbeschleunigung g ist immer gleich (gleicher Abstand vom Erdmittelpunkt vorausgesetzt). Unterschiede in der Fallgeschindigkeit (z.B. Bleikugel / Feder) werden durch die Luftreibung verursacht.

    Über den hüpfenden Ball hat man sich z.B. hier: http://www.schulphysik.de/java/physlet/applets/hops.html schon reichlich Gedanken gemacht. Die Applets gibt es auch zum Download.
    Vielleicht hilft es ja weiter.

    Gruß
    Manni


  • in: Fehler: search ist keine Funktion

    geschrieben von bandi999

    Hi,

    sorry aber da kann ich dir nun nicht ganz folgen.
    Wer gibt wo 53 bei welcher Eingabe aus? ;).

    Eventuell etws mehr Code oder gar ein Beispiel könnten weiterhelfen.

    Gruß
    Manni
  • in: [java] jbrowser fertig und 2 fragen

    geschrieben von bandi999

    Hi,

    was genau hast du vor?

    Du hast ein Archiv JBrowser.jar hochgeladen. Darin sind (ähnlich wie beim ZIP) zwei Class Dateien enthalten, nämlich: JBrowser.class und LoadingWebPageToJEditorPane.class.
    Der JBrowser funktioniert und es wird die Seite "http://www.unserkiss.lima-city.de/index.php" angezeigt.
    Was möchtest du damit erreichen, das alles auf den Server zur laden? Wenn du ein Applet haben willst, dann mußt du die Klasse Applet erweitern. Die JavaInsel hast du ja, da stehen tolle Beispiele drin.
    Wolltest du den Browser als Applet ausführen? Das ist dann nicht so einfach und du wirst dich noch etwas einarbeiten müssen.

    Gruß
    Manni
  • in: Script fehler

    geschrieben von bandi999

    Hi,

    also das undefined kommt von der Variable page, welche du undefiniert erstellst:
    var  page
    (den Strichpunkt nicht vergessen ;) ).
    Mit z.B.
    var page = "";
    sollte das undefined verschwinden.

    Was du weglassen kannst, das hängt davon ab was du eigentlich haben willst. Wenn du wirklich nur die Ausgabe möchtest, die du beschreibst, dann hier mal eine Kurzversion des Scripts:

    <script language="JavaScript">
    <!--
    
    bYear   = 1999;  // Start Jahr
    bMonth = 10;  // Start Monat
    bDay    = 5;  // Start Tag
    strMonth = "Oktober";  // Start Monat als String
    bRest = 26; // Resttage des Startmonats
    today = new Date();
    tYear    =  today.getFullYear();
    tMonth  =   today.getMonth() + 1 ;
    tDay     =  today.getDate();
    tHour    =  today.getHours();
    
    diffYear = tYear - bYear;
    diffMonth = tMonth - bMonth;
    diffDay = tDay - bDay;
    if (diffDay < 0) {
    	 if (diffMonth > 0) {
    		 diffMonth --; 
    	 }
    	 else {
    	 	 diffMonth += 11;
    	   diffYear --;
    	 }
    	 diffDay = bRest + tDay
    };	
    
    if (diffMonth < 0) {
      	 diffYear --;
    		 diffMonth += 11;
    };	
    
    var page = "Diese Seite ist seit dem  <b>"+bDay+". "+strMonth+" "+bYear+"</b> im Netz<br>"
    page += "Also genau <b>" + diffYear;
    page += (diffYear == 1) ? " Jahr, ": " Jahre, ";
    page += diffMonth;
    page += (diffMonth == 1) ? " Monat ": " Monate ";
    page += "und " + diffDay;
    page += (diffDay == 1) ? " Tag.": " Tage.";
    
    document.write(page);
    // -->
    </script>


    Ein anderer Ansatz unter Berücksichtigung von Schaltjahren wäre dann auch noch dieser:
    <script language="JavaScript">
    <!--
    
    function schaltjahr(jahr){
    	return jahr%4 == 0 && (jahr%100 != 0 || jahr%400 == 0);
    }
    
    function monatstage(date){
    	normTage = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
    	schaltTage = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
      return schaltjahr(date.getFullYear()) ? schaltTage[(date.getMonth()+1)%12] : normTage[(date.getMonth()+1)%12];
    }
    
    bYear   = 1999;  // Start Jahr
    bMonth = 10;  // Start Monat
    bDay    = 5;  // Start Tag
    strMonth = "Oktober";  // Start Monat als String
    today = new Date();
    msecDay = 24 * 3600 * 1000;
    jsMonth = bMonth -1;
    bDate = new Date(bYear, jsMonth, bDay);
    
    diffMonth = 0;
    while (bDate.getTime() <= today.getTime()) {
    	jsMonth++;
    	diffMonth ++;
    	bDate = (bDay > monatstage(bDate)) ? new Date(bYear + Math.floor(jsMonth / 12), jsMonth % 12, monatstage(bDate)) : new Date(bYear + Math.floor(jsMonth / 12), jsMonth % 12, bDay);
    }
    diffMonth--;
    jsMonth--;
    bDate = (bDay > monatstage(bDate)) ? new Date(bYear + Math.floor(jsMonth / 12), jsMonth % 12, monatstage(bDate)) : new Date(bYear + Math.floor(jsMonth / 12), jsMonth % 12, bDay);
    
    diffDay = Math.floor((today.getTime() - bDate.getTime()) / msecDay);
    diffYear = Math.floor(diffMonth / 12);
    diffMonth = diffMonth % 12;
    
    var page = "Diese Seite ist seit dem  <b>"+bDay+". "+strMonth+" "+bYear+"</b> im Netz<br>"
    page += "Also genau <b>" + diffYear;
    page += (diffYear == 1) ? " Jahr, ": " Jahre, ";
    page += diffMonth;
    page += (diffMonth == 1) ? " Monat ": " Monate ";
    page += "und " + diffDay;
    page += (diffDay == 1) ? " Tag.": " Tage.";
    
    document.write(page);
    // -->
    </script>


    Gruß
    Manni

    Edit: Fehler im ersten Script beseitigt, zweites Script eränzt.
  • in: Fehler: search ist keine Funktion

    geschrieben von bandi999

    Hi,

    nun , eigentlich ist es so, wie es angezeigt wird:

    Mit
    var links = document.getElementsByTagName('a');
    erhältst du ein Array aus Knoten (Nodes). Auf einem Node ist die Funktion search nicht definiert.
    Ich vermute mal du willst im href Attribut des Knotens a suchen. Somit sollte z.B.
    var q = links[i].href.search(mySearchExpression);
    das geschilderte Problem lösen, da der Attributwert von href einen String liefert, auf dem dann die search Funktion definiert ist.

    Da ich dein Vorhaben nicht im Detail durchschaue bin ich ausdrücklich nur auf deine Frage eingegangen und nicht auf eventuelle andere Unwegsamkeiten, auf die du noch stossen könntest ;).

    Gruß
    Manni



  • in: Javascript-JA/NEIN Dialog

    geschrieben von bandi999

    Hi,

    wie schon erwähnt gibt es keine JavaScript eigene Funktion für deinen Wunsch.

    Falls du unbedingt Ja/Nein haben willst, kannst du neben einer Eigenkonstruktion aber z.B. auf auf jQuery zurückgreifen:
    http://jqueryui.com/demos/dialog/
    Das sieht zwar etwas anders aus als der JavaScript Dialog ist aber weitgehend frei gestaltbar. Erfordert halt eine gewisse Einarbeitung in die Materie und die relaiv große jQuery Bibliothek.

    Gruß
    Manni
  • in: Apache Server-Header ändern

    geschrieben von bandi999

    Hi,
    deutscher schrieb:
    Auf beiden diesen Seiten steht, dass Server über die Direktive Header nicht geändert werden kann.

    Ich dachte nur, dass es eine funktionierende Alternative zum neu kompilieren gibt, da ich nicht davon ausgegangen bin, dass lima Apache selbst kompiliert hat.

    Sorry, da hatte ich nicht genau genug gelesen, wobei die Aussage ja auch eindeutig ist ;).

    Als Idee hätte ich noch, dass die Sache etwas mit virtuellen Hosts zu tun hat. Vielleicht kannst du ja damit mehr anfangen, als mit meiner ersten Antwort.

    Gruß
    Manni
  • in: Apache Server-Header ändern

    geschrieben von bandi999

    Hi,

    nun hast du ja schon reichlich Infos, wobei mancher Link wohl etwas überholt sein könnte ;).
    Hier noch das, was ich gefunden habe:
    http://buecher.lingoworld.de/apache2/showdir.php?id=557&o=mod
    http://httpd.apache.org/docs/2.2/mod/mod_headers.html#examples

    btw: Wenn du auf einer User Domain einen Fehler produzierst, enhält die Fehlerseite noch einen kleinen Hinweis auf Apache.

    Gruß und viel Erfolg bei der Namensgebung
    Manni
  • in: Excel Problem

    geschrieben von bandi999

    Hi,

    ist in der Tat schwierig nachzuvollziehen was genau du gemacht hast und was du willst. Im ersten Post willt du in jede 5. Zeile schreiben, dann aber jeweils in die nächste ...

    Mein Tipp aus der Kristallkugel wäre: ShowDataForm

    (ist nichts anderes als Daten > Maske in der Menüzeile.
    Da sollte alles drin sein, für eine Excel Tabelle als Datenbank.

    Gruß
    Manni

  • in: Ajajx übertragungs frage

    geschrieben von bandi999

    Hi,
    goldschau schrieb:
    Aber eigentlich wird doch die uid und die postion gleichzeitig über dne code hier übertragen oder? :
    .....
    Oder sehe ich das jetzt falsch weil mir doch eigl damit ausgegeben wird das alles empfangen wurde??
    Es spricht eigl nix dagegen die uid mit ran zu hängen ich weiss aber nicht so recht wie.

    Du siehst das richtig, ich habe den Thread wohl nicht aufmerksam genug gelesen und nicht geshen, dass dieses Problem schon gelöst ist. Vergiss das was ich mit dem String gesagt habe, so wie du es gemacht hast, mit zwei Feldern, ist es ohnehin sauberer.
    Du solltest dir mal genau überlegen was du nun an den Server in der Variablen $_POST übergibst. Du hast zwei Felder, die uid als Zahl und positions als String, das wars. Du mußt dann die Infos so aufbereiten, dass du sie in die DB eintragen kannst. Ich habe das mal gemacht und mich soweit es ging an deinem Code orientiert. So wie ich das verstanden habe, hast du in der Datenban für jede UID 3 Zeilen mit name1, name2 und name3. Ich bin mir aber nicht ganz sicher ob du das wirklich willst. Aber egal, hier mal dein Code mit meinen Kommentaren:
    <?php
    	$verbindung = mysql_connect("", "" , "")
    	or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    	mysql_select_db("deine_startseite") or die ("Datenbank konnte nicht ausgewählt werden");
    	$varqty=count($_POST); // Du weißt bereits, dass du zwei Variablen nämlich uid und positions übergibst
        $varnames=array_keys($_POST); // Du weißt bereits, dass die zwei Variablen uid und positions heißen
        $varvalues=array_values($_POST);// Bringt eigentlich keinen Vorteil die Werte zu kopieren, stehen doch schon in $_Post
    	$uid=$_POST[uid];
    	$uid=(int)$uid;
    	echo"id=$uid";  //eigentlich sinnlos
    	if ($uid. "=".$_POST[uid])  //eigentlich sinnlos
    	{echo"ok|";}	
    	for($i=0;$i<$varqty;$i++){  // Du mußst nur einen String, nämlich positions exploden und die dann gewonnenen Werte in die Tabelle eintragen
    	$semivalue = explode("|", $varvalues[$i]);  // We break it when  ‘|’ is found and saves it in $semivalur
    	$test="`userid`='".$uid."'";
    	$test2="`header`='".$varnames[$i]."'";	
        $up=mysql_query("UPDATE layouts SET `column`='$semivalue[0]' WHERE $test AND $test2"); // Saves each portlet column belongness
        $up2=mysql_query("UPDATE layouts SET `yindex`='$semivalue[1]' WHERE $test AND $test2"); // Den yindex hast du ja einfach nur hochgezählt, brauchstdu also gar nicht auswerten
    	}
    ?>

    und hier der Code, so umgegaut wie ich es verstanden habe und soweit möglich getestet. Die echos habe ich zum Verständins drin gelassen:
    <?php
    	$verbindung = mysql_connect("", "" , "")
    	or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    	mysql_select_db("deine_startseite") or die ("Datenbank konnte nicht ausgewählt werden");
    
    	$uid=$_POST[uid];
    	$uid=(int)$uid;
    	$semivalue = explode("|", $_POST['positions']);
      echo "<br>";
    	print_r($semivalue);
    	echo "<br>";
      echo count($semivalue);
      echo "<br>";
    	for($i=1;$i < count($semivalue);$i++){  // Du mußst nur einen String, nämlich positions exploden 
    	$test="`userid`='".$uid."'";
      $keyval= explode("=",$semivalue[$i-1]);
      print_r ($keyval);
      echo "<br>";
    	$test2="`header`='".substr($keyval[0],strlen($keyval[0])-5)."'";
      echo "UPDATE layouts SET `column`='$keyval[1]' WHERE $test AND $test2"; 
      echo "<br>";
      echo "UPDATE layouts SET `yindex`='$i' WHERE $test AND $test2"; 
      $up=mysql_query("UPDATE layouts SET `column`='$keyval[1]' WHERE $test AND $test2"); // Saves each portlet column belongness
      $up2=mysql_query("UPDATE layouts SET `yindex`='$i' WHERE $test AND $test2"); // Saves each portlet ?yindex?
    	}
    ?>


    Wie gesagt, evtl. solltest du deine DB Struktur noch mal überdenken.

    Gruß
    Manni
  • in: Ajajx übertragungs frage

    geschrieben von bandi999

    Hi,

    goldschau schrieb:
    Jetzt empfang ich zwar auf savelayout.php die uid aber iwie nicht richtig nachdem ich mich ein bisschen mit ajax bzw deren übertragung und js beschäftigt habe bin ich dazu gekommen das der Fehler eventl im ajax/js liegt und zwar glaube ich das die beiden variablen positions und uid nacheinader übergeben werden und ds es deshalb nicht möglich ist in der savelayout beide gleichzeitig zu empfangen ich habe absolut keine ahnung woran es dann liegen könnte ...

    ich vermute damit hast du zumindest ein Problem schon lokalisiert. Beim jedem Seitenaufruf wird die Variable POST neu gesetzt und somit hast du entweder positions oder uid zur Verfügung. Spricht etwas dagegen, die uid an den positions - String anzuhängen und dann eben nur einmal savelayout.php aufzurufen?
    Auf Serverseite mußt du den String halt dann wieder entsprechend zerlegen.

    Gruß
    Manni
  • in: Eclipse startet nicht?

    geschrieben von bandi999

    Hi,

    ein Versuch wäre auch die Option -clean etweder über die Kommandozeile oder über eine Verknüpfung auf die exe mitzugeben.
    Ansonsten habe ich den Verdacht, dass es sich nicht um eine saubere Eclipse Version handelt, denn die begrüßt dich ja mit dem Willkommensbildschirm. Hast du evtl. alle möglcihen Dateien vom alten Laptop kopiert? Evtl. hast du Dateien aus der Workbench oder Plugins übernommen? Lade dir in diesem Fall mal eine Version aus dem Netz und versuche es damit. Deine Projekte kannst du ja dann auch noch ex- bzw. importieren.

    Gruß
    Manni
  • in: Fenster mit Javscript öffnen geht nicht! =(

    geschrieben von bandi999

    Hi,

    unrealproductions schrieb:
    Problem: es öffnet sich der Link, jedoch in keinem separaten Fenster mit der Größe 500x450.
    Was habe ich da falsch gemacht? Liegt es an der Einbindung in PHP, was muss da eventuell beachtet werden?


    wie SELFHTML hier http://de.selfhtml.org/javascript/objekte/window.htm#open verrät, verhindert ein "return false", dass der Link im selben Fenster geöffnet wird. Mit dem Tipp von nikic sollte die Welt dann für dich in Ordnung sein. Falls nicht, würde ich einfach mal das Beispiel aus Selfhtml in den eigenen Code kopieren und anpassen.

    Gruß
    Manni
  • in: Eclipse springt beim Debugging in falsche Datei

    geschrieben von bandi999

    Hi,

    sweetflake schrieb:
    Vermutlich wurden also Projektinformationen mit der Datei mit kopiert. Ich weiss allerdings nun nicht, wie ich das Problem beheben kann.


    halte ich für unwahrscheinlich, wenn du nur die .jsp Datei kopiert hast.
    Ich vermute du startest den Debugger mit der Launch Konfiguration vom alten Projekt, könnte das sein?

    Gruß
    Manni
  • in: VBProgramm im hintergrund verschwinden lassen

    geschrieben von bandi999

    Hi,

    wie mir GOOGLE und das hier http://www.vbarchiv.net/tipps/details.php?id=243 verrät sollte es mit der Eigenschaft "ShowInTaskbar" und der Funktion ME.hide funktionieren.
    Habe ich allerdings nicht getestet, aber hier http://www.wer-weiss-was.de/theme9/article235102.html wird auch die Meinung vertreten, dass es mit "hide" funktioniert.

    Alternativ könntest du das Programm auch als Dienst laufen lassen, wie es auf dieser Seite beschrieben wird: http://www.vbarchiv.net/workshop/details.php?id=43.
    Ebenfalls nicht von mir getestet.

    Edit:
    Vielleicht hilft auch "TaskVisible":
    http://forum.chip.de/basic/programm-taskmanager-verstecken-815002-page2.html

    Gruß
    Manni
  • in: mysql_fetch_object() Fehler

    geschrieben von bandi999

    Hi,

    ich tippe mal du hast die Variable "$tabelle" nicht oder nicht richtig initialisiert.
    Lass sie doch einfach mal per echo anzeigen.

    Gruß
    Manni
  • in: Hilfe: Email mit VB aus Outlook automatisch speichern

    geschrieben von bandi999

    Hi,

    also in Anlehnung an das was du bereits hast und mit Hilfe von:
    http://www.cpearson.com/excel/OnTime.aspx
    habe ich es mal versucht.
    Mein Outlook VBA bietet leider nicht die Funktion onTime, so dass ich auf die Variante mit dem Windows Timer zurückgreifen musste.
    Zum Testen empfehle ich dir die Makro-Sicherheit auf Mittel zu stellen, damit du auch mal ohne Makro starten kannst ;).
    Es werden im Zeitintervall von 1 Minute gnadenlos alles Mails im Posteingang als .txt geschrieben. Das kannst du natürlich noch filtern oder optimieren. Irgendwie habe ich auch bei der ganzen Konstruktion Magenschmerzen, aber ich weiß nichts besseres. Wenn eine Mail nach dem letzten Timerintervall und vor dem Schliessen von OL eingeht, dann wird sie natürlich nicht geschrieben.

    Also unter "DieseOutlookSitzung" habe ich diesen Code:
    Option Explicit
    
    Private Sub Application_Startup()
      MsgBox ("Der Email-Filter wurde erfolgreich aktiviert")
      StartTimer
    End Sub
    
    Private Sub Application_Quit()
      EndTimer
    End Sub


    Und in einem Standardmodul (unter Module :)) steht dann dies:
    Option Explicit
    Public Items As Outlook.Items
    Public oMail As Outlook.MailItem
    
    Public Declare Function SetTimer Lib "user32" ( _
        ByVal HWnd As Long, _
        ByVal nIDEvent As Long, _
        ByVal uElapse As Long, _
        ByVal lpTimerFunc As Long) As Long
    
    Public Declare Function KillTimer Lib "user32" ( _
        ByVal HWnd As Long, _
        ByVal nIDEvent As Long) As Long
        
    Public Const sPath As String = "C:\post\"
    Public TimerID As Long
    Public TimerSeconds As Single
    
    Sub StartTimer()
      TimerSeconds = 60  ' how often to "pop" the timer.
      TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
    End Sub
    
    Sub EndTimer()
        On Error Resume Next
        KillTimer 0&, TimerID
    End Sub
    
    Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, _
            ByVal nIDEvent As Long, ByVal dwTimer As Long)
       
      Set Items = Outlook.Session.GetDefaultFolder(olFolderInbox).Items
      
      Dim dtDate As Date
      Dim sName As String
      Dim aName As String
      Dim sFile As String
      Dim sExt As String
    
      Dim Anlagen As Attachments
      Dim Ziel As String
      Dim i As Integer
      Dim Suchwert1 As Integer
      Dim Suchwert2 As Integer
    
      sExt = ".txt"
      
      For i = 1 To Items.Count
      If i = 1 Then
        Set oMail = Items.GetFirst
      Else
        Set oMail = Items.GetNext
      End If
      
      ' Sicherstellen, dass der Dateiname keine unerlaubten
      ' Zeichen enthält.
      sName = oMail.Subject
      'aName = oMail.SenderEmailAddress
      ReplaceCharsForFileName sName, "_"
    
      ' Dateinamen aus Betreff und Empfangsdatum der Mail
      ' zusammensetzen.
      dtDate = oMail.ReceivedTime
      sName = Format(dtDate, "dd" & "_" & "mm" & "_" & "yyyy", vbUseSystemDayOfWeek, _
        vbUseSystem) & Format(dtDate, "  -  hh" & "_" & "nn" & "_" & "ss", _
        vbUseSystemDayOfWeek, vbUseSystem) & " +++ " & sName & " +++ " & aName & sExt
    
    ' oMail.SaveAs sPath & sName, eType
    oMail.SaveAs sPath & sName & ".txt", olTXT
    
    Next i
    
    MsgBox ("Emails wurden erfolgreich gesichert")
    
    End Sub
    
    
    Private Sub ReplaceCharsForFileName(sName As String, _
      sChr As String _
    )
    ' Ersetzt in Dateinamen unerlaubte Zeichen
      sName = Replace(sName, "/", sChr)
      sName = Replace(sName, "\", sChr)
      sName = Replace(sName, ":", sChr)
      sName = Replace(sName, "?", sChr)
      sName = Replace(sName, Chr(34), sChr)
      sName = Replace(sName, "<", sChr)
      sName = Replace(sName, ">", sChr)
      sName = Replace(sName, "|", sChr)
    End Sub


    Gruß
    Manni
  • in: Enumeration vs Collection

    geschrieben von bandi999

    Hi,

    also Enumeration nach Collection scheint mir ziemlich aussichtslos.
    Würde dir evtl. auch der Weg von JList nach Collection was ntüzen?
    Falls das so ist, dann versuche doch mal:
    Collection<Person> pers = new ArrayList<Person>(Arrays.asList((Arrays.asList(((DefaultListModel)lstMembers.getModel()).toArray())).toArray(new Person[((DefaultListModel)lstMembers.getModel()).getSize()])));

    Bei mir lässt es sich compilieren und ausführen.
    Ob es natürlich im Ergebnis einfacher oder besser ist, als deine Funktion lasse ich mal dahingestellt.

    Gruß
    Manni
  • in: Hilfe: Email mit VB aus Outlook automatisch speichern

    geschrieben von bandi999

    Tja dann,

    eine Idee wäre noch die ensprechenden Mails über eine Regel in einen extra Ordner zu leiten und diesen mit deinem Script zu überwachen.
    Eine andere Möglichkeit wäre die Post in einem bestimmten Zeitintervall in den lokalen Ordner zu exportieren.

    Gruß und viel Glück
    Manni
  • in: Hilfe: Email mit VB aus Outlook automatisch speichern

    geschrieben von bandi999

    Tja, jetzt wird es schwierig.
    Ich habe es mal mit meinem Outlook 2002 versucht. Da scheint die ganze Sache zu funktionieren, bis auf den Fall, wenn gleichzeitig mehrere Mails vom Server abgeholt werden. Dann wird nur eine davon gespeichert, das allerdings immer :).

    Wie testest du? Mit richtigem Posteingang oder indem du Mails in Ordner verschiebst?
    Du sagst ja, dass bei dir exakt gleiche Vorgänge unterschiedliche Auswirkungen haben. Geht es nach Outlook Neustart immer erst einmal bzw. nachdem der Fehler aufgetreten ist, bleibt er dann oder funktioniert es plötzlich wieder?
    Bekommst du eigentlich den Sicherheitshinweis von Ooutlook wenn das Makro auf den Postfachordner zugreift? Falls du Outlook älter als 2002 hast, evtl. updaten. Evlt. Outlook mal neu installieren.

    Leider sind all meine Fragen keinen gezielter Weg um den Fehler zu lokalisieren, sondern eher Anregungen, evtl. doch noch eine Systematik zu entdecken und den Fehler weiter einzugrenzen oder zumindest eine zuverlässige Methode zu finden um den Fehler zu erzwingen.

    Gruß
    Manni
  • in: Hilfe: Email mit VB aus Outlook automatisch speichern

    geschrieben von bandi999

    Hi,

    zur Fehlersuche würde ich mal in die Funktion Items_ItemAdd eine MsgBox einbauen, dann kannst du schon mal erkennen ob Outlook die Funktion beim Maileingang aufruft oder nicht. Am besten eine in die If Schleife und eine ausserhalb. Dann kann mal weiter sehen.

    Gruß
    Manni
  • in: Hilfe: Email mit VB aus Outlook automatisch speichern

    geschrieben von bandi999

    Hi

    ein kurzer Blick in GOOGLE lenkte meine Aufmerksamkeit auf
    http://www.vboffice.net/sample.html?mnu=2&pub=5&smp=7&cmd=showitem

    Ich vermute mal forsch, du hast versucht den Code anzupassen und die Ähnlichkeiten sind nicht ganz zufällig.

    Wie auch immer, wenn ich deinen Code sehe und den im genannten Link, dann fällt auf, dass du die Funktion
    Private Sub Items_ItemAdd(ByVal Item As Object)
      If TypeOf Item Is Outlook.MailItem Then
        SaveMailAsFile Item, olSaveAsMsg, MAIL_PATH
      End If
    End Sub

    komplett weggelassen hast. Gerade damit wird aber dein Makro gestartet wenn du Mail erhältst. Sofern dein geposteter Code also vollständig ist, sollte imho gar keine Mail abgespeichert werden.
    Also ergänze erst mal die Funktion im Makro.

    Die Variable Items initialisierst du übrigens 2x, das scheint mir auch nicht unbedingt erforderlich ;).

    Viel Spaß beim Coden
    Manni

  • in: Datentransferproblem

    geschrieben von bandi999

    Hi,

    dein Beitrag ist nun schon etwas älter, aber ich hoffe er ist noch akutell ;). Mich hat das Thema
    interessiert und da kann man sich schon mal etwas Zeit nehmen, die habe ich dann aber auch
    gebraucht.

    Also beim upload übergibst du das File an den Server und der speichert - fertig.
    Beim Download musst du dem Server sagen welches File du haben möchtest und
    dann sendet der Server das File zum Client. (Mal plump ausgedrückt ohne RMI, Serialisierung und was weiß ich noch alles)

    Ich sehe bei deinem Code 2 Probleme:

    1.)
    public static void testDownload () throws Exception
    	{
    		File localFile = new File ("/home/lorenzo/downloaded");
    		SerialFile remoteFile = new SerialFile ();
    		byte [] buffer = new byte [ (int) mngr.getSize (remoteFile) ];
    		remoteFile.setName ("uploaded");
    		remoteFile.setBuffer (buffer);
    		
    		mngr.download (remoteFile);
    		
    		OutputStream os = new FileOutputStream (localFile);
    		os.write (remoteFile.getBuffer () );
    		os.flush ();
    		os.close ();
    	}


    hier solltest du den Namen des remoteFile setzen, bevor du die Bufferlänge bestimmst.

    2.) Die Funktion "download" sollte als Rückgabewert das herunterzuladende SerialFile haben. Als Parameter würde eigentlich ein String Filename reichen, aber mit einem SerialFile geht es natürlich auch. Aus dem zurückgegebenen File kannst du dann den Buffer in eine Datei schreiben und schon klappt der download :).
    So wie du es versucht hast, gehst du von einer Paramterübergabe by reference aus, java macht aber immer by value und remote schon erst recht ;).

    Hier mal die drei geänderten Klassen, welche bei mir unter Glassfish funktionieren (mit meinen Pfaden):
    package census.ejb;
    
    import java.io.*;
    import javax.ejb.*;
    
    @Stateless (mappedName="ejb/FileManager")
    public class FileManagerBean implements FileManagerRemote
    {
      private static final String root = "c:/bea/maitai/";
    
      public long getSize (String name)
      {
        return new File (root + name).length ();
      }
    
      public long getSize (SerialFile file)
      {
        return new File (root + file.getName () ).length ();
      }
    
      public SerialFile download (SerialFile file) throws FileNotFoundException, IOException
      {
        byte [] buffer = new byte [ (int) getSize (file)];
        file.setBuffer (buffer);
        InputStream is = new FileInputStream (root + file.getName () );
        is.read (file.getBuffer () );
        is.close ();
        return file;
      }
    
      public void upload (SerialFile file) throws FileNotFoundException, IOException
      {
        OutputStream os = new FileOutputStream (root + file.getName () );
        os.write (file.getBuffer () );
        os.flush ();
        os.close();
      }
    }

    package census.ejb;
    
    import java.io.*;
    import javax.ejb.*;
    
    @Remote
    public interface FileManagerRemote
    {
      public long getSize (String name);
      public long getSize (SerialFile file);
      public SerialFile download (SerialFile file) throws IOException, FileNotFoundException;
      public void upload (SerialFile file) throws IOException, FileNotFoundException;
    }

    package census.client;
    
    import java.io.*;
    import census.ejb.*;
    import javax.naming.*;
    
    public class Main
    {
      public static FileManagerRemote mngr;
      
      public static void main (String [] _) throws Exception
      {
        InitialContext ic = new InitialContext ();
        mngr = (FileManagerRemote) ic.lookup ("ejb/FileManager");
        
        testUpload ();
        testDownload ();
      }
      
      public static void testUpload () throws Exception
      {
        File localFile = new File ("C:/bea/up/hallo.txt");
        SerialFile remoteFile = new SerialFile ();
        byte [] buffer = new byte [ (int) localFile.length () ];
        remoteFile.setName ("uploaded");
        remoteFile.setBuffer (buffer);
        
        InputStream is = new FileInputStream (localFile);
        is.read (remoteFile.getBuffer () );
        is.close ();
        
        mngr.upload (remoteFile);
      }
      
      public static void testDownload () throws Exception
      {
        File localFile = new File ("C:/bea/down/hallo.txt");
        SerialFile remoteFile = new SerialFile ();
        remoteFile.setName ("uploaded");
        System.out.println("laenge: " + mngr.getSize (remoteFile));
        
        SerialFile retFile = mngr.download (remoteFile);
        
        FileOutputStream os = new FileOutputStream (localFile);
        os.write (retFile.getBuffer());
        os.flush ();
        os.close ();
        
      }
    }


    Ich hoffe du kannst was damit anfangen.

    Gruß
    Manni
  • in: Arrayteil löschen

    geschrieben von bandi999

    Hi,

    census hat mal wieder eine saubere Lösung erarbeitet :).

    Damit ich mich nun nicht ganz umsonst mit der Sache beschäftigt habe möchte ich noch anmerken, dass in der Funktion

    function formatEuro (p)
    {
    retVal = String (Math.floor (p * 100) );
    while (retVal.length < 3) retVal = "0" + retVal;
    return retVal.substr (0, retVal.length - 2) + "," + retVal.substr (-2);
    }

    der Ausdruck
    retVal.substr (-2)
    eigentlich nicht vorgesehen ist (laut ECMAScript Spez. wegen der -2) und vom IE 7 nicht
    interpretiert wird. Um sicher zu gehen, dass für IE-Kunden nicht alles treurer wird wäre hier wohl
    retVal.substr (retVal.length - 2)
    zu verwenden ;).

    FF interpretiert die Anagabe natürlich wie erwartet.

    Gruß
    Manni
  • in: FF add-on ersatz für switchproxy-tool

    geschrieben von bandi999

    Hi,

    man kann grundsätzlich versuchen die maxVersion Variable in der Datei "install.rdf" des Paketes zu ändern um FF zu bewegen ein add on doch zu installieren. Bis FF < 3.5.x funktionierte das Tool auch noch bei mir. Seit FF 3.5 scheint es aber nicht mehr wirklich zu laufen.
    http://www.netzwelt.de/news/77169-tutorial-alte-addons-firefox-3-kompatibel.html
    Bevor jetzt alle "Wächter des guten Codes" auf den Plan gerufen werden warne ich halt gleich mal: Natürlich ist es Pfusch einfach nur die Version anzupassen ohne ein Code-Review. Geht aber schnell und wenns nur für einen selbst ist .. :).

    Dank GOOGLE habe ich das hier gefunden:
    https://addons.mozilla.org/de/firefox/addon/7330

    Ist dem switchproxy ganz ähnlich, bietet aber keine Import Funktion für Proxylisten.
    Vielleicht kannst du ja trotzdem was damit anfangen.

    Gruß
    Manni

Login zum Webhosting ohne Werbung!