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
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
Antworten
Beitrag von sebastian (533 Beiträge) am Donnerstag, 29.November.2007, 09:16.
Re: Re: Wie übergebe ich den Wert
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
Antworten
Beitrag von sebastian (533 Beiträge) am Donnerstag, 29.November.2007, 14:07.
Re: Re: Re: Re: Wie übergebe ich den Wert
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