Spaltenelemente aus Textdateien auslesen und neu speichern

grotti

Grünschnabel
Hallo,
ich habe zwei Textdateien, bestehend aus mehreren Zeilen und Elementen jeweils durch ; getrennt.
Ich möchte jeweils ein Element aus beiden Textdateien auslesen und in einer neuen Textdatei zusammenfügen.
1 Datei1:
Name;Vorname;Anschrift

2 Datei2:
Tel;PLZ;Ort

Soll ergeben:
3 Datei3:
Vorname;PLZ

Auslesen der Dateien ist kein Problem, aber dann das zusammenfügen in eine neue Datei. Wie geht das, mit einem ; als Trenner.
$file1=file("datei1.txt");
$file2=file("datei2.txt");

foreach($file1 as $neu1){
$fileStore1=explode(";", trim($neu1));
$fileEgal1=$fileStore1[0];

}
foreach($file2 as $neu2){
$fileStore2=explode(";", trim($neu2));
$fileEgal2=$fileStore2[0];

}
$neuSchreiben=fopen("datei3.txt","w+");
Wie geht das nun hier weiter?

Danke für jeden Tipp.
 
Ist die Reinfolge gleich? Also das der Erste Datensatz aus File1 zu dem Aus File2 gehöhrt und so weiter?
 
Die Reihenfolge ist nicht gleich. Die zusammengehörigen Informationen stehen in beiden Dateien jeweils in der selben Zeile. So soll eben als Ergebnis in der neuen Datei auch wirklich z.B. die PLZ der einen zum Vornamen der anderen Datei passen und in der gleichen Zeile neu gespeichert werden.
 
Dann Lese File1 und File2 Paralel und schreib es in ne neu datei. Kuck dir dazu die Datei-Funktionen von PHP dann soltle das gehen.
 
ich frag mich allerdings wozu das ganze gut sein soll? des geht per datenbank effektiver, deutlich effektiver, und man iss sehr sehr viel flexibler.
 
Parallel öffnen. Das hab ich doch. Aus beiden Dateien habe ich die gewünschten Elemente ausgelesen. Aber wie bekomme ich denn nun die beiden in eine neue Datei? Mit ner Schleife. Ja, aber wie?
Ich puzzle da schon lange dran rum und komm zu keiner Lösung. Das Handbuch bringt mich auch nicht weiter.
 
@wischmopp90

joar, bis zu einer gewissen größe der Datei maybe... allerdings dauerts nich allzu lang, bis sich eine (My)SQL-Datenbank "rentiert", zumal der Dateizugriff immer langsamer ist als der DB-Zugriff^^


@grotti
schleife starten, parallel öffnen, zeile auslesen, zeilen zusammenführen, neue Datei öffnen, zusammengeführte zeile speichern, neue datei schliessen.nächste zeile lesen, zusammenführen, neue Datei öffnen, zusammengeführte zeile speichern, Datei schliessen usw usw usw...

fgets(); dürfte dir da weiterhelfen, da steht auch wie man Dateien ausliest, im prinzip musste die whileschleife nur erweitern, dass er deine zweite datei mit öffnet, an der selben stelle wie deine erste datei die werte ausliest, dann fügst du beide werte zusammen, öffnest die neue datei, schreibst da den krams rein, schliesst sie und gut iss, nach der ganzen Aktion gehts weiter, bis keine EOF erreicht ist.
 
Zurück