Zum Inhalt springen

Sacaldur

Mitglieder
  • Gesamte Inhalte

    145
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Sacaldur

  1. in dem Zusammenhang soll der "Fehler 40" nicht vergessen werden ("Der Fehler sitzt 40 Zentimeter vor dem Bildschirm!")
  2. mir ist zwar noch keine weitere Möglichkeit eingefallen, aber dafür noch ein paar Probleme im Zusammenhang mit der Logdatei: sollten Änderungen rückgängig gemacht werden, dann ist das auch schwieriger zu bewerkstelligen das Abfragen alter Zustände ist auch nicht (oder schwer) über die Datenbank selbst möglich -> man müsste wohl auf die Datei selbst zugreifen bei mehreren Benutzern, die gleichzeitig mit der Datenbank arbeiten, kann es zu Problemen kommen, wenn mehrere Benutzer gleichzeitig Daten ändern und somit mehrfach gleichzeitig auf die Datei zugegriffen werden muss (das Problem dabei ist, dass diese Zugriffe nacheinander abgearbeitet werden müssten und dadurch Performance verloren gehen kann - bei Lesezugriffen auf aktuelle Daten wirkt sich das aber nicht negativ aus) zusammengefasst scheint sich etwas derartiges dann wirklich zu lohnen, wenn man mit unmengen an Daten arbeitet (im Millionenbereich und darüber, sage ich einfach mal), die aber relativ selten verändert, sondern häufig nur gelesen werden eine Kombination aus den beiden Dinge wäre eine separate Datenbank für die Historisierung (sie könnte aber dennoch vom gleichen DBMS verwaltet werden) vorteile bringt das, wenn diese an einem anderem Ort liegt (wieder die Vorteile wie bei der Datei) da man immernoch auf eine Datenbank zugreift, wäre das zurückspielen von alten Zuständen einfacher (denke ich mir zumindest) im Gegensatz zur Logdatei können die Zugriffsberechtigungen über das DBMS verwaltet werden eventuell bieten auch die Datenbankmanagementsysteme selbst die Möglichkeit, Änderungen an Datensätzen automatisch zu protokollieren dies wäre grundsätzlich eine besser Lösung, als selbst etwas zu basteln, da das DBMS diese schon ausreichend lange enthalten dürfte und dem entsprechend diese bereits funktionierend implementiert sind (und man nichts selbst implementieren muss) allerdings muss man erst einmal ein DBMS haben, welches das unterstützt und diese Funktion könnte eventuell mehr Geld kosten (zumindest bei DBMSs, die grundsätzlich Geld kosten, wie das von Oracle) ansonsten hat es sehr viele Gemeinsamkeiten mit der separaten Logdatei
  3. neben einer DB-basierten Logführung kann man auch eine Logdatei im Dateisystem verwenden diese könnte auf einem anderen Datenträger als die Datenbank selbst liegen und würde dadurch bei verwendung eines RAIDs oder ähnlichem anders gehandhabt werden (so zum Beispiel könnte für die Datenbank selbst etwas weniger, besser gesicherter und evtl. beschleunigter Speicher verwendet werden, während für die Historie eine einfachere und langsamere Variante verwendet wird) sofern sich dies in irgendeiner Weise über die Datenbank selbst realisieren lässt, sodass die verwendenden Programme davon nichts mitbekommen und sich nicht darum kümmern müssen, wäre das bei einer hohen Belastung der Datenbank durchaus ein Gedanke, den man weiter verfolgen kann vielleicht fällt mir demnächst noch das ein oder andere ein... eigentlich könntest du das, was ich im letzten Beitrag schon geschrieben habe (über den 1. Punkt) verwenden
  4. wenn "/ 10" die 5 abschneidet, warum machst du daraus keine Division mit Fließkommazahlen und schreibst "/ 10.0"? sollte die Stelle in deinem Programm einen Engpass darstellen, dann ist das effektiver, als die Zahl, die geteilt werden soll, mittels Methodenaufruf in eine Fließkommazahl umzuwandeln (ich weiß gerade nicht, ob Fließkommazahlen im Quelltext standardmäßig als floats oder als doubles angesehen werden - sollte 10.0 ein Floatwert sein, musst du noch den entsprechenden Literal verwenden oder sie casten) allerdings kann ich nicht sagen, in wie fern das besser, als eine Stringoperation ist und da du nicht sehr viele Informationen dazu gegeben hast, was du eigentlich machen willst, kann ich auch nicht sagen, ob das eine Lösung für das Problem wäre...
  5. Sacaldur

    URL aus Browser auslesen

    was hast du eigentlich vor? was willst du dann mit diesen URLs machen? vielleicht ist das, was du als Lösung siehst, nicht der optimalste Weg wenn du es aber unbedingt so machen willst (oder es doch theoretischerweise der beste Weg sein sollte), dann kommst du um Plugins für diese Programme nicht drun herum wenn du mit Hilfe dieser Links dein Programm steuern willst, solltest du dich damit beschäftigen, wie Programme unter Windows dem System mitteilen, dass sie bestimmte Protokolle verarbeiten (Webbrowser nehmen meist http: und ftp: entgegen, Steam hat dafür ein eigenes "Protokoll" erfunden) dein Programm würde dann mit dieser Adresse (beispielsweise virus:/ressource?parameter=wert) gestartet werden und könnte die Adresse auswerten und beispielsweise in einer Variablen speichern (du willst außerdem nicht, dass die Adresse still und heimlich in einer Variablen gespeichert wird, du willst, dass eine Methode/ein Eventhandler mit der Adresse als Parameter aufgerufen wird ) mit HTTPRequest machst du eine HTTP-Anfrage (na, was heißt das wohl auf Englisch? ^^) an einen Webserver (womit man Dateien von diesem runterladen oder sich Informationen über diese holen kann)
  6. da ich nicht verstehe, was du mit dem neuesten Beitrag sagen wolltest, werde ich ihn einfach mal ignorieren... nach dem, was du im vorletzten Beitrag geschrieben hast, müsste in der Abfragebedingung irgendwas in Richtung (iprovart = 0 UND datum = 2010) ODER (iprovart = 4 UND abbrech < 2010) stehen kann es sein, dass in der Bedingung ein falsches Datum steht und es nicht <= '2010-12-31' sondern <= '2009-12-31' heißen sollte? (ich würde in dem Fall eher < '2010-01-01' verwenden) am Besten wäre es, wenn du nochmal schreibst, was du jetzt hast und was du eigentlich brauchst und es wäre eventuell gut zu wissen, was die Felder zu bedeuten haben (sofern du das überhaupt schreiben darfst)
  7. den 1. Punkt verstehe ich nicht was hat eine Validierung mit einer Versionierung (bzw. Archivierung alter Zustände) zu tun? der 2. Punkt ist eine Möglichkeit, die dir wohl auch am ehesten empfohlen werden dürfte eien andere Möglichkeit wäre es, in jeder Tabelle ein weiteres Feld mit einem Datum einzufügen, welches das Datum der Erstellung des Datensatzes beinhaltet jedes Mal, wenn ein Datensatz verändert werden soll, wird ei neuer Datensatz mit den neuen Werten eingefügt allerdings schafft man sich damit weit mehr Probleme, als mit dem, was du schon geschrieben hast man muss das bei jeder Tabelle machen, bei der eine Historie geführt werden soll das Datumsfeld muss zum Primärschlüssel dazu gehören jede Tabelle, die sich auf diese Tabelle beziehen will, braucht deswegen einen Mehrspaltigen Fremdschlüssel (geht das überhaupt? ^^) wenn sich dafür kein Trigger erstellen lässt, muss die Geschäftslogik (also das verwendende Programm) aufpassen, dass nicht versehentlich ältere Datensätze überschrieben werden Tabellen mit entsprechenden Fremdschlüsseln müssten bei neuen Datensätzen aktualisiert werden ich habe keine Ahnung, wie man Datensätze löschen und die Historie behalten will ... vergiss einfach diese Idee... x) bei dem Trigger kannst du zur Optimierung darauf verzischten, den neuen Wert zu speichern, da dieser ja in der Tabelle selbst oder in einem neuerem Logdatensatz voprhanden ist (beim Anlegen kann man auch auf "den alten" Wert verzichten, da es vorher keinen Wert gab) du müsstest auch festhalten, welche Art von Änderung vorgenommen wurde (INSERT, UPDATE, DELETE und "Rollback", sofern du das in deiner Datenbank anhand der Historie machen lassen willst) und du musst darauf aufpassen, dass dieser Trigger nur solche Tabellen überwacht, die er überwachen soll (nicht nur unwichtige Tabellen sollen ausgelassen werden, sondern vor allem zwangsweise die Historietabelle, da sonst der Trigger sich immer wieder selbst auslöst) je nachdem, was du genau vor hast zu speichern, gibt es eventuell noch eine andere Möglichkeit (dazu müsstest du schreiben, was gespeichert werden soll und ggf. auch, warum dafür eine Historie notwendig ist)
  8. ich halte die Lösung zwar nicht für sehr schön, allerdings denke ich nicht, dass es ein zu großer Workaround ist (und man damit leben kann) allerdings (als eisener Verfechter von XHTML) würde ich eher ein '<br />' einfügen (und grundsätzlich XHTML und nicht HTML verwenden), aber das ist wohl eher Geschmackssache... wenn, dann müsstets du das wohl durch editieren deines 1. Beitrags machen notfalls fügst du an den Anfang des Titels einen Hinweis wie "[Erledigt]"
  9. umgehen kannst du dies, indem bei den speziellen p-Tags (den p-Tags innerhalb des editierbaren Elements) den Abstand nach diesen mittels CSS entfernst. (Zeilenumbrüche dürften ja genau so viele vorhanden sein, wie in deinem kopierten Text, nur dürfte die Darstellung nicht die gewünschte sein) allerdings dürfte das keine sehr elegante Variante sein was ich persönlich besser finde: formatiere den Text, den du kopieren willst, "richtig" da dein Editor (Notepad, Notepad++, Textpad, Gedit, vi, vim, ...) keine richtigen Formatierungen (wie Absatzformatierungen) unterstützt, solltest du diese auch nicht immitieren (mittels leerer Zeile bzw. dem, was später zu dem leeren Absatz wird) dadurch hat man danach mit CSS immernoch alle Freiheiten bei der Formatierung wenn letzteres deiner Ansicht nach aber nicht die richtige Lösung ist, dann beschreibe doch, was für eine Art von Text man in dem Element eingeben soll (bzw. was für eine Art von Text du kopierst)
  10. Sacaldur

    Vb.net Text Suchen

    das eigentliche Problem ist zwar gelöst, aber ich möchte dennoch auf einen Fehler hinweisen der XML-Code ist nicht valide, da "Zeit 09:32:06" keinen gültigen Tagnamen darstellt (ungültige Zeichen) zudem sollte der Name abhängig von dem zu speichernden Inhalt zu wählen sein (du willst in deinem Fall keine Zeiten speichern, sondern anscheinend Nachrichten, zu denen eine Zeitangabe dazu gehört) und die tagnamen sollten nicht beliebig erweiter werden, bzw. es sollten keine Werte mit Hilfe von tagnamen gespeichert werden (dafür eignen sich Attribute oder weitere tags) da du anscheinend nachrichten speichern willst, solltest du deine Tags ungefähr so aufbauen <nachricht zeit="09:32:06">Dies ist eine Nachricht!</nachricht> (die Namen der Tags und Attribute können selbstverständlich frei gewählt werden) Edit: weiterhin sollte man eine durchgängig einheitliche Groß- und Kleinschreibung verwenden (entweder fangen alle tags mit einem großen Buchstaben an oder es fangen alle mit einem kleinen Buchstaben an) es ist zwar auch möglich, je nach Zusammenhang entweder mit großen oder mit kleinem Buchstaben anzufangen, allerdings kann dies zu Fehlern führen, wenn man später beim schreiben einer XML-Datei durcheinander kommt
  11. ich denke, er hat nicht alle möglichen Fehler (Exceptions) in seiner Fehlerbehandlung berücksichtigt, da er wohl nicht von einem Fehler beim Verbindungsaufbau ausgegangen ist (sondern nur von Fehlern bei der Verarbeitung der Abfrage) wie schon geschrieben solltest du erstmal herausfinden, um welche Exception es sich handelt (dazu den Quelltext einfach ein wenig anpassen) bzw. was diese als Message beinhaltet
  12. allerdings hast du es scheinbar nicht verständlich erklärt wenn du ein Java-Programm ausführen willst, welches in Form von Class-Dateien vorliegt, musst du mittels -cp das Klassenverzeichnis (in deinem Fall "C:\Users\Murat\Desktop\logonscreen\build\classes") und danach denn vollqualifizierten Klassennamen (also den Namen der Klasse mit vorangestelltem Paketnamen, in deinem Fall scheinbar "logonscreen.screen") der Klassenname an sich reicht nur dann, wenn die Klasse sich in keinem Paket befindet den Klassenpfad muss man nicht explizit angeben, wenn es das aktuelle Verzeichnis ist
  13. der IE7 unterstützt auch die von dir vorher angegebene Notationsform der Fehler muss also an anderer Stelle gelegen haben (deswegen wurde nach dem HTML Code gefragt) überprüfe doch jetzt nochmal, ob der 1. CSS Code so funktioniert (ich gehe jedenfalls davon aus)
  14. ich würde dir empfehlen, statt der iso-8859-1 Kodierung utf-8 Kodierung zu verwenden meines Wissens verwenden Browser standardmäßi diese (bzw. eine andere Unicode-Kodierung) bei der Kodierung von URLs da für URLs (bzw. die mit einem % kodierten Zeichen) kein Zeichencode festgelegt ist, kann es zu Problemen führen, wenn auf Clientseite eine andere Codierung verwendet wird deine derzeitige Lösung halte ich eher für einen work-around, da es gerade dabei zu Kodierungsfehlern bei anderen Zeichencodes kommt in ISO-8859-15 hat das €-Zeichen die Nummer A4 (Hexadezimal) und nicht 80 (hast du das bei deinem Test berücksichtigt?)
  15. ich schließe mich el_pollo_diablo vollkommen an du solltest eine weitere Tabelle für diese Aufzählung verwenden, in der du dann die ID und die Bezeichnung speichern kannst eine Lokalisierung der Daten ist möglich, indem die ID zu einer zusammengesetzen ID aus den Feldern der vorherigen ID und eines Länderschlüssels umgewandelt wird
  16. anscheinend möchtest du einen Link (ein Ankerelement) zu einem mit ID gekennzeichneten Tag erstellen sofern dieser auf deer gleichen Seite liegt, reicht es aus, wenn du nur href="#zielIDdeslinks" verwendest ich rate dir davon ab, Links über JavaScript generieren zu lassen, wenn es eigentlich nicht notwendig ist (in diesem Fall scheint es mir nicht notwendig zu sein, sofern ich dich richtig verstanden habe)
  17. das wirrd so nicht funktionieren, da es sich bei dem um einen Attributabhängigen Selektor handelt (siehe entsprechende Seite auf css4you.de unter "Attributabhängige Selektoren") du könntest probieren, statt <body> <body orient="portrait"> zu verwenden auf die Schnelle habe ich dazu aber nichts finden können
  18. selbst wenn ich eine Serie gerne gesehen habe, habe ich sie regelmäßig verpasst, aber das ist was anderes... spontan würden mir die Serien Gargoyles, Sailor Moon und Pokemon einfallen, die ich häufiger gesehen habe heute finde ich aber beispielsweise "Cosmo und Wanda – Wenn Elfen helfen", Digimon oder One Piece gut (welche auch mehr oder weniger in meiner Kindheit liefen) Hellsing, richtig gute Serie, lief auch zu der Zeit, habe ich aber absolut nicht mitbekommen (vielleicht auch besser so ^^) genauso verpasst habe ich Full Metal Panic ansonsten Fallen mir gerade keine Serien ein, die in meiner Kindheit liefen um ein paar neure Serien einzuwerfen: Death Note, Deadman Wonderland, Baman Piderman (Videoreihe auf YouTube) Sacaldur
  19. eine andere Möglichkeit, wie man das anstellen könnte, wäre: man wandelt die Zeichenkette in eine Zahl um (beispielsweise mit Convert.ToInt32(String)) multipliziert diese mit -1 und wandelt die Zahl wieder in eine Zeichenkette um Vorteil: man hat nicht dieses Konstrukt der Fallunterscheidung und (Schätzungsweise) weniger Code Nachteil: die Eingabe muss sich in eine Zahl umwandeln lassen -> es dürfen nur Ziffern vorhanden sein -> es dürfen ggf. keine führenden Nullen vorhanden sein -> es kann eventuell bei Dezimaltrennzeichen (ist das der richtige Begriff?) zu Problemen kommen die Eingabe muss mit dem gewählten Datentyp kompatibel sein - Ganzzahlen -> keine Kommazahlen -> eingeschränkter Wertebereich (beispielsweise Int32: -2^31 bis (2^31)-1 - Fließkommazahlen -> ungenau je nachdem, was der Taschenrechner später alles können soll, musst du abwägen, was du verwendest
  20. den Inhalt der Seiten, die razer1993 geschrieben hat, solltest du berücksichtigen weiterhin möchte ich aber auch den CSS Zen Garden (deutsche Übersetzung) empfehlen, wo aufgezeigt wird, warum man Daten und Aussehen (in dem Fall HTML und CSS) gut von einander trennen sollte
  21. Sacaldur

    Enter Taste erkennen !

    was du vermutlich bisher machst, ist, eine Zeile mit Console.ReadLine() auszulesen und auszuwerten wenn die Rückgabe dieser Methode nur einen Zeilenumbruch beinhaltet (oder leer ist, ich weiß gerade nicht, ob am Ende ein Zeilenumbruch steht), dann wurde keine Zahl eingegeben und du kannst das Programm beenden (Thelvan hat das bereits geschrieben) wenn es aber ausreicht, eine Ziffer einzugeben, kannst du Console.ReadKey() verwenden und die gedrückte Taste auswerten wenn eine Zahl eingegeben wurde, wurde eine Zahl eingegeben und wenn die Enter-Taste gedrückt wurde, wurde die Enter-Taste gedrückt (welch komplexe Zusammenhänge ^^) (der Monkey-Island-Fan hat das geschrieben =P)
  22. stimmt, daran habe ich nicht gedacht sofern nur ein einziger Datensatz verändert werden soll, ist das defenitiv besser aber... naja... in dem Fall kann ich kein "WHERE" sehen, wodurch der zu ändernde Datensatz bestimmt wird (es sei denn, VB kennt sowas nicht ;D) das heißt, jedes Mal würden einfach alle Datensätze so angepasst werden ^^ @martinposer: du _musst_ eine WHERE Klausel einfügen, wenn du nur einen einzigen Datensatz ändern willst ein Insert wird dir nichts bringen, wenn du Daten verändern willst du würdest also immer wieder einen neuen Datensatz einfügen und genau das ist doch das, was du nicht haben wolltest, oder? wenn erst durch das Insert dein Ziel "erreicht" ist, dann waren einfach keine Datensätze in der Tabelle, weshalb auch keine Datensätze aktualisiert werden konnten diesen Fall solltets du prüfen, indem du vorher in der Datenbank nachschaust, ob schon ein Datensatz vorhanden ist wenn ja -> UPDATE wenn nein -> INSERT (irgendein DBMS bzw. ABAP hatte einen Befehl verwendet, welches eine Kombination aus den beiden darstellt...) Fazit: du hast dein altes Problem lösen können, aber dafür ein neues aufgeworfen ;D
  23. du könntest dem Benutzer eine Tabelle mit allen Benutzern, deren Daten, sowie je einem Button "Benutzer löschen" schicken um den Button herum (in der tabellenzeile, vielleicht sogar in der gleichen Zelle) hast du dann noch ein Form-Element, welches außerdem ein unsichtbares Feld mit der ID des Benutzers besitzt wenn der Button angeklickt und das Formular abgesendet wird, wird diese ID mitgesendet auf der JSP musst du diese ID entgegen nehmen und anhand dessen die XML-Datei bearbeiten um zu erkennen, ob die Seite aufgerufen wurde, um einen Benutzer zu löschen oder um erstmal alle Benutzer anzeigen zu lassen, brauchst du einen Parameter als solchen kann man theoretischerweise den für die ID verwenden ich kann nicht dafür garantieren, dass diese Lösung auch wirklich die eleganteste Lösung ist du solltest aber auch darüber nachdenken, das Löschen durch eine separate JSP-Datei durchführen zu lassen, die dann zu einer normalen weiterleitet dadurch hättest du dann JSPs, die dem Benutzer Informationen anzeigen und JSPs, die irgendwas machen (quasi einer Trennung von Oberfläche und Logik)
  24. ich sehe das Problem darin, dass der alte Befehl durch einen immer wieder neuen ersetzt wird (kann auch sein, dass ich mich irre) ändert sich denn zumindest der Betrieb? wenn ja, dann musst du jedes Mal, wenn du "cmd.CommandText = [...]" verwendest vor dem jeweilig nächsten ein "cmd.ExecuteNonQuery()" verwenden, damit auch _jeder_ Befehl ausgeführt wird
  25. ich kann dir nur genrell Empfehlungen geben, da ich mich mit diesem Themengebiet nicht ausreichend beschäftigt habe: du solltest gucken, in wie weit du für dein Vorhaben Browsermittel verwenden kannst so könntest du evtl. eine Firefox-Erweiterung schreiben, die das machst, was du willst andererseits könntest du auch einfach (wie bereits geschrieben) mit einer Browserengine (bzw. JS-Engine, wie u. a. die des IE) den JS-Code interpretieren lassen und dann deinen Parser darauf los lassen es gibt aber auch einen guten Grund, warum die Daten aus Browsergames nicht ohne weiteres ausgewertet werden sollen: in den meisten Fällen sind solche Bots verboten (zumindest würde ich das spontan meinen) ich hoffe, du kannst mit meiner Unwissenheit etwas anfangen ;D

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...