Warbier Geschrieben 7. Mai 2009 Geschrieben 7. Mai 2009 Sehr geehrte Mitglieder, Ich habe folgendes Problem: Ich muss eine Text-datei einbinden. Allerdings nur einzelne abschnitte. Als Beispiel, Die Datei hat folgende Sätze enthalten: :20:B2NG03EELKW0GEQ7 :25:30040000/600404146300EUR :28C:75/1 :60F:C090417EUR218175,91 Ich soll dann nur folgende Informationen herausfiltern: B2NG03EELKW0GEQ7 30040000 600404146300EUR 75/1 C090417 EUR218175,91 Habe es schon hinbekommen, dasdie :20: usw. wegfallen, allerdings schreibt er diese jetzt nicht untereinander hin sondern nach mehreren Spalten erst. So sieht mein Bisheriger Code aus: <?PHP $fp = fopen ( 'Auszug1.txt', 'r' ); while ( $data = fscanf ( $fp, '%[:20:\:25:\:28C:\:60F:\:60M:\:61:\:62M:\:62F:\:86:]%s' ) )apphire { list ( $leer, $Auftragsreferenznr, ) = $data; echo 'Auftragsreferenznr: ' . $Auftragsreferenznr . '<br>'; echo 'Kontobezeichnung: ' . $Kontobezeichnung . '<br>'; echo 'Auszugsnummer: ' . $Auszugsnummer . '<br>'; echo 'Anfangsaldo: ' . $Anfangsaldo . '<br>'; echo 'Zwischensaldo1: ' . $Zwischensaldo1 . '<br>'; echo 'Umsatzzeile: ' . $Umsatzzeile . '<br>'; echo 'Zwischensaldo2: ' . $Zwischensaldo2 . '<br>'; echo 'Schlußsaldo: ' . $Schlußsaldo . '<br>'; echo 'Mehrzweckfeld: ' . $Mehrzweckfeld . '<br><br>'; } fclose ($fp); ?> Wenn ihr eine Lösung wisst, würde ich mich sehr über eine Antwort freuen. Danke schonmal im Vorraus an alle Mitdenker ;-)! Mit freundlichen Grüßen Warbier Zitieren
DevilDawn Geschrieben 7. Mai 2009 Geschrieben 7. Mai 2009 Ich muss eine Text-datei einbinden. Allerdings nur einzelne abschnitte. Als Beispiel, Die Datei hat folgende Sätze enthalten: :20:B2NG03EELKW0GEQ7 :25:30040000/600404146300EUR :28C:75/1 :60F:C090417EUR218175,91 Ich soll dann nur folgende Informationen herausfiltern: B2NG03EELKW0GEQ7 30040000 600404146300EUR 75/1 C090417 EUR218175,91 Uhm... list ($bla,$blubb,$WichtigerInhalt) = [URL="http://de2.php.net/split"]split[/URL](":",$Zeile,3); ... pro Zeile? Zitieren
Warbier Geschrieben 7. Mai 2009 Autor Geschrieben 7. Mai 2009 Hey DevilDawn, Erstmal Danke für die schnelle Hilfe ;-)! Ähm ja also ich habe es schon hinbekommen, das der die :20: :25: usw. vorne weg lässt. Allerdings will/muss ich auch die in der Mitte stehenden Kürzel in die Nächste Zeile bringen wie z.B "EUR" oder bei einem "/" das habe ich noch nicht hinbekommen. Also ich Zeig dir mal mein ganzes PHP-Script und wie es danach aussieht ok ;-)! (Sind nur Beispiel Zahlen) Script: <?PHP $fp = fopen ( 'Auszug1.txt', 'r' ); while ( $data = fscanf ( $fp, '%[:20:\:25:\:28C:\:60F:\:60M:\:61:\:62M:\:62F:\:86:]%s' ) ) { list ( $leer, $Auftragsreferenznr, $Kontobezeichnung, $Auszugsnummer, $Anfangsaldo, $Zwischensaldo1, $Umsatzzeile, $Schlußsaldo, $Mehrzweckfeld) = $data; echo 'Auftragsreferenznr: ' . $Auftragsreferenznr . '<br>'; echo 'Kontobezeichnung: ' . $Kontobezeichnung . '<br>'; echo 'Auszugsnummer: ' . $Auszugsnummer . '<br>'; echo 'Anfangsaldo: ' . $Anfangsaldo . '<br>'; echo 'Zwischensaldo1: ' . $Zwischensaldo1 . '<br>'; echo 'Umsatzzeile: ' . $Umsatzzeile . '<br>'; echo 'Zwischensaldo2: ' . $Zwischensaldo2 . '<br>'; echo 'Schlußsaldo: ' . $Schlußsaldo . '<br>'; echo 'Mehrzweckfeld: ' . $Mehrzweckfeld . '<br><br>'; } fclose ($fp); ?> Ausgeführt: Auftragsreferenznr: B2NG03EELKW0GEQ7 Kontobezeichnung: Auszugsnummer: Anfangsaldo: Zwischensaldo1: Umsatzzeile: Zwischensaldo2: Schlußsaldo: Mehrzweckfeld: Auftragsreferenznr: 30040000/600404146300EUR Kontobezeichnung: Auszugsnummer: Anfangsaldo: Zwischensaldo1: Umsatzzeile: Zwischensaldo2: Schlußsaldo: Mehrzweckfeld: Auftragsreferenznr: 75/1 Kontobezeichnung: Auszugsnummer: Anfangsaldo: Zwischensaldo1: Umsatzzeile: Zwischensaldo2: Schlußsaldo: Mehrzweckfeld: Auftragsreferenznr: 90417EUR218175,91 Kontobezeichnung: Auszugsnummer: Anfangsaldo: Zwischensaldo1: Umsatzzeile: Zwischensaldo2: Schlußsaldo: Mehrzweckfeld: So sieht das dann aus, aber der soll die Werte ja den anderen Variablen Zuweisen und das klappt i-wie nicht :-(! Ich weiß das ist bestimmt voll einfach, aber ich bin noch anfänger und freue mich über jede Hilfe und jede Lehre die man mir erteilen kann. Ich danke schonmal im Vorraus ;-)! Freundliche Grüße Warbier Zitieren
DevilDawn Geschrieben 7. Mai 2009 Geschrieben 7. Mai 2009 Das fscanf parsed immer nur eine Zeile, daher kannst du nicht alle Werte im folgenden list (...) = $data zuweisen. Lies erst die Datei ein und push die Werte z.b. in ein Array, dann kannst du sie nach dem Lesen weiter nutzen. <?PHP $fp = fopen ( './Auszug1.txt', 'r' ) or exit(1); $Daten = array(); while ($data = fscanf ( $fp, '%[:20:\:25:\:28C:\:60F:\:60M:\:61:\:62M:\:62F:\:86:]%s' )) { list ($leer, $wert) = $data; array_push($Daten,$wert); } fclose($fp); printf("Auftragsreferenznr: %s\n",$Daten[0]); printf("Kontobezeichnung: %s\n",$Daten[1]); printf("Auszugsnummer: %s\n",$Daten[2]); printf("Anfangsaldo: %s\n",$Daten[3]); ?> [/PHP] [code] # php pAus.php Auftragsreferenznr: B2NG03EELKW0GEQ7 Kontobezeichnung: 30040000/600404146300EUR Auszugsnummer: 75/1 Anfangsaldo: 90417EUR218175,91 [/code] Ich hoffe ich hab dein Problem nun auch richtig Verstanden ... Zitieren
Warbier Geschrieben 7. Mai 2009 Autor Geschrieben 7. Mai 2009 Boa, Danke danke danke. Das ist echt super ;-)! So wollte ich das hinkriegen und jetzt klappts! Wirklich Klasse! Ich hoffe das ich ihnen nicht zuviel Zeit in anspruch genommen habe!!! Und nochmal vielen Lieben Dank!!! freundlichen Gruß Warbier Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.