Datei Wortweise einlesen und in DB Schreiben

Hallo Forum!

Folgendes Problem:

Ich habe eine Textdatei die viele Informationen enthält.
Die Informationen in der Datei sind keinesfalls mit Kommata bzw. Semikola getrennt, sodass man diese auseinander halten könnte.

Frage:

Wie kann ich es fertigbringen diese Textdatei mit file() oder derartigem in ein Array zu schreiben und einzelne Wörter in eine Variable speichern, sodass ich diese Daten anschliessend in meine Datenbank schreiben kann? Und zwar möchte ich bestimmte Sätze oder Wörter in bestimmte Felder meiner Tabelle speichern.

Ist das möglich??

Bin für jede Hilfe, jeden Tip dankbar!

Viele Grüße aus Wuppertal

Hallo Forum!

Folgendes Problem:

Ich habe eine Textdatei die viele Informationen enthält.
Die Informationen in der Datei sind keinesfalls mit Kommata
bzw. Semikola getrennt, sodass man diese auseinander halten
könnte.

Irgendeinen Trenner muss es ja geben PHP kann schließlich auch net hellsehen :wink:

Wie kann ich es fertigbringen diese Textdatei mit file() oder
derartigem in ein Array zu schreiben und einzelne Wörter in
eine Variable speichern, sodass ich diese Daten anschliessend
in meine Datenbank schreiben kann? Und zwar möchte ich
bestimmte Sätze oder Wörter in bestimmte Felder meiner Tabelle
speichern.

Ist das möglich??

klar ist das möglich
helfen sollten dir dabei entweder

http://de3.php.net/manual/de/function.explode.php

oder

http://de2.php.net/manual/de/function.strpos.php
und
http://de3.php.net/manual/de/function.substr.php

Bin für jede Hilfe, jeden Tip dankbar!

Gerne, mit näheren infos kann ich dir auch mehr tipps geben.

Viele Grüße aus Wuppertal

Viele Grüße aus Duisburg

Hi Phillip!

Besten Dank für die superschnelle Hilfe!

Ja, die Wörter sind durch Leerzeichen von einander getrennt.
Das sind die einzigen Trenner.

Mit deinen Links konnte ich ne Menge anfangen. Allerdings habe ich noch nicht herausgefunden, wie ich die Wörter (auch Zahlen) mit Positionsangaben auslesen und in eine Variable schreiben kann.

Beispiel der Datei Datei.txt:
[DATEI ANFANG]

ARB.POS.NR/ INSTANDSETZUNGS-/EINZEL-/VERBUNDARBEITEN AW ARB.-PREIS
531011 KOTFLUEGEL V R AUS-/EINBAUEN 13 102.70
UMFASST: STOSSFAENGER V, STANDLEUCHTEN
UND RADLAUFVERKLEIDUNG R AUS-/EINBAUEN
KN KOTFLUEGEL V R ERSETZEN 1 7.90
UMFASST: ANBAUTEILE UMRUESTEN,
GGF ERSETZEN
851091) SCHEIBENWASCHBEHAELTER AUS-/EINBAUEN 3 23.70

L A C K I E R U N G ZEITBASIS 10 AW=1 STD PREIS = 95.00 EUR/STD

ARB.POS.NR/ ARBEITSGANG 2-SCHICHT-METALLIC AW ARB.-
LEIT-NR PREIS
019 KOTFLUEGEL V R NEUTEILLACK ST I 12 114.00
L 0754 KOTFLUEGEL R UNTERH OBERFL LACK ST II 2 19.00
KN (MATT-SCHWARZ)
VORBEREITUNG ZUR LACKIERUNG 17 161.50

[DATEI ENDE]

Nun möchte ich gerne aus dieser Datei die einzelnen Werte der Spalten („ARB.POS.NR/LEIT-NR“, „ARBEITSGANG“, „2-SCHICHT-METALLIC“, „AW“, „ARB .-PREIS“) auslesen, in eine Variable schreiben und in eine MySQL-Tabelle schreiben. Die oben genannten Spaltennamen werden von mir natürlich vorher in die Tabelle als Spaltennamen hinterlegt, sodass sie nicht aus der Datei ausgelesen werden müssen. Die Werte (Text und Zahlen) müssen dann in die entsprechende Spalte in die Datenbanktabelle geschrieben werden.

Leider erscheint hier im Forum das Format meiner Datei komplett anders als in der eigentlichen Datei. Schade!

Hast du eine Idee, wie ich das machen könnte?

Viele Grüße aus Wuppertal

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Phillip!

Besten Dank für die superschnelle Hilfe!

Ja, die Wörter sind durch Leerzeichen von einander getrennt.
Das sind die einzigen Trenner.

Mit deinen Links konnte ich ne Menge anfangen. Allerdings habe
ich noch nicht herausgefunden, wie ich die Wörter (auch
Zahlen) mit Positionsangaben auslesen und in eine Variable
schreiben kann.

Beispiel der Datei Datei.txt:
[DATEI ANFANG]

ARB.POS.NR/ INSTANDSETZUNGS-/EINZEL-/VERBUNDARBEITEN AW
ARB.-PREIS
531011 KOTFLUEGEL V R AUS-/EINBAUEN 13
102.70
UMFASST: STOSSFAENGER V, STANDLEUCHTEN
UND RADLAUFVERKLEIDUNG R AUS-/EINBAUEN
KN KOTFLUEGEL V R ERSETZEN 1
7.90
UMFASST: ANBAUTEILE UMRUESTEN,
GGF ERSETZEN
851091) SCHEIBENWASCHBEHAELTER AUS-/EINBAUEN 3
23.70

L A C K I E R U N G ZEITBASIS 10 AW=1 STD PREIS = 95.00
EUR/STD

ARB.POS.NR/ ARBEITSGANG 2-SCHICHT-METALLIC AW
ARB.-
LEIT-NR
PREIS
019 KOTFLUEGEL V R NEUTEILLACK ST I 12
114.00
L 0754 KOTFLUEGEL R UNTERH OBERFL LACK ST II 2
19.00
KN (MATT-SCHWARZ)
VORBEREITUNG ZUR LACKIERUNG 17
161.50

[DATEI ENDE]

Nun möchte ich gerne aus dieser Datei die einzelnen Werte der
Spalten („ARB.POS.NR/LEIT-NR“, „ARBEITSGANG“,
„2-SCHICHT-METALLIC“, „AW“, „ARB .-PREIS“) auslesen, in eine
Variable schreiben und in eine MySQL-Tabelle schreiben. Die
oben genannten Spaltennamen werden von mir natürlich vorher in
die Tabelle als Spaltennamen hinterlegt, sodass sie nicht aus
der Datei ausgelesen werden müssen. Die Werte (Text und
Zahlen) müssen dann in die entsprechende Spalte in die
Datenbanktabelle geschrieben werden.

Leider erscheint hier im Forum das Format meiner Datei
komplett anders als in der eigentlichen Datei. Schade!

Hast du eine Idee, wie ich das machen könnte?

Viele Grüße aus Wuppertal

Hallo Laurenzo,

die Wörter (und Zahlen, diese sind wie Kommas nur „Wörter“) sind der Reihe der Anordnung im Array angeordnet. Aber das eigentliche Problem bekommst Du eher bei der Analyse Deiner Wörter, da die Anzahl der Wörter bis zum Preis nicht immer gleich ist. Den Effekt kannst Du übrigens auch gut mit Excel oder OO-Calc ausprobieren.

Ansonsten kann hier mit dem HTML-Tag bzw. am Ende mit (jeweils ohne die Blanks nach und vor den Spitzenklammern) den Text in eine Font mit fester Breite formatieren lassen.

MfG Georg V.

Hi Georg!

Vielen Dank für deine Antwort. Du hast Recht…die Anzahl der Wörter in meiner Textdatei wird ein Problem darstellen.

Da ich diese Datei immer aus einem Programm geliefert bekomme, habe ich keine Chance diese zu formatieren, da ich sie sonst jedesmal wenn ich sie bekomme formatieren müsste. Das wäre zu umständlich.

Wie ich die Datei einlese und einzelne Worte ermittle habe ich herausgefunden.
Hier mein Ansatz:

<?php $Text="dnspool";
$output=""; $file = fopen($Text, "r"); while(!feof($file)) { $output = $output . fgets($file, 2048); } fclose ($file); $Anzahl = str\_word\_count($output); $Worte = str\_word\_count($output, 1); echo $Anzahl; for($i = 0; $i \< $Anzahl; $i++) { } echo " "; $Typ=$Worte[$i=531]; echo $Typ; ?\> Allerdings kann ich somit nur Wörter zählen und ermitteln und keine Zahlen. 1. Frage: Wie ermittele ich die Anzahl aller Zahlen??? Gibt es eine Möglichkeit sowohl Wörter als auch Zahlen gemeinsam aus einer Datei zu ermitteln??? Ich habs so nicht hingekriegt. Deine Idee mit der Formatierung mit dem -Tag hört sich interessant an, jedoch habe ich nicht ganz verstanden wie das gehen soll. Könntest du das bitte nochmal näher erklären? Vielen Dank und viele Grüße! > [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Georg!

Vielen Dank für deine Antwort. Du hast Recht…die Anzahl der
Wörter in meiner Textdatei wird ein Problem darstellen.

Da ich diese Datei immer aus einem Programm geliefert bekomme,
habe ich keine Chance diese zu formatieren, da ich sie sonst
jedesmal wenn ich sie bekomme formatieren müsste. Das wäre zu
umständlich.

Wie ich die Datei einlese und einzelne Worte ermittle habe ich
herausgefunden.
Hier mein Ansatz:
: Source gelöscht :

Allerdings kann ich somit nur Wörter zählen und ermitteln und
keine Zahlen.

  1. Frage:
    Wie ermittele ich die Anzahl aller Zahlen??? Gibt es eine
    Möglichkeit sowohl Wörter als auch Zahlen gemeinsam aus einer
    Datei zu ermitteln???
    Ich habs so nicht hingekriegt.

Deine Idee mit der Formatierung mit dem

-Tag hört
sich interessant an, jedoch habe ich nicht ganz verstanden wie
das gehen soll. Könntest du das bitte nochmal näher erklären?
Vielen Dank und viele Grüße!

Hallo Laurenzo,

Wörter oder besser der Inhalt der $Worte sind Ketten von Character, die nur von a-z bzw. A-Z gehen. Also Deine ersten drei Worte sind „ARB“, „POS“ und „NR“. Zahlen und Punkte werden ebenfalls als Trennzeichen gewertet (siehe Beispiel im PHP-Manual). Ich halte ein explode (wie schonmal vorgeschlagen und auch als ähnliche Funktion im PHP-Manual erwähnt) für den Ansatz für sinnvoller.

Zum PRE-Tag bzw. PREHTML: Ich nehme mal ein Beispiel aus der Textdatei:

019 KOTFLUEGEL V R NEUTEILLACK ST I 12
114.00
L 0754 KOTFLUEGEL R UNTERH OBERFL LACK ST II 2
19.00

Wenn ich den gelichen Textblock ohne Blank innerhalb der spitzen Klammern schreibe erhalte ich folgende Formatierung:

019 KOTFLUEGEL V R NEUTEILLACK ST I 12
114.00
L 0754 KOTFLUEGEL R UNTERH OBERFL LACK ST II 2
19.00

Warum ich auf das PREHTML ausweiche: Ich habe beim Verwenden der Vorschau eine vom der Hilfe abweichende Behandlung festgestellt und festgestellt, dass das prehtml auf jeden Fall funktioniert.

Beim Bedarf kannst Du mir die Textdatei gerne für tiefer gehende Fragen zuschicken.

MfG Georg V.

ich glaube es waere interessant zu wissen, was du erreichen willst:

möchtest du vielleicht die einzelnen posten der rechnung in die datenbank bekommen?

die daten die du geschickt hast ähneln einer textdatei mit feldern ohne trennzeichen, mit festen feldlaengen. muesste man aber am original analysieren.

wenn dem so ist, musst die felder mit substr auslesen und dann die werte mit trim saeubern. weiter musst du dann bei jeder zeile pruefen, ob sie einen gueltigen wert im feld ARB.POS.NR enthaelt.

> [DATEI ANFANG]  
>   
> ARB.POS.NR/ INSTANDSETZUNGS-/EINZEL-/VERBUNDARBEITEN AW ARB.-PREIS  
> 531011 KOTFLUEGEL V R AUS-/EINBAUEN 13 102.70  
> UMFASST: STOSSFAENGER V, STANDLEUCHTEN  
> UND RADLAUFVERKLEIDUNG R AUS-/EINBAUEN  
> KN KOTFLUEGEL V R ERSETZEN 1 7.90  
> UMFASST: ANBAUTEILE UMRUESTEN,  
> GGF ERSETZEN  
> 851091) SCHEIBENWASCHBEHAELTER AUS-/EINBAUEN 3 23.70  
> ----------------------------------------------------------------------  
> L A C K I E R U N G ZEITBASIS 10 AW=1 STD PREIS = 95.00 EUR/STD  
> ARB.POS.NR/ ARBEITSGANG 2-SCHICHT-METALLIC AW ARB.-LEIT-NR PREIS  
> 019 KOTFLUEGEL V R NEUTEILLACK ST I 12 114.00  
> L 0754 KOTFLUEGEL R UNTERH OBERFL LACK ST II 2 19.00  
> KN (MATT-SCHWARZ)  
> VORBEREITUNG ZUR LACKIERUNG 17 161.50  
> ---------------------------------------------------------------------

Das ist korrekt. Die Daten in der Textdatei sind tatsächlich Felder ohne Trennzeichen wie ; oder , oder Tabstops.

Ich möchte vereinzelte Daten dieser Datei in die Datenbank schreiben.
Ganz unten in der Datei befindet sich eine Schlußkalkulation, die aus ein Paar Zeilen besteht, die so aufgebaut ist wie in meinem Posting beschrieben. Die Spalten habe ich bereits in meine Tabelle eingebaut. Ich möchte im Prinzip nur die Rechnungswerte in Variablen speichern, um diese wiederum in die Datenbank in den dafür gedachten Spalten zu schreiben.

Also hier nochmal der korrekte Dateiauszug der Schlußkalkulation:

S C H L U S S K A L K U L A T I O N EUR EUR

A R B E I T S L O H N ZEITBASIS 10 AW = 1 STD
GESAMT 17 AW X 79.00 EUR/STD 134.30
GESAMTSUMME ARBEITSLOHN … 134.30

N E B E N K O S T E N
UNTERBODENSCHUTZ 20.00
HOHLRAUMKONSERVIERUNG 20.00
GESAMTSUMME NEBENKOSTEN … 40.00

L A C K I E R U N G ZEITBASIS 10 AW = 1 STD
ARBEITSLOHN 31 AW X 95.00 EUR/STD 294.50
LACKIERMATERIAL 30.00 % 88.35
GESAMTSUMME LACKIERUNG INKL MATERIAL … 382.85

E R S A T Z T E I L E 287.53
ABSCHLAG 8.00% 23.00-
KLEINERSATZTEILE ( 2.0%) 5.29
SCHWEMM-MATERIAL 20.00
GESAMTSUMME ERSATZTEILE … 289.82

R E P A R A T U R K O S T E N OHNE MWST… 846.97

MWST 16.00 % 135.52

R E P A R A T U R K O S T E N MIT MWST… 982.49

Genau so sieht der Teil der Datei aus, den ich gerne über eine Funktion auslesen, wenn nötig formatieren, in Variablen schreiben und in die Datenbank speichern möchte. Das ist eigentlich schon alles.
Ich dachte, dass ich den Code schon so vorbereitet hätte aber irgendwas fehlt mir noch.

Könnt Ihr mir dabei helfen, diesen Textabschnitt in PHP so hinzubekommen?

Vielen Dank und viele Grüße aus Wuppertal!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Das ist korrekt. Die Daten in der Textdatei sind tatsächlich
Felder ohne Trennzeichen wie ; oder , oder Tabstops.

Ich möchte vereinzelte Daten dieser Datei in die Datenbank
schreiben.

mein gott, wie kann man nur so unkonkret sein.
vervollstaendigen sie den satz:
ich moechte den wert … aus der zeile … sowie die werte … aus der beispildatei extrahieren.

Könnt Ihr mir dabei helfen, diesen Textabschnitt in PHP so
hinzubekommen?

was hast du denn noch, und was fewhlt dir noch?
du gehst mit forech (file(dateiname) as $line) ueber die datei.
dann holst du dir die einzelnen felder mit $feldname = substr($line,pos1,length) raus.
da die zeilen unterschiedlich formatiert sind muss du sie anhand des vorkommens eines wertes filtern.
wo genau ist jetzt dein problem?

Tut mir wirklich sehr Leid. Bin ein wenig durch den Wind gewesen. Sorry nochmal. Werd mich künftig besser ausdrücken. :smile:

Nun weiter zu meinem für mich äußerst hochkomplizierten Problemchen. :wink:
Dein Lösungsansatz ist schon super aber wie bringe ich der substr() -Zeile bei, den sich immer wieder verändernden Wert am Ende der Zeile auszulesen? Gibts soetwas ähnliches wie ein increment (um 12 Zeichen nach rechts), sodass ich den variablen Wert am Ende der Zeile mit auslesen kann?

[PREHTML]

[/PREHTML]

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Leider kriege ich es nicht hin. :frowning:
Mein Anfängerwissen macht mir schon ein Paar Problemchen.
Das Problem ist für euch alle bestimmt ein Klax aber für mich ne riesen Sache. :frowning:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hier ist noch der Dateiinhalt aus dem ich lediglich den Block mit der Schlusskalkulation auslesen möchte.

[PREHTML]
R E P A R A T U R - K A L K U L A T I O N NR 0106-T8151 02.02.2006

FABRIKAT TOYOTA CELICA STI
FZ-IDENT-NR XX164XXX000109688 AMTL KZ X-XX 007 TYP-CODE Y 29 01
ERSTE ZUL 16.09.1993 NAECH HU 08.2006 LAUFLEIST 168509

BES-DATUM 18.01.2006 FZ-ZUST UNZERLEGT

AUSFUEHR- MODELL 94 AB 07.93 REIFEN 185/65R14 …H
VARIANTEN

SERIEN- SCHEINWERFER VERST HECKSCHEIBENWISCHER 1,6LTR 77KW 105PS
AUSSTATTG SERVOLENKUNG

SONDER- ZENTRALVERRIEGELUNG FENSTERHEBER ELEKTR SPORTSITZE TURBO
AUSSTATTG LEDERLENKRAD FELGE ALU 6JJ X 14

A R B E I T S L O H N ZEITBASIS 10 AW=1 STD PREIS = 79.00 EUR/STD

ARB.POS.NR/ INSTANDSETZUNGS-/EINZEL-/VERBUNDARBEITEN AW ARB.-
LEIT-NR PREIS

531011 KOTFLUEGEL V R AUS-/EINBAUEN 13 102.70
UMFASST: STOSSFAENGER V, STANDLEUCHTEN
UND RADLAUFVERKLEIDUNG R AUS-/EINBAUEN
KN KOTFLUEGEL V R ERSETZEN 1 7.90
UMFASST: ANBAUTEILE UMRUESTEN,
GGF ERSETZEN
851091) SCHEIBENWASCHBEHAELTER AUS-/EINBAUEN 3 23.70

L A C K I E R U N G ZEITBASIS 10 AW=1 STD PREIS = 95.00 EUR/STD

ARB.POS.NR/ ARBEITSGANG 2-SCHICHT-METALLIC AW ARB.-
LEIT-NR PREIS

019 KOTFLUEGEL V R NEUTEILLACK ST I 12 114.00
L 0754 KOTFLUEGEL R UNTERH OBERFL LACK ST II 2 19.00
(MATT-SCHWARZ)
KN VORBEREITUNG ZUR LACKIERUNG 17 161.50

E R S A T Z T E I L E PREISSTAND : 01.01.2006

LEIT-NR BEZEICHNUNG TEILE-NR PREIS

0324 SCHUTZPLATTE V R 53827 20020 29.00
0742 KOTFLUEGEL V R 53801 2B130 153.52
0772 RADLAUFVERKLEIDUNG R 53875 20H00 55.68
0784 STOSSL KOTFL V R :75623 2029103 11.44
0830 HALTER KOTFLUEGEL R 53385 14010 1.09
1436 BEHAELTER WASCHANL 85331 20760 36.80

SYSTEM AUDATEX BLATT 1

R E P A R A T U R - K A L K U L A T I O N NR 0106-T8151 02.02.2006

**S C H L U S S K A L K U L A T I O N EUR EUR

A R B E I T S L O H N ZEITBASIS 10 AW = 1 STD
GESAMT 17 AW X 79.00 EUR/STD 134.30
GESAMTSUMME ARBEITSLOHN … 134.30

N E B E N K O S T E N
UNTERBODENSCHUTZ 20.00
HOHLRAUMKONSERVIERUNG 20.00
GESAMTSUMME NEBENKOSTEN … 40.00

L A C K I E R U N G ZEITBASIS 10 AW = 1 STD
ARBEITSLOHN 31 AW X 95.00 EUR/STD 294.50
LACKIERMATERIAL 30.00 % 88.35
GESAMTSUMME LACKIERUNG INKL MATERIAL … 382.85

E R S A T Z T E I L E 287.53
ABSCHLAG 8.00% 23.00-
KLEINERSATZTEILE ( 2.0%) 5.29
SCHWEMM-MATERIAL 20.00
GESAMTSUMME ERSATZTEILE … 289.82

R E P A R A T U R K O S T E N OHNE MWST… 846.97


MWST 16.00 % 135.52

R E P A R A T U R K O S T E N MIT MWST… 982.49**

ERLAEUTERUNGEN:
E-TEILE-PREISE=UPE D HERST/IMPORT * = ANWENDERANGABEN
E-TEILE-NR NICHT UNBEDINGT BST-NR : = ET LACKIERT/GEFAERBT GELIEFERT
KN = KEINE ERSATZTEIL-/ARB-POS-NR )=ZEITANTEILE IN ANDERER POS ENTH
LIZENZ = ATS00001

SYSTEM AUDATEX BLATT 2

K O N T R O L L B L A T T NR 0106-T8151 02.02.2006

FABRIKAT TOYOTA CELICA STI
FZ-IDENT-NR XX164XXX000111111 AMTL KZ W-XX 00 TYP-CODE Y 29 01
ERSTE ZUL 16.09.1993 NAECH HU 08.2006 LAUFLEIST 168509

BES-DATUM 18.01.2006 FZ-ZUST UNZERLEGT

KD-NR / SV-NR : 010577 ATS00001 CLASSDIRECT REL 3.28
VERSIONS-NR: 3.28.03.02

AUSWERTUNGS-DATUM : 02.02.2006

AV-CODES

  • AUSFUEHRUNGSVARIANTEN : D3 R4 Y4
  • SERIENAUSSTATTUNG : I7 I8 N1 Q1
  • SONDERAUSSTATTUNG : G1 G2 J6 L2 S6

ERSATZTEILE / LACKIERUNG

  • REP-ART/LEIT-NR/INFO : N 0708 LO / LE 0742 —> L 0754 Z

LOHNFAKTOREN

  • ZEITBASIS : 10 AW=1 STD
  • MECH/SPENGLER : 79.00 EUR/STD
  • LACKIERER -HERST : 95.00 EUR/STD

RANDFAHNEN-CODES

  • AKTIVE CODES : 20 8.00 / 40 30.00 / 63 20.00 / 70 20.00
    72 20.00

ERSATZTEILE

  • PREISSTAND : 01.01.2006

LACKIERUNG

  • REP-ART/LEIT-NR : LE 0742 / L 0754

ANZAHL POSITIONEN

  • ERFASST : 7
  • MUTATIONEN :

FAHRZEUGBEWERTUNG

  • EINGABEDATEN / : 001 0106-T8151 002 W-EJ 317 120 02.02.2006
    DRUCKVARIANTE (DV) 122 16.09.1993 125 168509
    101 10501286 TOYOTA Celica STi 1.6

  • SONSTIGES : 129 15000

  • GRUNDWERT 3 207.00

  • ERGEBNIS : 965 / / 3 280.00

SCHLUSSKALKULATION
LOHN: 134.30 NEBEN: 40.00 LACK: 382.85 ET : 289.82
REP : 846.97 MWST: 135.52 REPI: 982.49

SYSTEM AUDATEX

K O N T R O L L B L A T T NR 0106-T8151 02.02.2006

DETAIL-ERFASSUNGSDATEN :
E 0742 N 0708 E 0784 E 0324 E 0830
E 1436 E 0772

SYSTEM AUDATEX

[/PREHTML]

Wie gesagt möchte ich lediglich den Block mit der Schlusskalkulation auslesen. Da sich in der Schlusskalkulation natürlich immer wieder die Zahlen ändern, möchte ich gerne aus jeder Position den am Ende jeder Zeile befindlichen variablen Preis in eine PHP-Variable speichern und in eine Datenbanktabelle schreiben. Es würde mir völlig ausreichen, wenn ich nur jeweils die Gesamtsummen der einzelnen Positionen

Leider wird der Inhalt der Textdatei hier ein wenig anders dargestellt, da die Fläche hier nicht breit genug ist. Aber ich hoffe, ihr könnt trotzdem was damit anfangen.

Ist so etwas möglich? Ich probiere es bereits seit Tagen, kriege es aber leider nicht hin.

Bitte freundlich um Eure Hilfe!

Vielen Dank und viele Grüße aus Wuppertal!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Es würde mir völlig ausreichen,
wenn ich nur jeweils die Gesamtsummen der einzelnen Positionen

das war der satz, den du in dein allererstes posting haettest schrieben sollen :smile:

<?php $gesamtsummen = array();<br />foreach (file("summen.txt") as $line)
 {
 if (0===strpos($line,"GESAMTSUMME"))
 { 
 $gesamtsummen[] = trim(substr($line,61));
 }
 }
print\_r($gesamtsummen);

?\>

Vielen Dank erstmal für deine kompetente Hilfe. :smile:
Sorry das ich mich so kompliziert ausdrücke. Bin eben ein wenig verzweifelt.

Deinen Code habe ich nun eingebaut, jedoch gibt er mir immer im Browser folgendes aus: Array()

Woran liegt das?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Woran liegt das?

Es würde mir völlig ausreichen,
wenn ich nur jeweils die Gesamtsummen der einzelnen Positionen

das war der satz, den du in dein allererstes posting haettest
schrieben sollen :smile:

<?php ::
$gesamtsummen = array(); foreach (file("summen.txt") as $line) { if (0===strpos($line,"GESAMTSUMME")) { $gesamtsummen[] = trim(substr($line,61)); } } print\_r($gesamtsummen); ?\>

Deinen Code habe ich nun eingebaut, jedoch gibt er mir immer
im Browser folgendes aus: Array()

das heisst $gesamtsummen wird nicht gefuellt. pruefe als 1., ob der die zeilen durchgeht, d.h., vor if z.b. print $line.
wenn dort jede zeile erscheint pruefst du, ob er in die if-schleife geht. wenn nicht musst du pruefen, ob in der textdatei evtl. vor gesamtsumme noch ein leerzeichen ist und entspr. die if-bedingung anpassen.

Hi!

Vielen Dank für deine Hilfe! Ich habs nun geschafft, allerdings auf einer etwas anderen Art. Du hattest mich mit deinem Codebeispiel auf eine Idee gebracht.

Hier mein Code:

[PREHTML]

<?php $datei = 'dnspool';
$array = file ( $datei ); for ( $x = 59; $x \< count ( $array ) && $x \< 100; $x++ ) { } if ($x=71) { $sumArbeitslohn=substr($array[$x], -9); echo "Gesamtsumme Arbeitslohn-------------------------------------------" . $sumArbeitslohn . " "; } if ($x=76) { $sumNebenkosten=substr($array[$x], -9); echo "Gesamtsumme Nebenkosten------------------------------------------" . $sumNebenkosten . " "; } if ($x=81) { $sumLackierungMaterial=substr($array[$x], -9); echo "Gesamtsumme Lackierung inkl. Material-----------------------------" . $sumLackierungMaterial . " "; } if ($x=87) { $sumErsatzteile=substr($array[$x], -9); echo "Gesamtsumme Ersatzteile--------------------------------------------" . $sumErsatzteile . " "; } if ($x=89) { $repOhneMwst=substr($array[$x], -9); echo "Reparaturkosten ohne MWST---------------------------------------" . $repOhneMwst . " "; } if ($x=91) { $mwst=substr($array[$x], -9); echo "MWST 19%--------------------------------------------------------" . $mwst . " "; } if ($x=93) { $repmwst=substr($array[$x], -9); echo "Reparaturkosten mit MWST-----------------------------------------" . $repmwst; } ?\> [/PREHTML] So klappt's ganz gut. Allerdings könnte es künftig möglicherweise Probleme beim Auslesen der Zeilen geben, wenn sich die Zeilennummern in der Datei ändern sollten. Das könnte passieren, wenn sich oberhalb des Blocks mit der Schlußkalkulation die Positionen vermehren sollten. Daher muß ich noch herausfinden wie ich dem Array beibringe nach dem Wort "Schlußkalkulation" zu suchen und ab dieser Zeile in der das Wort steht, dann nur noch 50 Zeilen auszulesen, da die Gesamtsumme aller Zeilen der Schlußkalkulation nicht größer als 50 Zeilen ist. Hast du hierzu vielleich auch ne Idee? Besten Dank für deine Hilfe! > [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]