| Geschrieben um 11:51 am 21.06.2004 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | <td valign="top"><div class="post"><p>Hallo,</p> <p>sollte ich einen Beitrag übersehen haben in dem es genau darum geht, sage ich jetzt schon mal sorry.</p> <p>Vorab: Ich arbeite mit der inform 6/10, deutsche lib19.</p> <p>Für alle die es nachvollziehen wollen habe ich der Einfachheit halber in Klammern die jeweilige Datei der Funktion oder Konstante geschrieben, damit ihr’s leichter findet :-)</p> <p>Folgendes Problem:</p> <p>Ich habe einfach mal einen Tisch in Max’s Raum gestellt:</p> <p>“`Object Tisch “Tisch” startraum</p> <p> with dekl 1,</p> <p> name ‘tisch’,</p> <p> description “Ein einfacher Tisch.”,</p> <p> </p> <p> has male supporter;“`</p> <p>Wenn ich den Knödel nun auf den Tisch lege und alles mal untersuche passiert folgendes:</p> <p>Startraum</p> <p>Du befindest dich in einem Raum, der bar jeglicher bemerkenswerter Merkmale ist.</p> <p>Du siehst hier einen saftigen Knödel und einen Tisch.</p> <blockquote> <p>nimm knödel</p> </blockquote> <p>Du trägst den saftigen Knödel jetzt bei dir.</p> <blockquote> <p>leg ihn auf tisch</p> </blockquote> <p>Du legst den saftigen Knödel auf den Tisch.</p> <blockquote> <p>l</p> </blockquote> <p>Startraum</p> <p>Du befindest dich in einem Raum, der bar jeglicher bemerkenswerter Merkmale ist.</p> <p>Du siehst hier einen Tisch (darauf siehst du einen saftigen Knödel).</p> <blockquote> <p>sieh auf tisch nach</p> </blockquote> <p>Auf dem Tisch ist einen saftigen Knödel.</p> <p>Das Problem ist, dass hier eine Liste im Fall Akk läuft, in der WriteListR (verblibm.h) aber der Verweis auf die Konstante IS<strong>TX (also ” ist “) zeigt. (IS</strong>TX wird in german.h deklariert)</p> <p>“`if (c<em>style & ISARE</em>BIT ~= 0)</p> <p> { if (j==1 && o hasnt pluralname)</p> <p> print (string) [b]IS<strong>TX[/b]; else print (string) ARE</strong>TX;</p> <p> if (c<em>style & NEWLINE</em>BIT ~= 0) print “:^”; else print (char) ’ ‘;</p> <p> c<em>style = c</em>style - ISARE_BIT;</p> <p> }“`</p> <p>Sonst wird mit IS2__TX (“siehst du “) gearbeitet, z.B. bei dem Inhalt eines Containers.</p> <p>Man könnte jetzt einfach die WriteListR ersetzten und aus dem IS<strong>TX ein IS2</strong>TX machen, aber dann stimmen die Leerzeichen nicht (bei dem einen ein führendes bei dem anderen ein folgendes).</p> <p>Ohne Fehler hat es bisher funktioniert in dem ich in der LanguageLM (german.h) unter “search:” den Fall der Liste von Akk auf Nom gesetzt habe:</p> <p>“`Search: switch(n)</p> <p> { 1: “Aber es ist dunkel.”;</p> <p> 2: “Da ist nichts auf “, (dem) x1, “.”;</p> <p> 3: print “Auf “, (dem) x1; !Max Kalus</p> <p> WriteListFromCase(child(x1),</p> <p> TERSE<em>BIT + ENGLISH</em>BIT + ISARE<em>BIT + CONCEAL</em>BIT, 0, Nom);</p> <p>…….</p> <p> “`</p> <p>Habt Ihr Euch schon auf einen “Standard” geeinigt oder bastelt das jeder selbst?</p> <p>(oder habe ich etwas übersehen?)</p> </div></td> |
| Geschrieben um 16:50 am 21.06.2004 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 275 | <td valign="top"><div class="post"><p>Bis zur Library-Version 18 stand in der german.h noch:</p> <p>“` 3: print “Auf “, (dem) x1; !Max Kalus</p> <p> WriteListFromCase(child(x1),</p> <p> TERSE<em>BIT + ENGLISH</em>BIT + ISARE<em>BIT + CONCEAL</em>BIT, 0, Gen);“`</p> <p>Ich hatte den Fehler entdeckt, weil er im “Provisorium” (einem Wettbewerbsbeitrag von mir) zu</p> <p>*>schau auf küchentisch nach</p> <p>Auf dem Küchentisch ist eines Kochbuchs.*</p> <p>führte. Ich habe Max damals (vorschnell und fehlerhaft, argh) vorgeschlagen, den Genitiv durch den Akkusativ zu ersetzen. Im Falle des Kochbuchs (dekl 2, neuter) funktionierte das, weil Akkusativ und Nominativ identisch sind. Deshalb ist mir nicht aufgefallen, dass ich den Fehler lediglich durch einen weiteren Fehler ersetzt habe.</p> <p>Falls gegen den Nominativ niemand Einwände hat, schreib Max doch mal ne E-Mail, er liest hier nicht so regelmäßig mit.</p> </div></td> |
| Geschrieben um 18:40 am 21.06.2004 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 707 | Ich denke mal, wenn ISAREBIT gesetzt ist, müsste die Liste immer im Nominativ ausgegeben werden. (Oder besser gesagt, das ISAREBIT ist nur bei Nominativ-Listen sinnvoll.) Könnte man so etwas nicht automatisieren? (Nur so’n Gedanke.) |
| Geschrieben um 21:02 am 21.06.2004 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | <td valign="top"><div class="post"><p>Hallo,</p> <p><strong>Zitat:</strong></p> <blockquote> <p>Ich habe Max damals (vorschnell und fehlerhaft, argh) vorgeschlagen, den Genitiv durch den Akkusativ zu ersetzen.</p> </blockquote> <p>Macht nix - besser du wie ich ;-) (wie wir in Hessen sagen)</p> <p><strong>Zitat:</strong></p> <blockquote> <p>Falls gegen den Nominativ niemand Einwände hat, schreib Max doch mal ne E-Mail, er liest hier nicht so regelmäßig mit.</p> </blockquote> <p>Habe ich gemacht.</p> <p>Ansonsten habe ich nochmal die einzelnen .h-Files durchsucht und versucht den ListWriter zu verstehen (Haha) und bin auf folgendes in der german.h gestossen (übrigens nur ein paar Zeilen über den Search-Messages:</p> <p>“`Look: switch(n)</p> <p> { 1: print ” (auf “, (dem) x1, “)”;</p> <p> 2: print ” (in “, (dem) x1, “)”;</p> <p> ! 3: print ” (als “; @print_obj x1; print “)”;</p> <p> 3: print ” (als “, (object) x1, “)”;</p> <p> 4: print “^Auf “, (dem) x1;</p> <p> WriteListFromCase(child(x1),</p> <p> ENGLISH<em>BIT + RECURSE</em>BIT + PARTINV_BIT</p> <p> + TERSE<em>BIT + ISARE</em>BIT + CONCEAL_BIT, 0, Nom);</p> <p> “.”;</p> <p> “`</p> <p>Hier wird der Fall so gesetzt, wie wir es (hoffentlich richtig) denken.</p> <p>Diese Message wird von der SayWhatsOn(Object) genutzt.</p> <p><strong>Zitat:</strong></p> <blockquote> <p>Ich denke mal, wenn ISARE_BIT gesetzt ist, müsste die Liste immer im Nominativ ausgegeben werden. </p> </blockquote> <p>Hier kann man entweder mit WriteListFrom arbeiten, dann ist WriteListCase standardmässig auf Akk gesetzt, oder mit WriteListFromCase und dann einen Fall wählen, daher macht es eigentlich keinen Sinn bei WriteListFomCase den Akk zu wählen.</p> <p>Für ISARE_BIT müsste also immer mit WritListFromCase (…….,Nom) gearbeitet werden.</p> <p><strong>Zitat:</strong></p> <blockquote> <p>Könnte man so etwas nicht automatisieren?</p> </blockquote> <p>Hmm, ich habe keine Möglichkeit gefunden ohne ordentlich in den ListWriter einzugreifen, aber ich bin auch noch neu.</p> <p>Man könnte auch das ISARE_BIT entfernen und ” siehst du ” einfügen:</p> <p>“`3: print “Auf “, (dem) x1,” siehst du “; !Max Kalus - ergänzt von Kris ;-)</p> <p> WriteListFromCase(child(x1),</p> <p> TERSE<em>BIT + ENGLISH</em>BIT + CONCEAL_BIT, 0, Akk);</p> <p> “.”;</p> <p> “`</p> <p>Ich persönlich fände aber die Version wie bei der Look-Message die sauberste. Was meint ihr?</p> <p>Grüße</p> <p>Kris <strong>Zitat:</strong> ></p> </div></td> |
| Geschrieben um 11:22 am 23.01.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 275 | Ha, den Thread hatte ich ganz vergessen. Erst durch eine Äußerung von Kris drauf gestoßen, dass der Fehler ja immernoch in der Lib ist. Kris:
Hast du eine Antwort bekommen? Ich wundere mich nur, immerhin ist das über ein halbes Jahr her und es sind gerade mal drei Buchstaben auszutauschen (rein für die Fehlerbehebung, dir sind ja auch noch andere Sachen eingefallen)…. |
| Geschrieben um 16:52 am 23.01.2005 | Zitat | Editieren | Löschen | |
Mitglied Dr Gumby Beiträge: 181 | ChrisW:
Nein, die ist wohl untergegangen. |