Re: Re: Re: Re: Re: Re: Re: Wie übergebe ich den Wert - 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 Pouraga (1396 Beiträge) am Donnerstag, 29.November.2007, 15:36.
    Re: Re: Re: Re: Re: Re: Re: Wie übergebe ich den Wert

      Wenn du möchtest das sowohl <br> wie auch <BR> gefunden wird kannst z.B. das i Flag benutzen:

      split(/<br>/i);


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von sebastian (533 Beiträge) am Mittwoch, 28.November.2007, 20:07.
    Wie übergebe ich den Wert

      hallo, möchte einen Datensatz aufsplitten.

      mache dazu folgendes:

      foreach $tmp_daten("Baujahr: 12/96 - 01/01<br>145 1.4 ie 16V TS 1370 CCM / 76 KW / 103 PS<br>Baujahr: 12/96 - 01/01<br>145 1.6 ie 16V TS 1598 CCM / 88 KW / 120 PS<br>Baujahr: 12/96 - 12/98<br>145 1.8 ie 16V TS 1747 CCM / 103 KW / 140 PS")
      

      {

      my($p1,$p2,$p3,$p4,$p5,$p6,$p7,$p8,$p9,$p10)=split /\<br>/,$tmp_daten;
      

      Out "Ausgabe, usw.";

      }
      

      Klappt soweit.

      Nur wenn jetzt der Inhalt von $tmp_daten aus einer Datenbank kommt, z.b. aus dem Feld $Kfz_daten, klappt das ganze nicht.

      siehe:
      foreach $tmp_daten("$Kfz_typ") oder foreach $tmp_daten('$Kfz_typ')
      

      $Kfz_daten hat aber den gleichen Inhalt wie beim ersten foreach, wo es funktioniert.

      Wo kann ich denn da ansetzen ?

      sebastian

     Antworten

    Beitrag von sebastian (533 Beiträge) am Mittwoch, 28.November.2007, 20:38.
    Re: Wie übergebe ich den Wert

      fehler gefunden.

     Antworten

    Beitrag von sebastian (533 Beiträge) am Mittwoch, 28.November.2007, 20:54.
    fehler doch nicht gefunden - Re: Wie übergebe ich den Wert

      schade, war doch nicht der fehler, klappt bisher nur wenn das foreach nicht aus einem datenfeld stammt.

     Antworten

    Beitrag von Sander (8133 Beiträge) am Mittwoch, 28.November.2007, 22:41.
    Re: Wie übergebe ich den Wert

      gibts immer nur einen einzigen Wert für die foreach-schleife?
      dann wäre dort die schleife sinnlos

      anosnten funktioniert eigentlich
      foreach $tmp_daten($Kfz_typ) oder foreach $tmp_daten("$Kfz_typ")
      

      aber nicht foreach $tmp_daten('$Kfz_typ') weil innerhalb von '' wird der Wert nicht interpoliert, das heißt es steht wirklich $Kfz_typ als Text in der Klammer

      Aber wie gesagt, bei nur einem einzigen Wert ist es sinnlos. dann kannnst du gleich mit split anfangen

     Antworten

    Beitrag von sebastian (533 Beiträge) am Donnerstag, 29.November.2007, 09:16.
    Re: Re: Wie übergebe ich den Wert

      guten morgen sander,

      der datensatz sieht wie folgt aus:
      Baujahr: 12/96 - 01/01<br>145 1.4 ie 16V TS 1370 CCM / 76 KW / 103 PS<br>Baujahr: 12/96 - 01/01<br>145 1.6 ie 16V TS 1598 CCM / 88 KW / 120 PS<br>Baujahr: 12/96 - 12/98<br>145 1.8 ie 16V TS 1747 CCM / 103 KW / 140 PS

      es sind immer mehrere '<br>' drinnen, mal mehr oder weniger aber immer mindestens 1. aber weder foreach $tmp_daten($Kfz_typ) oder foreach $tmp_daten("$Kfz_typ") funktioniert.

      auch wenn ich die <br> per regex umwandeln will, funktioniert nicht. Nehme ich dagegen z.b. das wort 'Baujahr' das wird im regex gefunden und auch wie gewünscht gewandelt. nur halt die '<br>' oder '\n' nicht.

      hier noch mal das komplette script:

      get "Id==0" , "../master_kfz/master_kfz_unifit" , "autos_holen";
      

      foreach $tmp_daten1($Kfz_typ)

      {
      

      my($p1a,$p2a,$p3a,$p4a,$p5a,$p6a,$p7a,$p8a,$p9a,$p10a)=split /<br>/,$tmp_daten1;

      out "ausgabe usw.";
      

      }

      sebastian

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 29.November.2007, 11:49.
    Re: Re: Re: Wie übergebe ich den Wert

      so wie ich das hier sehe, reicht ein
      get "Id==0" , "../master_kfz/master_kfz_unifit" , "autos_holen";
      my($p1a,$p2a,$p3a,$p4a,$p5a,$p6a,$p7a,$p8a,$p9a,$p10a)=split /<br>/,$Kfz_typ;
      out "ausgabe usw.";
      

      da ja ein String und keine Liste in der foreach steht.

      warum das split aber nicht auf <br> anspringt, schau ich gleich mal

     Antworten

    Beitrag von sebastian (533 Beiträge) am Donnerstag, 29.November.2007, 13:24.
    Re: Re: Re: Re: Wie übergebe ich den Wert

      hallo, klappt einfach nicht mit dem <br>, du meldest dich bitte wenn du danach geschaut hast.

      sebastian

     Antworten

    Beitrag von karl (6 Beiträge) am Donnerstag, 29.November.2007, 08:02.
    Re: Wie übergebe ich den Wert

      in datenfeldern wird das newline-zeichen (\n) anstatt des <br> benutzt
      deshalb entweder alle \n in <br> wandeln (funktion convert_br) oder bei datenquelle datenfeld die split-funktion am \n als splitpunkt benutzen

     Antworten

    Beitrag von sebastian (533 Beiträge) am Donnerstag, 29.November.2007, 09:19.
    Re: Re: Wie übergebe ich den Wert

      gutenn morgen karl,

      ne will beides nicht funtionieren. er findet im regex weder '<br>' noch '\n'

      sebastian

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 29.November.2007, 13:39.
    Re: Re: Re: Wie übergebe ich den Wert

      Du driftest ein weinig in eine Erwartungshaltung ab, probiere doch einfach mal:

      1. Was steh wirklich in $Kfz_typ drin
      out "<hr /><pre>$Kfz_typ</pre><hr />";
      
      (vielicht hast du dich vertippt bei der variable)

      2.Probiere mal mit einem eigenen String ob die Syntax stimmt z.B. so
      $t=<<EOF;
      
      Das ist ein
      Testtext
      EOF
      

      @einzelne_zeilen=split(/\n/,$t);

      out "$einzelne_zeilen[0] und $einzelne_zeilen[1]";
      

      3. Füge das beides zusammen

     Antworten

    Beitrag von sebastian (533 Beiträge) am Donnerstag, 29.November.2007, 14:07.
    Re: Re: Re: Re: Wie übergebe ich den Wert

      hallo pouraga,

      so alles probiert ergebniss kann man hier sehen:
      http://de3.unifit-daten.de/cgi-bin/baseportal.pl?htx=/unifit-daten.de/shop_de_neu/test01

      $t enthält folgender Text: Baujahr: 7/94 - 12/96<BR>145 1.4i 1351 CCM / 66 KW / 90 PS<BR>Baujahr: 7/94 - 12/96<BR>145 1.6ie 1596 CCM / 76 KW / 103 PS<BR>Baujahr: 10/94 - 12/96<BR>145 1.7ie 16V 1712 CCM / 95 KW / 129 PS
      

      wie gesagt sind <br> drinnen.

      zu 1. habe mich nicht vertippt

      zu 2. in $einzelne_zeilen[0] und [1] werden nicht richtig gefüllt. in [0] sollte dann drinn sein 'Baujahr: 7/94 - 12/96' und in [1] '145 1.4i 1351 CCM / 66 KW / 90 PS'. aber bei der ausgabe ist alles in einem drinn.

      sebastian

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 29.November.2007, 14:29.
    Re: Re: Re: Re: Re: Wie übergebe ich den Wert

      wie gesagt sind <br> drinnen.

      Ne, nicht "<br>" steht drin sondern "<BR>". Das ist ein kleiner aber entscheidender Unterschied.

     Antworten

    Beitrag von sebastian (533 Beiträge) am Donnerstag, 29.November.2007, 15:22.
    Re: Re: Re: Re: Re: Re: Wie übergebe ich den Wert

      danke, dann werde ich das split auf <br> und <BR> mal machen, so dass der entscheidende unterschied nicht mehr gegeben ist. danke für die hilfe.

      sebastian

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 29.November.2007, 15:36.
    Re: Re: Re: Re: Re: Re: Re: Wie übergebe ich den Wert

      Wenn du möchtest das sowohl <br> wie auch <BR> gefunden wird kannst z.B. das i Flag benutzen:

      split(/<br>/i);

     Antworten

    Beitrag von sebastian (533 Beiträge) am Donnerstag, 29.November.2007, 16:01.
    Re: Re: Re: Re: Re: Re: Re: Re: Wie übergebe ich den Wert

      ja, deine art ist angenehmer.

      kann es sein das dass split auf zwei arten funktioniert,

      1. split (/<Br>/i,$Kfz_typ);

      und

      2. split /<Br>/i,$Kfz_typ;

      also ohne klammern, bei mir tuts auf beide arten.

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Donnerstag, 29.November.2007, 17:26.
    Re: Re: Re: Re: Re: Re: Re: Re: Re: Wie übergebe ich den Wert

      Nicht nur split Funktioniert so sondern Perl im allgemeinen. Es gibt immer mehrere Notationen die richtig sind (und dann meist noch ein paar die falsch sind, aber wo der perl interpreter trotzdem das richtige "erräht")

      Funktionsaufrufe kann man mit oder ohne Klammern schreiben, wie es dir lieber ist.

     Antworten


     
 Liste der Einträge von 11700 bis 11850: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!