Beiträge von kira

    ich finds besonders komisch da ja überall gesagt wurde, es funktionieren nurmehr der login: e<matrikelnummer> student
    das ist genau der der NICHT funkt bei mir, bei vielen anderen aber schon
    ich brauch immer @vpn.tuwien.ac.at
    oder noch immer das alte @mobil.tuwien.ac.at


    Das stimmt nicht 100%ig.

    Mobil ist nicht "alt", ... für die Mitarbeiter (bzw alle die ihren Mailacc auf mail.zserv haben) oder auch Gastzugänge fürs Wlan loggen sich immer noch über den Realm mobil ein...

    Beim VPN-Client kann man im Gegensatz zum Wlan auch als Student derzeit als Login mobil oder student nehmen..oder die vpn-Kennung. Grundsätzlich sollten derzeit alle 3 Varianten funktionieren, bzw auch die dazugehörigen "Abkürzungen", wo tuwien.ac.at weggelassen wird, sollte gehen.
    Das "es geht nur mehr mit student bzw student.tuwien.ac.at" bezieht sich nur auf das Wlan-Login für Studenten, nicht aber auf die VPN-Einwahl! (wobei das eventuell auch noch umgestellt bzw angeglichen wird...)

    Beim Einwählen ins VPN .. hast du da eMatrikelnr student ... oder eMatrikelnr@student.tuwien.ac.at verwendet? bzw geht beides nicht?

    und geht Einloggen ins Wlan-Netz (Tunet , Eduroam) mit beiden Varianten oder auch mit keiner?

    Das würde dann bedeuten, dass, sobald die fünfte Zeile eingelesen wird, die Eingabe automatisch als falsch bewertet wird.

    ja würde es bedeuten.


    Und wo überprüfst du dann überhaupt, ob weniger als fünf Zeilen eingegeben wurden?

    garnicht. hat allerdings ihre erste lösungsvariante mit der überprüfung im schleifenkopf auch noch nicht gemacht, soweit ich das in erinnerung hab.

    wenn sie das möchte, dann (zusätzlich) eine zweite if abfrage nach der schleife die untergrenze abfragen lassen .....

    oder den benutzer nicht aus dem programm lassen bevor er nicht genug zeilen eingegeben hat... :devil:

    ja bei der zeilenlänge bin ich mir 100% sicher. da kommt NUR bei 3 zeichen OK.

    bin jetzt wieder einmal alles der reihe nach durchgegangen.. hab die if-abfrage (zeilen != 5) außerhalb der schleife hingeschrieben und jetzt funktionierts. :)


    ja wenn das so gewollt ist , passt dafür auch !=3
    (dachte du wolltest weniger als 3 zeilen oder genau 3 zeilen)

    aber bei der zeilenanzahl-abfrage war das sicherlich nicht so gewollt, dass es immer wenn die zeilenanzahl ungleich 5 ist abbricht...

    ausserhalb der schleife die zeilenanzahl abfrage:
    heisst das er solange einliest solange du was eingibst ( könnten auch 100 zeilen sein).. und wenn nichts mehr kommt geht er aus der schleife und überprüft dann ...

    naja.. selbst wenns funktioniert keine ideale lösung .. , weil du theoretisch eine abbruchbedingung zusätzlich in der schleife brauchst.. oder es aber möglich wäre 10000 zeilen einzugeben bevor es überprüft wird ...

    warum schreibst du nicht einfach in der schleife if (zeilen == 5) status = false; break; ???

    denkst wohl zu kompliziert........

    ja anscheinend denk ich falsch.. grml..

    wie schleifen allg funktioniert versteh ich eigentlich schon.

    wenn es klappt dass wenn ich frage ob mehr zeilen als 5 da sind, falsche eingabe ausgegeben wird, sobald 6 zeilen dastehn.. wieso klappt es dann nicht wenn ich abfrage ob 5 zeilen da sind.. ?! es funktioniert ja auch vorher mit der zeilenlänge


    tust du ja nicht.

    du fragst nicht ab "ob 5 zeilen da sind"


    du fragst "sind ungleich 5 zeilen da"
    ungleich 5 heisst aber mehr oder weniger als 5... :wave:


    wenn du auf "sind 5 zeilen da bzw hat zeilen den wert 5" abfragen würdest ,.. würde es natürlich genauso klappen.

    das problem ist aber das dein programm nicht das tut , was du dir vorstellst, dass es tun müsste..


    vielleicht hilft ein schreibtischtest.. oder auch nur mal versuchen den programmcode in pseudocode oder ein struktogramm zurückzuverwandeln.
    weiss nicht mit was du dir leichter tust.


    /edit:
    zu dem "es funktioniert ja auch mit der zeilenlänge":
    bist du dir da 100% ig sicher? ;)

    Ich glaube nicht , dass das Programm funktioniert, bzw besser die Anweisung mit der Zeilenlänge tut zwar etwas, aber nicht das was du möchtest.

    Ich würde dir - nochmal - dazu raten dein Programm ausführlich zu testen.
    Versuche nicht nur bei der Zeilenlänge zb .. 3 Zeichen einzugeben und zu sagen "Juhuuu funkt.."

    Sondern gib 2 Zeichen ein,... notier dir was passiert, dann gib 3 Zeichen ein ... , dann gib 4 Zeichen ein, und schau was passiert ...
    und dann gib mal eine zufällige Zahl von Zeichen ein. ... und schau immer was das Programm in den Testfällen macht... und ob es so reagiert wie "erwartet".

    hmm.. ich denk mir mal er prüft schon nach der ersten zeile und weil die nicht gleich 5 ist, bricht er ab.. versteh aber nicht wieso er mir nicht die chance gibt mehr einzugeben ...


    natürlich prüft er nach der ersten zeile.

    die if-überprüfung findet INNERHALB der schleife statt ..., nicht danach.
    (und der scanner liest zeilenweise ein , jeden schleifendurchlauf eine zeile.

    weisst du wie eine while schleife bzw schleifen generell funktionieren bzw abgearbeitet werden? :engel:


    da solltest du dich mal bisschen mehr schlau machen..

    wo fängt deine schleife an .. und wo ist sie zuende... und wie wird die schleife vom prinzip her ausgeführt?
    in welcher reihenfolge und wie oft werden die anweisungen in der schleife ausgeführt,..
    wann wird die schleife abgebrochen, .. wann wird die schleifenbedingung überprüft... wann werden schleifenzählvariablen erhöht sofern vorhanden....??

    Naja.. überleg dir doch mal was die 3 Zeilen machen :lauscher:


    WENN zeile ungleich 5
    setze status auf falsch
    break


    und wenn du trotz überlegen nicht weiterkommst, würde ich dir einen schreibtischtest nahelegen. ;)

    dafür machst du eine tabelle mit allen wichtigen variablen ( zeilen , zeile.length ,status, ausgabe )
    gehst das programm schritt für schritt durch.. und schreibst für jeden durchlauf die werte mit die die variablen annehmen ..

    ich hab irgendwie das gefühl dass du dir zu wenig überlegst was dein programm eigentlich tut.. ;)

    Moment - sind wir nicht an einer Technischen Universität, wird hier nicht User Interface Design gelehrt?


    Der zuständige Zid-Mitarbeiter hat die LVA nicht besucht nehme ich an,... ;)

    Mit der Anmeldung bzw eher der Fehlermeldung haben häufig Studenten Probleme.

    Es ist besonders lästig wenn Studenten dann in den Ferien zuhause sitzen .. und aber über VPN doch aufs TU-Netzwerk zugreifen wollen oder müssen.

    Eine Vorwarnung , dass die VPN Anmeldung nur unter diesen und diesen Voraussetzungen hinhaut,....
    bzw ZUMINDEST eine gscheide Fehlermeldung , wäre nett bzw sollte auch keine grosse Sache sein dies umzusetzen... eigentlich....

    Du musst das dann von einem anderen Inetanschluss ... oder auch aus dem TU-internen Netzwerk (Internetraum) machen.


    Leider kann man sich ins Kom-Management-Dings nicht einloggen wenn die IP -Adresse mit reverse dns nicht aufgelöst werden kann.
    (aus Sicherheitsgründen sagt der ZID :engel:) was ja okay oder nachvollziehbar ist, ABER:


    leider gibt es keine besonders aussagekräftige Fehlermeldung dafür... :rolleyes:

    die meisten können mit einem lapidaren "kann nicht aufgelöst werden, kann Eintrag im NS nicht finden" nichts wirklich was anfangen.

    Es ist grundsätzlich leichter Datenverkehr über Wlans abzufangen (unabhängig von der Konfiguration).
    Deshalb sollte man "sensible" Dinge wie Passwörter , Mails , Bankgeschichten nicht unbedingt per Wlan abwickeln und wenn doch eine VPN Verbindung nutzen..

    Wir hatten in der Schule ein Wlan... ,
    in Netzwerktechnik oder so hat ein Prof. den Schülern im Unterricht erzählt , wie leicht es doch wäre im Wlan zu sniffen... (zumindest innerhalb eines Accesspoints mit Netzwerkkarte RFMon Mode) ...

    Die Schüler haben sich draufhin so ein kleines Programm aus dem Inet geholt
    und binnen eines Tages sind sie schulweit an etwa 100 Zugangsdaten zu Mail- und Ebayaccounts gekommen..... :distur:

    aus http://www.dpunkt.de/leseproben/2256/Kapitel_2.pdf WLAN-Sicherheit


    Die Konfiguration des Netzwerks spielt vielleicht insofern eine Rolle als das man zum Mitsniffen soweit ich weiss Zugang zum Netzwerk braucht bzw mal wissen muss das es existiert..
    Aber bei einem quasi öffentlichen Netzwerk wie das Tu-Wlan .. wo mal ohnehin mehrere 1000 Studenten zugangsberechtigt sind ,... wer sagt mir , dass da nicht ein zwei schwarze Schafe / neugierige Nasen dabei sind...

    Das hier stimmt im Grunde schon.
    Vielleicht ist die Obergrenze nicht die , die du erwartet hast. :(

    Paulchen hats eh erklärt.

    Am besten also du tauscht die beiden Bedingungen und
    nimmst das <= weg und schreibst nur < in der Bedingung oder initialisierst mit zeilen mit eins und lässt <= ...
    Dann ist die gewollte Zeilenanzahl-Grenze bisschen offensichtlicher. :wave2:

    Das hier ist noch eine Möglichkeit wie es gehen würde, ....
    Hier stoppt die Schleife nicht , .. sondern es wird eben wie bei der Zeilenlänge die Variable status gesetzt , aus der Schleife gehüpft
    und eine Fehlermeldung ausgegeben.

    Hm, .. du hast es ja schon fast. ;)

    Nur hast du ein kleines bisschen zu kompliziert gedacht.
    Für das was du machen möchtest brauchst du nicht unbedingt 2 Schleifen.

    Zwei Schleifen würdest du NUR brauchen, zb:
    Schleife eins ist die Leseschleife und Schleife 2 eine aussenherum (so wie deine For-Schleife).
    Wenn die Leseschleife fertig ist, willst du das noch 5x etwas gemacht wird.
    Das würdest du aussen in eine zweite For-schleife schreiben.

    Aber nachdem du in deiner zweiten Schleife garnix machst...
    Sondern du im Prinzip nur etwas überprüfen möchtest , was in der ersten Schleife gemacht wird,
    solltest du das besser auch in der ersten Schleife machen, und nicht was Kompliziertes aussen rum baun. ;)


    Du willst beim Einlesevorgang mitzählen und abbrechen wenn deine bestimmte Zeilenanzahl erreicht ist.
    Bau das in deine Einlese-Schleife ein.


    Zum das Problem es kommt ein Ok, auch wenn zuviele Zeilen eingegeben werden, folgendes:

    Wo wird die Status-Variable verändert und warum?

    Laut Codelistings oben setzt du das Status-Flag , wenn die Zeile zu klein ist.
    Was müsstest du machen , damit es ein False ausgibt , wenn zuviele Zeilen eingegeben werden?

    Hinweis:
    Ich habe das jetzt oben etwas brutal gelöst, dh man kann garnicht mehr Zeilen eingeben als erlaubt.
    Also kann auch niemals ein OK trotz zuvieler Zeichen auftauchen.

    Man kann das aber auch so lösen wie du es dir vorgestellt hast.
    Einfach oben die Abbruchbedingung weglassen.... und dann musst du aber klarerweise noch etwas machen.

    Und zwar:
    Du hast dann zwei Fehlerfälle für die er in den False-Zweig gehen muss.
    Fehlerfall 1 (mit der Zeilenlänge) hast du gelöst mit einer IF-Abfrage.
    Fehlerfall 2 kannst du auf dieselbe Art lösen, nur statt Zeilenlänge müsstest du die Variable abfragen, die die Zeilen zählt. ;)

    Du kannst nicht erwarten , dass dein Programm etwas tut , an das du garnicht gedacht hast. ;)


    und zu deinem zweiten.. dass ich vor dem if zeile.length rausschreiben soll.. meinst du ich soll mit system.out.print die anzahl der eingegeben zeichen ausgeben lassen?

    Du sollst dir den Inhalt von zeile.length anzeigen lassen.

    Die If-Bedingung überprüft ob Zeile.lenth ungleich 3 ist,
    wenn ja wird falsche Eingabe ausgegeben (besser gesagt Variable status gesetzt , später Variable status überprüft , da status false ist Ausgabe von Eingabe falsch.)

    Also solltest du dir anschaun , was in der Bedingungsvariable zum Zeitpunkt der Überprüfung bzw unmittelbar vorher oder nachher drinnen steht.
    Eine Möglichkeit das zu tun wäre einfach zeile.length vor oder nach der If-Anweisung auf die Konsole rauszuschreiben.

    Folgende Dinge solltest du checken / dir überlegen:

    (einfach das Programm durchgehen und überlegen an welchen Stellen es zur falschen Eingabe überall abzweigen könnte)

    Als erstes Mal die If-Bedingung eben:
    Steht da wirklich ein Wert ungleich 3 drin? ...
    Wenn aber ja: warum könnte das so sein? (Doku der Einlesefunktion checken!, mal mit 2 oder 4 Zeichen pro Zeilen probieren und schaun was dann in der Bedingungsvariable zeile.length steht)
    Wenn nein: wo könnte der Fehler noch liegen , wenn nicht in der Bedingung? Vielleicht bei der Statusvariable? Was hat Einfluss auf die Statusvariable? Wo würde die Statusvariable noch verändert usw..

    Aus welchen Gründen könnte das Programm noch zur Anweisung "gebe falsche Eingabe aus" springen?

    Spiel dich einfach mal bisschen mit dem Programm und test mehrere Fälle durch bzw überlege dir wo der Grund liegen könnte, dass das Programm nun in den Zweig falsche Eingabe springt.
    Soviele Möglichkeiten gibts ja nicht bei einem 5-Zeiler. ;)

    kann ich das irgendwie umgehen, oder muss ich das mit try..catch lösen?
    sollte ja nach den 3 zeilen ein OK kommen...

    hiermit:

    Zitat


    bzw ein bisschen mehr hilfestellung: du hast da ja die überprüfung rausgeworfen.. while (einlesen.hasnext()) .. die kannst du nicht weglassen.
    also musst du sie da noch irgendwo IN die schleife oder innerhalb der schleife einbauen.

    du hast oben eine eine schleife die fix 3 mal durchlaufen wird.

    und in der schleife liest du ein.
    und beim dritten mal gibts aber nix mehr zum einlesen, also:
    exception

    bzw ein bisschen mehr hilfestellung: du hast da ja die überprüfung rausgeworfen.. while (einlesen.hasnext()) .. die kannst du nicht weglassen.
    also musst du sie da noch irgendwo IN die schleife oder innerhalb der schleife einbauen.

    und zum andern fall:
    schreib vor dem if bitte mal das ergebnis von zeile.length auf die konsole raus mit system.out usw.. bzw schau dir an was da wirklich drin steht und überleg dir dann warum das so sein könnte. ;)

    versuch generell dir das programm erstmal in ruhe zeile für zeile durchzudenken , wenn mal was nicht geht.
    so eine art schreibtischtest machen... bzw schrittweise die paar zeilen durchgehen und debugging informationen ausgeben (variablen-inhalte usw)
    das hilft oft weiter...

    "Wah - geht nicht .. Falsche Ausgabe, Exception" und dann wie gebannt auf den Code starren und rumexperimentieren hilft nicht soviel weiter.. bzw kommt man damit selten auf Fehler drauf, weil man den Baum vor lauter Wald nicht mehr sieht .. ;) ... und ins Forum laufen und andere Debuggen lassen , klappt zwar, weil wir alle nett sind und hier auch schon oft Hilfe bekommen haben. Aber wenn du Programmieren lernen willst , wirst du auch Fehlersuchen und Debuggen lernen müssen, damit du nicht immer gleich beim ersten Fehler anstehst und hilflos bist. :)

    nachdem du ohnehin schon zeilenweise einliest is es nicht allzu schwer....

    in der einleseschleife eine countvariable haben die die zeilen brav mitzählt, wäre vielleicht nicht schlecht.

    nachdem mitzählen allein nicht reicht , sondern das programm auch noch was tun soll:
    ebenfalls in der einleseschleife oder in einer extra-schleife ausenrum
    die zeilenzählvariable dann abfragen, und je nach wert der zählvariable dann abbrechen oder nicht ...oder sonstwas tun..

    Auf dieser Seite trittst du sämtliche Rechte an all deinem Content an den Seitenbetreiber ab, d.h. das wuerde ich nicht für irgendwelche ernsthaften Sachen empfehlen. (Gleiches gilt übrigens für AIM/ICQ, aber dort ist die Rechtslage sehr zweifelhaft)


    Wo auf der Seite steht das ?

    Tipps fürs Drucken im Liz: