Datei auslesen und Einträge erkennen und zuordnen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datei auslesen und Einträge erkennen und zuordnen

    Hallo,

    ich bin dabei mir für meinen CS Server so aus Spass ein PHP Script zu basteln um die Server.cfg einfach mit Selects zu bearbeiten.

    Ausgangslage...
    Die Datei Server.cfg
    Code:
    hostname "CS GameServername"
    rcon_password "rconpasswort"
    sv_password ""
    
    mp_autokick "0"
    mp_autoteambalance "0"
    mp_c4timer "35"
    mp_flashlight "1"
    mp_footsteps "1"
    mp_forcechasecam "0"
    ...
    So, nun möchte ich folgendes machen...
    Ich möchte es Zeile für Zeile auslesen, die Punkte erkennen lassen und zuordnen lassen. Ich habe da dann ein Formular mit Textfeldern und Selects.
    Ist z.b. mp_autokick auf 0, dann soll Aus bei Select erscheinen.

    Ich bekomm das zwar ausgelesen, aber ich habs bisher noch nicht geschafft erkennen zu lassen was dort nun steht um es dann zuordnen zu können.

    Kann mir da jemand ein paar Tips geben ?
    Ich will keine fertige Lösung, ich wills ja selber hinbekommen. Ich brauch nun nur mal ein paar Denkanstösse wie ich das anstellen kann.

  • #2
    Datei zeilen weise einlesen

    mit explode Bezeichener und Wert trennen

    das ganze in einer Array umbauen wobei der Bezeichner als Keys dient

    der Rest ist dann nur noch logische Umsetzung

    Kommentar


    • #3
      OK, danke.

      Ich habe allerdings ein kleines Problem.
      Und zwar steht der Wert hinten mal in "" und mal ohne "".
      Ne Idee wie ich das hinbekommen kann das er es auch ohne die "" richtig erkennt ?

      Kommentar


      • #4
        pro Zeile steht immer der Schlüsselwort (ohne Leerzeichen) und dann
        kommt der Wert, stimmt ?

        Dann ist ja einfach:
        - such das 1. Leerzeichen
        - alles, was davor ist, ist dein Schlüssel
        - alles, was danach kommt, ist dein Wert, unabhängig davon, ob er in "
        eingeschlossen ist order nicht.

        Kommentar


        • #5
          Ok, das Leerzeichen ist mein Trennpunkt, aber dann hab ich ja bei vielen einen Wert "1" anstatt 1. Wie geh ich das denn an ?
          Die Werte überprüfen ob die ein "" enthalten und dann das "" entfernen, oder das "" direkt entfernen ?

          Oh oh, ich befürchte ich hab meine Lösung schon geschrieben
          Ich teste das heute abend mal alles aus.

          Danke Dir soweit.

          Kommentar


          • #6
            Kleines Problem bei der Variante...

            Alles nach dem Leerzeichen welches mein Trennzeichen ist soll mein Wert sein. Das ist richtig, aber z.b. wird der hostname auch mehrfach geteilt weil er Leerzeichen enthält.

            Wie bekomm ich es nun hin das ich das Leerzeichen als Trennwert nehme und Einträge wie z.b. der hostname nicht gesplittet werden ?

            Kommentar


            • #7
              Ähm ...
              nach dem 1. Leerzeichen sollst du suchen, danach per substr trennen.
              Es ist dann egal, wieviele Leerzeichen der Rest noch hat

              Kommentar


              • #8
                Ahhh..

                dann werd ich mal gucken wie ich nach dem 1. suchen kann.
                Danke, da stand ich wohl auf der Leitung

                Kommentar


                • #9
                  Spitze, das funktionuckelt einwandfrei.
                  Nu noch ein Problem

                  Es gibt sag ich mal 10 Einträge die ich gewollt zuordnen will um diese mittels Selectbox zu ändern und den Rest will ich einfach in eine Textarea knallen damit man das dort noch bearbeiten kann.

                  Denn es gibt etliche Einstellungen und ich will nicht jede mittels Selectbox auswählen und es gibt ja auch Kommentare die gesetzt sein könnten sowie Einstellungen die nicht wirklich Standard sind.

                  Ne ahnung wie ich das anstellen kann ?
                  Ok, wahrscheinlich jede ausgelesene Zeile danach absuchen, aber nach 10 oder 20 Sachen eine Zeile absuchen ?
                  Oder geht das evtl. einfacher ?

                  Kommentar


                  • #10
                    wie meinst du das? Meinst du so:

                    keyA optionA1 optionA2 .... -> select-Liste?
                    keyB ....

                    dann kannst du den 2. String per explode in array umbauen und mit
                    for dein select bauen
                    der Rest kannst du dann einfach als Eingabefelder anbieten, ist
                    übersichtlicher als komplett in einer Textarea reinzuhauen.

                    Kommentar


                    • #11
                      Also es gibt z.b. Einträge wie...

                      mp_roundtime "4"
                      mp_timelimit "30"
                      mp_maxrounds "0"
                      exec banned.cfg

                      log on
                      logaddress_add 192.168.0.1 27010

                      Es sind also Sachen evtl. dabei die nicht mittels Leerzeichen getrennt werden dürfen.
                      Deshalb wäre es Sinnvoll 20 Feste Felder anzugeben mit Select oder Textfeld und nach diesen Suchen. Sollte davon einer nicht existieren, dann steht der da mit einem Standardwert sodas dieser Eintrag in die neue Config kommt.
                      Zum anderen soll dann der ganze Rest der von mir nicht herausgepickt wird in eine Textbox rein.
                      So gehe ich sicher das alles geändert werden kann und eventuelle zusätzliche Einträge nicht verunstaltet werden.

                      Kommentar

                      Lädt...
                      X