@Sander; <do action ... > - die tag-Attribute in Hash speichern - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von H.Fehde (724 Beiträge) am Samstag, 5.Januar.2013, 16:19.
    @Sander; <do action ... > - die tag-Attribute in Hash speichern

      Hallo Sander,
      ich hab mal ne regex geschrieben, welche die Attribute (und EINIGES mehr) im do-tag auslesen soll:

      <perl>
      #-----------------------------------
      sub VV
      {
      @T = @_;
      return(\@T);
      }
      

      @TXT = ("base","portal","TEST","Harald Fehde");

      $TAG = qq(<do action=all  db="/bei123.de/test"  indexfield="Name"  subwert=&VV("Wert||Zahl","TEST",167)  Möhre="Haus Garten"  var1=4  Array=[\@TEST]  Lotto=[1,17,22,44,45,48,'12']  Häsch={"Farbe1","#d80000","Farbe2","#c0c0c0"}>);
      

      $TAG =~ /<do (.*?)>/; # Auswertung OHNE Zeilenümbrüche

      $Attribute = qq($1);
      

      my @Attribute = split /\s{2,}/,$Attribute; # splitten nach 2 Leerzeichen

      map{ /=/ ; $Attribute{$`} = eval($') } @Attribute;

      outl dump(%Attribute); # mal ansehen
      #-------------------------------------
      </perl>
      

      Als Ergebnis kommt dann alos mit dump() ein Hash raus - z.B.:
      #----------------------------------------------------------------
      
      (
       "Array",
       ["A", "s", "D"],
       "var1",
       4,
       "db",
       "/bei123.de/test",
       "Möhre",
       "Haus Garten",
       "Lotto",
       [1, 17, 22, 44, 45, 48, 12],
       "subwert",
       ["Wert||Zahl", "TEST", 167],
       "action",
       "all",
       "indexfield",
       "Name",
       "Häsch",
       { "Farbe1" => "#d80000", "Farbe2" => "#c0c0c0" }
      
      )
      #-----------------------------------------------------

      Das geht natürlich nur, weil

      1.) keine Zeilenumbrüch im <do action.. drin sind
      und
      2.) zwischen den einzelnen Attributen 2 Leerzeichen zum splitten vorhanden sind.

      Ist auch ganz nett - ICH würde aber lieben in meinen Programmen (der Übersicht halber) so schreiben:

      $TAG = qq(<do 
      
      action=all
      db="/bei123.de/test"
      indexfield="Name"
      subwert=&VV("Wert||Zahl","TEST",167)
      
      Möhre="Haus Garten"
      var1=4
      Array=[\@TEST]
      Lotto=[1,17,22,44,45,48,'12']
      Häsch={"Farbe1","#d80000","Farbe2","#c0c0c0"}
      >);
      

      .. und dann die ganzen Attribute in einen Hash schreiben.

      Die Frage also:

      1.) $TAG =~ /<do (.*?)>/; # WIE ändern

      2.) my @Attribute = split /\s{2,}/,$Attribute; # WIE ändern

      Hast Du ne Idee ? - Gruß Harald


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von H.Fehde (724 Beiträge) am Samstag, 5.Januar.2013, 16:19.
    @Sander; <do action ... > - die tag-Attribute in Hash speichern

      Hallo Sander,
      ich hab mal ne regex geschrieben, welche die Attribute (und EINIGES mehr) im do-tag auslesen soll:

      <perl>
      #-----------------------------------
      sub VV
      {
      @T = @_;
      return(\@T);
      }
      

      @TXT = ("base","portal","TEST","Harald Fehde");

      $TAG = qq(<do action=all  db="/bei123.de/test"  indexfield="Name"  subwert=&VV("Wert||Zahl","TEST",167)  Möhre="Haus Garten"  var1=4  Array=[\@TEST]  Lotto=[1,17,22,44,45,48,'12']  Häsch={"Farbe1","#d80000","Farbe2","#c0c0c0"}>);
      

      $TAG =~ /<do (.*?)>/; # Auswertung OHNE Zeilenümbrüche

      $Attribute = qq($1);
      

      my @Attribute = split /\s{2,}/,$Attribute; # splitten nach 2 Leerzeichen

      map{ /=/ ; $Attribute{$`} = eval($') } @Attribute;

      outl dump(%Attribute); # mal ansehen
      #-------------------------------------
      </perl>
      

      Als Ergebnis kommt dann alos mit dump() ein Hash raus - z.B.:
      #----------------------------------------------------------------
      
      (
       "Array",
       ["A", "s", "D"],
       "var1",
       4,
       "db",
       "/bei123.de/test",
       "Möhre",
       "Haus Garten",
       "Lotto",
       [1, 17, 22, 44, 45, 48, 12],
       "subwert",
       ["Wert||Zahl", "TEST", 167],
       "action",
       "all",
       "indexfield",
       "Name",
       "Häsch",
       { "Farbe1" => "#d80000", "Farbe2" => "#c0c0c0" }
      
      )
      #-----------------------------------------------------

      Das geht natürlich nur, weil

      1.) keine Zeilenumbrüch im <do action.. drin sind
      und
      2.) zwischen den einzelnen Attributen 2 Leerzeichen zum splitten vorhanden sind.

      Ist auch ganz nett - ICH würde aber lieben in meinen Programmen (der Übersicht halber) so schreiben:

      $TAG = qq(<do 
      
      action=all
      db="/bei123.de/test"
      indexfield="Name"
      subwert=&VV("Wert||Zahl","TEST",167)
      
      Möhre="Haus Garten"
      var1=4
      Array=[\@TEST]
      Lotto=[1,17,22,44,45,48,'12']
      Häsch={"Farbe1","#d80000","Farbe2","#c0c0c0"}
      >);
      

      .. und dann die ganzen Attribute in einen Hash schreiben.

      Die Frage also:

      1.) $TAG =~ /<do (.*?)>/; # WIE ändern

      2.) my @Attribute = split /\s{2,}/,$Attribute; # WIE ändern

      Hast Du ne Idee ? - Gruß Harald

     Antworten

    Beitrag von Sander (8133 Beiträge) am Dienstag, 8.Januar.2013, 12:29.
    Re: @Sander; &lt;do action ... &gt; - die tag-Attribute in Hash speichern

      so hier
      $TAG =~ m/<do\s+(.*?)>/s;
      @Attribute = split /\n|\s{2,}/,$1;
      

      split an \n oder an 2 oder mehr whitespaces

     Antworten


     
 Liste der Einträge von 3600 bis 3750:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.09s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!