Beiträge von Michael P.

    Hier mal einfach etwas umfangreicherer Code, aus dem Du Dir das benötigte rauspicken kannst ;-) bzw. bei Unklarheiten einfach rückfragen
    (ich habe auf XNeo's Vorschlag aufgebaut, direkt die URL zur Prüfung zu verwenden an Stelle einer "Kennzeichnungsvariablen"):



    Gruß
    Michael

    Vorschlag:


    lege in den Framesets eine JavaScript-Variable an, wobei der Wert das Frameset angibt (z.B. var carstens_frameset = "1");


    auf den einzelnen Seiten kannst Du nun


    a) prüfen, ob die Variable im parent überhaupt vorhanden ist und, falls ja, einen gültigen Wert hat (Entscheidung: eigenes oder fremdes Frameset oder gar kein Frameset)


    falls in eigenem Frameset:


    b) anhand des Variablenwertes prüfen, in welchem Deiner eigenen Framesets die Seite geladen ist (Entscheidung: anderes Frameset nachladen oder nicht)


    Gruß
    Michael

    Zitat

    aber was meinst du mit benutze CSS? ich sehe da gar keinen zusammenhang.. wie kann den css frames ersetzen?

    Man kann mit CSS frame-ähnliche Effekte erzielen, siehe z.B. das Menü auf http://www.deadman.org/.
    Funktioniert natürlich nur mit neueren Browsern, insofern würde ich es je nach Zielgruppe einer gegebenen Webseite nicht uneingeschränkt empfehlen.

    Hmm... also als Einsteigersprache würde ich Perl nicht gerade bezeichnen. Wie fiel die Wahl gerade darauf?


    Meine persönliche Ansicht: Gehe nicht nur mit reinen "ich lerne jetzt Perl"-Büchern an die Sache heran (die meisten Einführungen in eine bestimmte Programmiersprache gehen davon aus, dass der Leser bereits gewisse Grundkenntnisse im Dunstkreis "Programmieren" besitzt, auch wenn sie von sich behaupten, keine solchen zu erfordern), sondern auch mit Literatur zum Erlernen des Softwaredesigns und der Vorgehensweise beim Programmieren an sich (und damit meine ich nicht sowas wie "Zum Programmierer in 21 Tagen", so etwas mag zwar kurzfristig schnelle Erfolge bieten, ist aber in der Regel eine eher schlechte Grundlage) -- derartige Bücher verwenden in der Regel auch eine bestimmte Sprache für ihre Beispiele, ob's da viele dieser Art mit Perl gibt, sei dahingestellt (gute Bücher in dieser Richtung zum Thema Objektorientierung gibt es z.B. von Bertrand Meyer, wobei diese einen absoluten Anfänger evtl. etwas erschlagen. Und Perl ist eigentlich keine oo-Sprache...).

    Hallo,


    Zitat

    2. Was muss ich jetzt konkret tun???


    1.


    Nun ja, zunächst würde ich mir überlegen, welche der beiden oben beschriebenen Alternativen für Dich in Frage kommt:


    A. direkte Verarbeitung der von den Teilnehmern gesendeten Informationen auf dem Webserver


    oder


    B. weiterhin Zusendung per Mail an Dich mit maschineller Erstellung des neuen Spielstandes auf Deinem Rechner und anschliessendem Hochladen auf den Server).



    Zu A.: Bietet Dein Webserver irgendeine der Technologien PHP, ASP, Java Servlets/JSP, "freie" CGI, ..., bzw. kannst Du mit Deiner Seite auf einen umziehen, der so etwas bietet?


    Falls nein, sind wir auch schon bei B.: Hast Du die Möglichkeit, Deine Mail automatisch beim Eintreffen durch einen Filter zu schicken (auf Linux/Unix-Systemen beispielsweise i.d.R. recht problemlos machbar, manche Mailclients bieten diese Möglichkeit aber auch)? Falls nein, bleibt noch das "händische" Einspielen der Daten in eine Applikation zur Berechnung des neuen Spielstandes.



    2.


    Wenn Du geklärt hast, dass Du grundsätzlich die Möglichkeit hast, die Daten an ein Programm zu füttern, solltest Du Dir überlegen, ob die Daten, die Dir die Teilnehmer schicken, zur maschinellen Verarbeitung geeignet sind, und falls nicht, ob diese sich so umformen lassen (z.B. durch veränderte Formulare auf den Webseiten), dass sie es sind.


    Beispiel: Es gebe die Möglichkeit, Waren A, B, und C zu kaufen, in Stückzahlen von 0 bis 10. Wenn die Spieler ihren Kaufwunsch frei als Text formulieren (z.B. "Ich kaufe A und B jeweils 3 Stück, ach ja, und noch 2 von C" oder "Ich nehme nur von A drei Teile, und sonst nichts" etc.) muss das Formular geändert werden, so dass die Spieler Gegenstand und Stückzahl direkt in Auswahllisten wählen bzw. in extra für die Werte gedachte Felder eintippen --> das Formular kann dann sowas senden wie "A=3,B=0,C=8" (über JavaScript zusammengesetzt) oder in einer anderen, durch die Formularstruktur genau definierten Form --> Spielereingabe kann leicht vom Programm aus dem Text herausgelesen werden


    Wenn die Eingabedaten prinzipiell strukturiert beschreibbar wären -- also ein Spiel, bei dem "harte Daten" von den Spielern an Dich übermittelt werden, in welchem Format auch immer, im Gegensatz zu beispielsweise einem Erzählspiel -- dann hilft Dir da sicher auch der- oder diejenige, der/die die Software zur Spielstandberechnung entwickelt.


    Und schliesslich musst Du auch die Berechnungen, die aus dem alten Spielstand + Eingabedaten der Spieler zum neuen Spielstand führen, exakt beschreiben können, zumindest in Worten und ggf. interaktiv zusammen mit jemand, der oder die Dir das Programm zur Spielstandberechung entwickelt.


    Und damit sind wir schon bei



    3.


    Jemand muss das Programm, das Du benötigst, auch entwickeln ;-)


    Je nachdem, wie aufwendig / komplex Dein Spiel ist, und wie lange es dauert, die genauen Anforderungen an das Programm zu beschreiben (dazu gehört auch, dass sie zunächst erkannt werden müssen -- und die Erfahrung lehrt, dass die meisten Kunden bei Softwareprojekten eigentlich nicht so genau wissen, was sie eigentlich wollen bzw. benötigen, und sich dies erst im Dialog herauskristallisiert, oder manchmal auch erst dann, wenn die Software bereits in den produktiven Betrieb genommen wurde...), kann dies durchaus seine Zeit brauchen.


    Und natürlich spielt auch eine Rolle, wie viele Leute an der Applikation entwickeln, wie viel Zeit sie dafür haben, wie gut die Kommunikation und Koordination zwischen ihnen untereinander und mit Dir klappt, wie erfahren und/oder gut sie beim Design und der Umsetzung von Software sind, etc...



    Ciao
    Michael

    DirkP: Wenn Du einen overflow verhindern möchtest: schau' Dir mal strncpy an -- damit kannst Du die Anzahl der zu kopierenden Zeichen einschränken (auf die Größe Deines Puffers). Beachte, dass strncpy nicht automatisch ein null-Byte anfügt, falls sich in den ersten n Zeichen des Quell-Strings kein 0 befindet. Also sicherheitshalber ein Zeichen weniger kopieren, als der Puffer lang ist, und ganz ans Ende des Puffers manuell ein 0 schreiben.

    Dirk:

    Zitat

    Michael P.:
    Wenn ich es so mache, dann hatte ich das Problem, daß die Variable nicht mehr als Variable erkannt wurde.


    In meinem Beispiel ist "datei" eine Variable.


    von welchem Typ? als char * muss das funktionieren:


    FILE *datei_ein;
    char *datei;
    datei = "/home/dirkp/datafile"
    datei_ein = fopen( datei, "w" );
    ...
    fclose( datei_ein );


    Oder meinst Du die Beschwerden des Compilers, die sich ergeben, wenn die Backslashes nicht escaped werden (das hatte ich ja in meinen Beispielen nicht drin gehabt, worauf !ND hingewiesen hat)

    Es sei datei (mit char* datei) der Name der Datei: dieser kann alle Werte annehmen, die Du zur Adressierung einer Datei aus dem aktuellen Verzeichnis während der Ausführung (Du schreibst: "in dem selben Verzeichnis wie die C Datei" -- eigentlich ist es das aktuelle Verzeichnis, in dem Dein Programm ausgeführt wird, und Du startest das Programm eben in dem Verzeichnis, in dem die Programmdatei liegt) verwenden kannst.


    Beispiele (mit Windows-Pfadnamen):


    Das aktuelle Verzeichnis sei C:\myprograms\src\


    datei = "foo" ---> C:\myprograms\src\foo
    datei = "dat\foo" ---> C:\myprograms\src\dat\foo
    datei = "..\dat\foo" ---> C:\myprograms\dat\foo
    datei = "\dat\foo" ---> C:\dat\foo
    datei = "D:\dat\foo" ---> D:\dat\foo


    Gruß
    Michael