PDA

Vollstndige Version anzeigen : Datei in Array


silberlocke
16-06-2004, 00:53
Hallo!
Hoffe, ihr knnt mir helfen.
Es wird wohl ein einfacher Fehler sein, da ich keine tieferen Kenntnisse besitze.
Ich versuche gerade eine txt.Datei in diesem Aufbau

Fr;01;08;03;20;00;P;1.Herren;TuS Celle
Di;01;02;03;20;15;P;1.Herren;abc
Mo;14;02;04;20;15;P;1.Herren;lkjk
Fr;01;08;03;20;00;P;1.Herren;dfjfg

(Soll maln Ergebnisdienst werden)
in ein array einzulesen:

$fold = fopen("sp_data_h1_hin.txt","r");
if ($fold)
{
flock($fold,2);
$nl = chr(13) . chr(10);
$array = file($fold);
flock($fold,3);
fclose ($fold);

:
:

}

bekomme aber folgende Meldung:
Warning: file() expects parameter 1 to be string, resource given in /home/www/web823/html/entwicklung/erg_meld_h1_hin_b.php on line 12

Danke

silberlocke
16-06-2004, 01:46
Hach, das Problem hab ich gelst: es muss heien
$fold = "sp_data_h1_hin.txt" ;
Ich hab aber noch eins. Und zwar hab ich fr die Ergebniseingabe (Das Ergebnis soll am Schluss einer Zeile drangehngt werden) die Datei ja in $array gelesen.
Bis zur z-en Zeile werden die Zeilen wieder geschrieben, dann kommt ein Zeilenumbruch. Wie komme ich jetzt an das Ende der vorherigen Zeile, also dem z-en Eintrag, um das Ergebnis hinzuschreiben. Habs mit chmod(8) versucht, was Backspace sein soll, geht aber nicht. Schreibt einfach am Anfang der letzten Zeile weiter.

Die direkte Folge von oben:

$fnew = fopen ("sp_data_h1_hin.txt","w+");
flock($fnew, 2);
$bs = chr(8);
$nl = chr(13) . chr(10);
for($x=0;$x<$z-1;$x++){
fputs($fnew, $array[$x]);
}
fputs ($fnew, "$bs");
fputs($fnew, ";$punkte_heim;$punkte_gast");

for($x=$z-1;$x<count($array);$x++){
fputs($fnew, $array[$x]);
}
flock($fnew,3);
fclose($fnew);

Gru, Silberlocke

bazubi
16-06-2004, 10:28
Noch ein paar Dinge vorweg.

Zum Ersten: Das ganze fopen Gerdel beim einlesen brauchst Du nicht $array = file(dateixyz.txt); reicht vllig (file ffent die Datei selbststndig).

Zum Zweiten: chmod() hat nichts mit Zeichen zu tun, sondern ndert die Dateirechte unter Unix.

Der Zeilenumbruch ist noch vom auslesen im Array drin. Wenn Du den also wieder in die Datei schreibst, fgst Du automatisch auch den Umbruch hinzu.

Entferne nach dem Auslesen mit trim() die Umbrche jedes Arrayelementes.
Anschlieend kannst du den Array schreiben und manuell wieder einen Umbruch setzen. Dadurch kannst Du genau bestimmen wo er hinkommt und somit auch ans Ende einer Zeile schreiben.