Hallo Leute,
ich bin dabei .ASC Dateien zu bearbeiten, welche um die 70.000 Zeilen �* 400 Zeichen enthalten.
Nur leider habe ich in der Entwicklungsphase mit einer Datei von 800 Zeilen gearbeitet.
Alle Datensätze habe ich in ein Array geschrieben, weil ich eigentlich ohne Datenbank arbeiten wollte, nun komm ich aber nicht drum rum.
Wenn ich in ein Array schreiben lasse muss ich erstmal den Speicher hoch setzten, damit er überhaupt anfängt.
Leider durchsucht er meine Dateien (die Große) aber nicht effizient, er findet keine Datensätze. Woran es liegt kann ich nicht genau sagen aber ich habe den Verdacht, dass vielleicht ein unsichtbare Codierungfehler in der Datei. Woher der Verdacht kommt steht unten.
Bei meiner Testdatei (die Kleine) funktioniert alles wunderbar.
Also wollte ich gern jede Zeile in die Datenbank schreiben, da die Leerzeichen sehr wichtig sind muss ich die gesamte Zeile (400 Zeichen) in eine Spalte schreiben, was bei mir folgendermaßen aussieht:
Bei der kleinen funktioniert es wieder ohne Probleme, sobald ich aber mehr Datensätz habe kommt folgende Meldung:
Womit ich nichts anfangen kann, wenn 'hier nix steht' 
Aber es kommt ab der 820 Zeile vor (es ist egal was dort steht, ich denke es liegt an der Menge)
Bei der großen Datei passiert etwas was ich nicht versteh:
Lese die Daten mit dem oben genannten Script in die DB, dann erstellt er alle ID's aber in der Spalte ($colum = "data") steht nix, nur in der ersten Zelle.
Aber leider nicht richtig, es sollte folgendes drin stehen:
Und folgendes steht drin:
(in der Zeichencodierung: ISO-8859-15 oder US ASCII)
in Unicode erscheinen nur die Fragezeichen in einer Route.
In der Datei sind keine Zeichen vor RN0999....
Woher kommen diese 2 komischen Zeichen, wobei sie mir nicht neu sind, ich hatte sie vor einem Jahr schon mal bei einer Funktion, nur ich weiß nicht mehr wie ich das Problem damals behoben habe.
Würde es etwas bringen, die Datei zu splitten?
In dem ich sage lese Zeile 0 bis 800 ein, lösche sie anschließend aus der Datei und beginne erneut, bis keine Datensätze mehr vorhanden sind???
Ich hoffe jemand kann mir einen Rat geben und mir helfen, ich weiß wirklich nicht weiter.
Schon mal vielen Dank im Voraus.
Lg
ich bin dabei .ASC Dateien zu bearbeiten, welche um die 70.000 Zeilen �* 400 Zeichen enthalten.
Nur leider habe ich in der Entwicklungsphase mit einer Datei von 800 Zeilen gearbeitet.
Alle Datensätze habe ich in ein Array geschrieben, weil ich eigentlich ohne Datenbank arbeiten wollte, nun komm ich aber nicht drum rum.
Wenn ich in ein Array schreiben lasse muss ich erstmal den Speicher hoch setzten, damit er überhaupt anfängt.
PHP-Code:
ini_set("memory_limit", "80M");
Bei meiner Testdatei (die Kleine) funktioniert alles wunderbar.
Also wollte ich gern jede Zeile in die Datenbank schreiben, da die Leerzeichen sehr wichtig sind muss ich die gesamte Zeile (400 Zeichen) in eine Spalte schreiben, was bei mir folgendermaßen aussieht:
PHP-Code:
// ich schreib mal die Variablen rüber
$DatanameOld = "Pfad/Zur/Datei.ASC";
$db_tab = "daten2009";
$colum = "data";
// Originaldatei öffnen (leserecht)
$DataOld = fopen($DatanameOld,"r");
while($oneline=fgets($DataOld,400)) {
//var_dump($oneline);
$pruefen = mysql_query("SELECT * FROM ".$db_tab." WHERE ".$colum."='".$oneline."'") or die("Pruefen: ".mysql_error());
//var_dump($pruefen);
if(!mysql_num_rows($pruefen)) {
$eintrag = "INSERT INTO ".$db_tab." (".$colum.") VALUES ('".$oneline."')";
$eintragen = mysql_query($eintrag) or die("Eintrag: ". mysql_error());
}
}
Pruefen: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Aber es kommt ab der 820 Zeile vor (es ist egal was dort steht, ich denke es liegt an der Menge)
Bei der großen Datei passiert etwas was ich nicht versteh:
Lese die Daten mit dem oben genannten Script in die DB, dann erstellt er alle ID's aber in der Spalte ($colum = "data") steht nix, nur in der ersten Zelle.
Aber leider nicht richtig, es sollte folgendes drin stehen:
RN09999999999 usw....
ÿþR
in Unicode erscheinen nur die Fragezeichen in einer Route.
In der Datei sind keine Zeichen vor RN0999....
Woher kommen diese 2 komischen Zeichen, wobei sie mir nicht neu sind, ich hatte sie vor einem Jahr schon mal bei einer Funktion, nur ich weiß nicht mehr wie ich das Problem damals behoben habe.
Würde es etwas bringen, die Datei zu splitten?
In dem ich sage lese Zeile 0 bis 800 ein, lösche sie anschließend aus der Datei und beginne erneut, bis keine Datensätze mehr vorhanden sind???
Ich hoffe jemand kann mir einen Rat geben und mir helfen, ich weiß wirklich nicht weiter.
Schon mal vielen Dank im Voraus.
Lg

Kommentar