Hello,
Hallo Tom,
das mit dem dopen und fgets habe ich jetzt so gelöst:
<?php
function convert_file($source, $target)
{
#> $datei = fopen("z:/neu.txt", "r");
$source = fopen($source, "rb");
$dateiR = "z:/file.csv";
#> $fp = fopen($dateiR,"w");
$target = fopen($target,"wb");
$i=0;
#> if ($datei)
# {
if ($source and $target)
{
#> while (!feof($datei)) {
while (false !== ($inputstr = fgets($datei, 4096))
{
$i++;
# [...] Deine Anweisungen mit $inputstr statt $ausgabe :-))
fputs($target, $zeile);
echo ".";
}
}
else
{
return false;
}
echo "fertig! von $source wurden $i Zeilen bearbeitet<br>";
fclose($source);
fclose($target);
return true;
}
?>
>
> ------------------------------------------------------------
>
> Aber das mit dem glob krieg ich nicht auf'm Schirm.
Ok, zum obigen nur ein paar Schöheitskorrekturen:
- Sprechende Variablennamen
- Prüfen, ob Quelle UND Ziel geöffnet werden konnten
- while-Schleife nicht abhängig machen von feof(), sondern von fgets()
PHP setzt das hier schon entsprechend um
Der Filezugriff wird im Hintergund gepuffert.
und nun packen wird die ganze entstandene Funktion in eine Schleife:
$\_filenames = glob('path/to/file/\*.telegram');
if (is\_array($\_filenames)) ## es würde auch reichen "if ($filenames)", aber das ist schmuddleig
{
foreach($\_filenames as $source)
{
$target = $source.'.csv'; ## Zieldatei heitß dann z.B. 'T20090603.telegram.csv'
$ready = convert\_file($source, $target);
if ($ready)
{
echo "$source wurde fehlerfrei konvertiert<br>";
}
else
{
echo "<p>$source konnte nicht fehlerfrei konvertiert werden!</p>";
}
}
}
Nur so als grober Fahrplan.
Also:
- Funktion aus der Konvertierung machen
- Glob aufrufen und damit ein Array der Dateinamen erzeugen
- Funktion in der Schleife für jedes Element von der Globbbed-List aufrufen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
![](http://selfhtml.bitworks.de/Virencheck.gif)
--
Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>