Zum Inhalt springen
Malarkey

Coder-Stübchen

Empfohlene Beiträge

Geschrieben

Ich steh gerade bei C auf dem Schlauch, ich programmiere einen Mikrocontroller und brauch eine Integration X über die Zeit, wie stell ich das am besten an?

Ich hab einen Timercounter, der mir jede Millisekunde (oder jedes andere Intervall) ein Signal gibt.

Geschrieben (bearbeitet)

Eclipse Indigo hat immer, wenn ich einen String angefangen habe, automatisch ein zweites Anführungszeichen neben den Cursor gesetzt und wenn man dann Enter drückte, landete man immer so, dass man direkt hinter der nächsten Klammer weiterschreiben konnte.

 

Mit Juno geht das irgendwie nich mehr, obwohl die Einstellungen passend gesetzt sind. Irgendjemand ne Idee?

 

Edit: Smart Insert Mode war nicht an :)

Bearbeitet von Necrofridge
Geschrieben

Kennt sich jemand mit Xdocument bei C# aus.

Mein File ist gelocked nach dem ersten Schreibzugriff und ich bekomm es nicht wieder frei, um weitere Änderungen reinzuschreiben, warum auch immer...

Xdocument hat keine Close oder Dispose Methode, und mit nem drüberliegenden XmlReader bzw. Streamreader funzt das auch nicht :(

Geschrieben

Du bist schon richtig, das xdocument kannst du nicht schließen weil du die data source schließen musst.

 

XDocument.Load(string) schließt die source nach dem laden.
XDocument.Load(XmlReader) schließt die source nicht.

Geschrieben (bearbeitet)
        Code entfernt 

Danke Dayjay, aber das brachte leider keinen Erfolg. :(

 

Hier mal die Funktion und ne Kurzbeschreibung des ganzes Programms.

Im Hintergrund wuselt ein FileSystemWatcher und schaut, ob Dateien in einem Pfad geändert wurden.

Dieser ruft dann bei einem OnChange-Event die obige Funktion auf, welche dann HandleNewDatasets aufruft, die neuen Daten werden dann auf nen Cloudbasiertes-CRM geschrieben via dem OrganizationServiceProxy. Bevor die Frage aufkommt, ich habe keinen Zugriff auf die SQL Datenbank des CRM, daher via XML.

Bearbeitet von Buggy McDermit
Geschrieben

Versuch mal

 

using (Stream s = File.OpenRead(xmlFilePath))
{
    xmlDoc.Load(s);
}

Geschrieben

Auf den Member "System.Xml.Linq.XDocument.Load(System.IO.Stream)" kann nicht mit einem Instanzenverweis zugegriffen werden.

Qualifizieren Sie ihn stattdessen mit einem Typnamen

 

Das funktioniert leider nur mit nem XmlDocument, ich benötigte aber nen XDocument weil ich ansonsten den "unterschiedlicherDatensatz ... XNodeEqualityComparer()" Abschnitt nicht nutzen kann und es in XmlDocument nichts vergleichbares gibt bzw. ich habe es nicht rausfinden können wie es gehen würde.

Geschrieben (bearbeitet)

Hoffe mir kann hier jemand helfen. Es geht um ein Script für das Denizen-Bukkit-Plugin (Minecraft). Es ist ein YML Script und ich bekomme in der Konsole folgenden Fehler:

 

erroreps8u.jpg

 

Hier der Codeschnippsel, der das verursacht:

 

trigger: /deposit/
script:
- chat "How much would you deposit?"
- wait 3
- ^if '<player.money>' >= <player.chat_history>
- ^execute as_player 'bank deposit <player.name>':<player.chat_history>
- ^execute as_player 'bank balance <player.name>'

 

Der if Command funktioniert im Prinzip richtig. Er liest das korrekte ingame Geld (<player.money>) aus und versucht es mit dem Wert, den ich im Chat eingegeben habe (<player.chat_history>) zu vergleichen. player.money wäre aktuell 289.00 und im chat habe ich 50 eingeben. Diese Werte gibt die konsole auch korrekt aus, scheitert aber an dem oben genannten error.

 

Kann mir da vielleicht jemand helfen?

Bearbeitet von Th3Z0n3
Geschrieben

Ich hab zwar keine Ahnung von Minecraft und von YML nie gehört, aber NaN bedeutet "Not a Number".

Du scheinst also zu probieren ein Feld das keinen Zahlenwert darstellt mit einem Feld das einen Zahlenwert darstellt zu vergleichen was nicht funktioniert.

Ich vermute mal player.chat_history wird intern als String oder Char-Feld Datentyp dargestellt während die andere Variabel vom Typ Double ist (eine Fließkommazahl). Schau mal ob du "casten" kannst in der Skriptsprache oder in ein Datenfeld schreiben kannst was auch vom Typ Double ist, damit du beim vergleichen, dann zwei gleiche Datentypen hast.

Geschrieben

Naja, das <player.chat_history> ist ja dafür da einen "Wert/Daten" aus dem Chat auszulesen. Und das geht ja. Ich weiß halt nur nicht, warum er das nicht als Zahl erkennt. Und das Typecasting ist mir bei YML leider nicht möglich. Ich bin ja schon froh, das er mittlerweile den richtigen Befehl ausführt, um das Geld (wenn er es als Zahl erkenne würde) auf das Konto zu überweisen.

 

Ich muss lediglich einen Weg finden, wie er das, was ich im Chat eingebe, als Zahl erkennt. Meh...

 

Aber deine Vorschläge haben mich schon mal etwas weiter gebracht. Zwar nicht bei diesem Problem, aber wenigstens bei dem anderen :D

Danke erstmal dafür!

Geschrieben

mal so ganz ohne erfahrung mal versucht das nicht als zahl sondern als Text Auszulesen?

Geschrieben (bearbeitet)

Hab ich auch schon versucht, bringt aber leider auch nichts. Er will den Chat einfach nicht als Zahl lesen. Auch wenn ich z.B. 50.98 nehme bleibt der Fehler. Ich komme selbst mit einem Trigger nicht weiter...

 

@Buggy

 

Würde es dir irgendwas bringen, wenn ich den kompletten Code mal herzeige?

 

Edit:

Ok, ich habe nun - ^if '<player.money>' >= <player.chat_history> durch - ^if <player.chat_history> <= <player.money> ersetzt bzw. einfach umgedreht, was im Prinzip ja das selbe ist. Nun nimmt er aber wieder den Befehl nicht.

 

Ich versuche ja mit der ganzen Sache einem NPC einen Chatbefehl zu geben. In diesem Fall /bank deposit [player] [amount]

Der "/" fällt weg, da er das automatisch als Befehl erkennt. Nun besteht folgendes Problem.

 

Der reguläre Chatbefehl wäre nun z.B. "bank deposit Th3Z0n3 50" oder halt "bank deposit <player.name> <player.chat_history>

Der Befehl wird vom Script allerdings nur bis <player.name> ausgeführt, weil er die 50 in der <player.chat_history> nicht als [amount] erkennt.

 

Konsole:

+> Executing 'EXECUTE': Type='AS_PLAYER' Comand='bank deposit Th3z0n3 50

Sollte also eigentlich gehen. Er hat ja die Zahl erkannt. Aber im Chat ingame heißt es [Money] Invalid amount.

Und der "invalid amount" ist ja dann <player.chat_history>.

 

 

Ich sitze jetzt ungelogen gute 5 Tage an diesem Script und fummel mich blöd. Das meiste geht ja nun. Das neue problem wäre jetzt die allerletzte Hürde. :)

Bearbeitet von Th3Z0n3
Geschrieben

@Buggy

Würde es dir irgendwas bringen, wenn ich den kompletten Code mal herzeige?

 

Eventuell aber das Hauptproblem ist, ich kenne die Skriptsprache nicht und wenn ich nach YML google finde ich auch quasi nichts bist du sicher das sie so heißt ?

Geschrieben (bearbeitet)

Ja klar heißt das YML. Genauer gesagt YAML. http://www.yaml.org

Ich weiß allerdings nicht genau, welche Version von YAML genutzt wird.

Bearbeitet von Th3Z0n3
Geschrieben

Ist aber keine Skriptsprache mit Aktionen, Konditionen, etc. sondern mehr was wie XML zur Festlegung von Datenfeldern, -typen und -längen.

Obwohl ich da schon länger raus bin denk ich mal, wird sich da kaum was geändert haben.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden


  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.