9 Antworten Neueste Antwort am Aug 21, 2016 4:13 AM von NorbertH

    Wörter auslesen aus einem Textfeld

    nickburns

      Guten Abend,

       

      ich habe eine Musikliste in meine Filemaker-Datenbank importiert, die jedoch alle Informationen in einem Feld beinhaltet.

      Nachfolgend vier Musterdatensätze:

       

      DS 1:     Song: Brown Sugar, Interpret: Rolling Stones, Label: Decca, Erschienen: 1971, Chartplatz: 6

      DS 2:     Song: I feel fine, Interpret: Beatles, Label: EMI

      DS 3:     Interpret: Small Faces, Song: Tin Soldier

       

      Jeder Datensatz ist anders aufgebaut, es können auch noch weitere Attribute hinzukommen wie z. B. Verkauft: 6 Millionen.

       

      Jetzt möchte ich jedoch vier Felder generieren, Feld1 wäre "Song", Feld2 "Interpret", Feld3 "Label", Feld4 "Erschienen".

      Dabei ist wichtig, dass ich nicht das Attribut, also z. B. das Wort "Song" im Feld haben möchte, sondern lediglich den Wert"Brown Sugar".

       

      Damit hätte ich erreicht, dass ich die vier Attribute mit ihren Werten in vier dafür geschaffene Felder habe.

       

      Ich habe es mit "WörterMitte" versucht, auch mit "Position", aber irgendwie bin ich da wohl blockiert bzw. ist mir das nicht so klar, wie ich das anstellen muss :-(

       

      Ich danke schon jetzt für Eure Hilfe.

       

      Viele Grüße

      Nick

        • 1. Re: Wörter auslesen aus einem Textfeld
          NorbertH

          Hallo Nick,

           

          Sind die Feldwerte immer durch ein KoMama getrennt ????

           

          Ist die Reihenvolge immer gleich " Song: xxxxx, Interpret: xxxx, etc oder ist die Reihenvolge unterschiedlich ???

           

          Jetzt geht es aber erst einmal ins Bett, Morgen Umläufe des Tages werde ich dir einen Lösungsansatz geben...

           

          Mit freundlichen Grüßen

          Norbert

          • 2. Re: Wörter auslesen aus einem Textfeld
            nickburns

            hallo, norbert,

             

            ja, die feldwerte sind immer durch ein komma getrennt.

             

            nein, die reihenfolge ist unterschiedlich.

             

             

            vielen dank für deine mail.

             

            viele grüße

            nick

             

             

            Am 18.08.2016 um 23:38 schrieb NorbertH:

             

            Wörter auslesen aus einem Textfeld

            Antwort von NorbertH in Deutsches Forum - Komplette Diskussion anzeigen

             

            Hallo Nick,

             

             

            Sind die Feldwerte immer durch ein KoMama getrennt ????

             

             

            Ist die Reihenvolge immer gleich " Song: xxxxx, Interpret: xxxx, etc oder ist die Reihenvolge unterschiedlich ???

             

             

            Jetzt geht es aber erst einmal ins Bett, Morgen Umläufe des Tages werde ich dir einen Lösungsansatz geben...

             

             

            Mit freundlichen Grüßen

             

            Norbert

             

            Sie können auf diese Nachricht antworten, indem Sie diese E-Mail beantworten oder die Nachricht unter FileMaker Community aufrufen

            Starten Sie eine neue Diskussion in Deutsches Forum per E-Mail oder unter FileMaker Community

            Sie folgen Wörter auslesen aus einem Textfeld in diesen Aktivitätenlisten: Posteingang

            Bearbeiten Sie Ihre Emailvoreinstellungen

             

            FileMaker Developer Conference 2016 • Las Vegas, Nevada • July 18-21 • www.filemaker.com/devcon

            >

            • 3. Re: Wörter auslesen aus einem Textfeld
              HLandschulz

              Hallo Nick,

               

              es gibt eine eigene Funktion von Arnold Kegebein:

               

              //TextBetween( _text; _start; _end; _type; _count )

               

               

              SetzeVar( [

                _length = Länge( _text );

                _startPos = Wenn( IstLeer( _start ); 1; Position( _text; _start; 1; _count ) );

                _startPos = Wenn( _startPos = 0; 0; _startPos + Länge( _start ) );

                _endPos = Falls(

                IstLeer( _end );

                _length + 1;

                _type = "LAST" ODER _type = "LONG" ODER _type = "GREEDY";

                Position( _text; _end; _length; -1 );

                // Else

                Position( _text; _end; _startPos; 1 )

                )

              ];

                Wenn( _startPos = 0 ODER _endPos = 0;

                "";

                // Else

                ZeichenMitte( _text; _startPos; _endPos - _startPos )

                )

              )

               

               

              /*

              Parameter

              _text (text) text to be processed

              _start (text) start text

              _end   (text) end text

              _type (text) NEXT | LAST | SHORT | LONG | GREEDY

               

               

              Beschreibung

              Returns from text every characters between the first appearance of start and a specific appearance of end defined by type.

              If start is empty, everything from the beginning, if end is empty, everything from the end is taken.

               

               

              Values for type

                NEXT, SHORT First end following start

                LAST, LONG, GREEDY Last occurrence of end

              */

              • 4. Re: Wörter auslesen aus einem Textfeld
                nickburns

                Hallo, HLandschulz,

                 

                vielen Dank für deinen Lösungsansatz, aber wie würde der Engländer sagen: "Bohemian Villages for me" :-)

                 

                Das übersteigt meine Kenntnisse.

                 

                Liebe Grüße

                Nick

                • 5. Re: Wörter auslesen aus einem Textfeld
                  NorbertH

                  Hallo hier mein Lösungsansatz……

                   

                  Gegeben:

                  eine Tabelle mit einem Feld „Text“ vom Typ text.

                  „Song: Brown Sugar, Interpret: Rolling Stones, Label: Decca, Erschienen: 1971, Chartplatz: 6“

                   

                  Dann habe ich ein neues Formel - Feld erstellt mit der Formel

                   

                  Austauschen ( Text ; ", " ; "¶" )&“¶“ und den Namen „Test“

                   

                  das Bewirkt das du eine Liste im Feld Test hast.

                   

                  Song: Brown Sugar

                  Interpret: Rolling Stones

                  Label: Decca

                  Erschienen: 1971

                  Chartplatz: 6

                   

                   

                  Jetzt habe ich  neue Formelfelder erstellt Feld1… Feld5

                   

                  Die Formel für Feld1

                   

                  ZeichenLinks ( Test ; Position ( Test ; "¶" ; 1 ; 1 ) )

                  Hiermit lese ich die erste Zeile aus dem Feld Test aus.

                   

                  Die Formel für Feld2

                   

                   

                  ZeichenLinks ( Austauschen ( Test ; Feld1 ; "" ) ; Position ( Austauschen ( Test ; Feld1 ; "" ) ; "¶" ; 1 ; 1 ) )

                   

                  Hier lese ich wieder die erste Zeile aus Feld Test aus., wobei ich mit Austauschen(Test;Feld1;““) die erste Zeile die ich im Feld1 stehen habe lösche.

                   

                  usw.

                  Feld3

                  ZeichenLinks ( Austauschen ( Test ; Feld1&Feld2 ; "" ) ; Position ( Austauschen ( Test ; Feld1&Feld2 ; "" ) ; "¶" ; 1 ; 1 ) )

                  Feld4

                  ZeichenLinks ( Austauschen ( Test ; Feld1&Feld2 &Feld3; "" ) ; Position ( Austauschen ( Test ; Feld1&Feld2&Feld3 ; "" ) ; "¶" ; 1 ; 1 ) )

                  Feld5

                  ZeichenLinks ( Austauschen ( Test ; Feld1&Feld2 &Feld3&Feld4; "" ) ; Position ( Austauschen ( Test ; Feld1&Feld2&Feld3&Feld4 ; "" ) ; "¶" ; 1 ; 1 ) )

                   

                  Jetzt nur noch Feld 1 bis 5 Prüfen ob Song: Interpret usw eingetragen ist wenn ja in das entsprechende Feld deiner DB Kopieren.

                   

                   

                  Mit freundlichen Grüßen

                  Norbert

                  Wort_Auslesen.tiff

                  • 6. Re: Wörter auslesen aus einem Textfeld
                    NorbertH

                    Ich würde das mit einem Script lösen.

                     

                    Wobei deine Rohdaten in einer Tabelle liegen das Script Datensatz für Datensatz dieser Tabelle abarbeitet und die gewünschten Informationen in eine andere Tabelle Einträgt..

                    • 7. Re: Wörter auslesen aus einem Textfeld
                      nickburns

                      Hallo, Norbert,

                       

                      das hat wunderbar geklappt! :-)))

                       

                      Vielen Dank!

                       

                      Viele Grüße

                      Nick

                      • 8. Re: Wörter auslesen aus einem Textfeld
                        nickburns

                        Hallo, Norbert,

                         

                        ich war zu euphorisch.... wie kriege ich denn jetzt lediglich den Wert "Brown Sugar" aus dem Feld1 und nicht beide Wörter "Song: Brown Sugar"?

                         

                        Nochmals Danke für deinen Hilfe.

                         

                        Viele Grüße

                        Nick

                        • 9. Re: Wörter auslesen aus einem Textfeld
                          NorbertH

                          Hallo Nick,

                           

                           

                           

                          Austauschen ( Trimme (ZeichenMitte ( Feld1 ; (Position ( Feld1 ; ":" ; 1 ; 1 )+1) ; (Länge ( Feld1 )- Position ( Feld1 ; ":" ; 1 ; 1 )))) ; "¶" ; "" )

                           

                           

                          Mit Austauschen() wird die Zeilenschaltung durch Nichts („“) ersetzt.

                           

                          Mit Position(Feld1;“:“1;1)+1 hole ich mir die Position des Doppel Punktes,  mit +1 zähle ich das Leerzeichen nach dem Doppel Punkt mit.

                           

                          Mit Länge(Feld1) hole ich mir die Zeichenlänge des Feldes…

                           

                           

                          Jetzt nur noch die Länge des Feldes - der Anzahl der Zeichen bis zum Doppel Punkt plus Leerzeichen abziehen.

                           

                          Somit bleiben nur noch die Zeichen  nach dem Doppel Punkt über.

                           

                          Diese Zeichen dann mit ZeichenMitte() auslesen.

                           

                           

                          Mit freundlichen Grüßen

                          Norbert