Josee: Aus txt-Datei eine Wortliste in meiner MYSQL-Datenbank erzeugen

Hallo,
ich stehe nun vor einer Aufgabe, bei der mein Können nicht mehr ausreichend ist, um sie alleine zu lösen.

Folgendes will ich machen.
Ich habe eine Wortliste die sieht wie folgt aus:

[...]
Abbeizen {n} :: pickling; stripping
Abbeizpaste {f} :: scouring paste
Abbesche Zahl {f} [math.] :: Abbe coefficient
[...]
natürlich {adj} :: natural
natürlich; ungekünstelt {adv} :: naturally
natürlich; schlicht {adj} :: artless
[...]
Wanderschauspieler {m} | Wanderschauspieler {pl} :: barnstormer | barnstormers
[...]

(Ganz kleiner Ausschnitt; txt-Datei ist 9 MB groß)

Mein Anliegen ist nun, die Wörter in die Datenbank zu schreiben. Immer das in den eckigen Klammern [] zur Veranschaulichung soll genommen werden. Das danach kommt und das davor steht, soll ignoriert werden.

natürlich; [schlicht] {adj} :: artless
[Wanderschauspieler] {m} | Wanderschauspieler {pl} :: barnstormer | barnstormers

Könnt ihr mir hier Tipps geben wie ich das lösen kann?

Schöne Grüße vom Bodensee.

  1. Hallo,
    ich stehe nun vor einer Aufgabe, bei der mein Können nicht mehr ausreichend ist, um sie alleine zu lösen.

    Folgendes will ich machen.
    Ich habe eine Wortliste die sieht wie folgt aus:

    [...]
    Abbeizen {n} :: pickling; stripping
    Abbeizpaste {f} :: scouring paste
    Abbesche Zahl {f} [math.] :: Abbe coefficient
    [...]
    natürlich {adj} :: natural
    natürlich; ungekünstelt {adv} :: naturally
    natürlich; schlicht {adj} :: artless
    [...]
    Wanderschauspieler {m} | Wanderschauspieler {pl} :: barnstormer | barnstormers
    [...]

    (Ganz kleiner Ausschnitt; txt-Datei ist 9 MB groß)

    Mein Anliegen ist nun, die Wörter in die Datenbank zu schreiben. Immer das in den eckigen Klammern [] zur Veranschaulichung soll genommen werden. Das danach kommt und das davor steht, soll ignoriert werden.

    natürlich; [schlicht] {adj} :: artless
    [Wanderschauspieler] {m} | Wanderschauspieler {pl} :: barnstormer | barnstormers

    Könnt ihr mir hier Tipps geben wie ich das lösen kann?

    Schöne Grüße vom Bodensee.

    Du willst also pro zeile nur das auslesen, was in eckigen klammern ist?

    1. Nicht ganz. Die eckigen Klammern habe ich zur Veranschaulichung dazugemacht. In den original Zeilen sind diese nicht vorhanden.

      Aber ja, das was in den Klammern steht möchte ich auslesen.

      1. Hallo,

        Nicht ganz. Die eckigen Klammern habe ich zur Veranschaulichung dazugemacht. In den original Zeilen sind diese nicht vorhanden.

        und wie soll das Programm entscheiden, welches der Wörter Du haben möchtest?
        Hast Du Dir dazu eine Vorschrift überlegt? Wie entscheidest Du?

        Freundliche Grüße

        Vinzenz

        1. Hallo,

          Nicht ganz. Die eckigen Klammern habe ich zur Veranschaulichung dazugemacht. In den original Zeilen sind diese nicht vorhanden.

          und wie soll das Programm entscheiden, welches der Wörter Du haben möchtest?
          Hast Du Dir dazu eine Vorschrift überlegt? Wie entscheidest Du?

          Freundliche Grüße

          Vinzenz

          lustich, das wir die gleiche idee hatten %>

          1. Ja, ihr habt recht. Ich brauch Kriterien. Hab mir die Kriterien überlegt.

            Es soll immer das Wort genommen werden das vor der ersten { kommt.

            Beispiel: natürlich {adj} :: natural -> Wort das genommen wird: natürlich

            Außerdem gibt es Zeilen in denen vor den eigentlichen Wörter die Herleitung steht.

            Beispiel: niederträchtig; verleumderisch; beleidigend {adj} :: scurrilous

            Dafür das Kriterium, das Wort nach dem letzten Semikolon ; -> Wort das in dem Beispiel genommen wird: beleidigend

            __________________________________________________________________________
            Zusammengefasst: Das Wort nach dem letzten ; (falls vorhanden) und vor dem ersten { (ist immer vorhanden)

            1. Ja, ihr habt recht. Ich brauch Kriterien. Hab mir die Kriterien überlegt.

              Es soll immer das Wort genommen werden das vor der ersten { kommt.

              Beispiel: natürlich {adj} :: natural -> Wort das genommen wird: natürlich

              Außerdem gibt es Zeilen in denen vor den eigentlichen Wörter die Herleitung steht.

              Beispiel: niederträchtig; verleumderisch; beleidigend {adj} :: scurrilous

              Dafür das Kriterium, das Wort nach dem letzten Semikolon ; -> Wort das in dem Beispiel genommen wird: beleidigend

              __________________________________________________________________________
              Zusammengefasst: Das Wort nach dem letzten ; (falls vorhanden) und vor dem ersten { (ist immer vorhanden)

              http://de.selfhtml.org/perl/sprache/regexpr.htm

              1. http://de.selfhtml.org/perl/sprache/regexpr.htm

                Danke für den Link. Ich habe es nun schon einmal so weit geschafft, dass von der Zeile:
                endlos {adv} :: unendingly

                _endlos_ ausgelesen wird.

                  
                <?php  
                $string = "endlos {adv} :: unendingly";  
                if (preg_match('|{|', $string)) {  
                 preg_match('|\w+|', $string, $treffer);  
                }  
                print_r($treffer);  
                ?>  
                
                

                Seit einer Ewigkeit versuche ich allerdings nun schon das folgende. In meiner Txt-Datei gibt es auch Zeilen die so aussehen:
                endlos; unendlich groß; ungeheuer {adj} :: infinite

                Aus dieser möchte ich ja wie gesagt das Wort hinter dem letzen ; auslesen und vor dem ersten { also: ungeheuer

                Ich bin immer noch nicht dahinter gekommen wie ich das hinbekomme.
                Bitte sei jemand so gnädig und helfe mir...

      2. Nicht ganz. Die eckigen Klammern habe ich zur Veranschaulichung dazugemacht. In den original Zeilen sind diese nicht vorhanden.

        Aber ja, das was in den Klammern steht möchte ich auslesen.

        Was genau sind die Kriterien, welches Wort genommen wird? das erste von allen, hinter denen eine { kommt?? wenn du die kriterien nicht genau mitteilst, kann ich dir leider nicht helfen. Vielleicht helfen dir reguläre Ausdrücke weiter?