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
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?
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
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 ...
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden