Hyäne Geschrieben 20. August 2008 Geschrieben 20. August 2008 Hi brauche mal ein script das folgendes macht: - Ein Verzeichnis durchgehen - die ersten 4 Zeichen des Dateinames rauslesen - alle dateien auflisten - keine doppelten ( erste vier Zeichen ) - in eine datei speichern ich denk mal da kommt Perl am besten in frage oder? danke für eure hilfe
flashpixx Geschrieben 20. August 2008 Geschrieben 20. August 2008 Du kannst auch PHP nehmen. Was bezahlst Du dafür? PHP - SELFPHP: Version 5.1.5 Befehlsreferenz - Tutorial – Kochbuch – Forum zum Thema PHP und PHP: Hypertext Preprocessor sind die Seiten, die Du besuchen möchtest Phil
Shadowman Geschrieben 20. August 2008 Geschrieben 20. August 2008 <?PHP $pfad = ""; $datei = "namen.txt"; touch($datei); //Datei zum sichern der Namen anlegen $fp = popen($pfad,'r'); while(!feof($fp)) { if(!is_dir($fp)) { $datei_lang = fgets($fp); $datei_kurz = substr($datei_name,0,4); echo $datei_lang . '<br>'; // Oder Ausgabe des kurzen Namen: //echo $datei_kurz . '<br>'; $fp2 = fopen($datei,'r') $inhalt = fread($fp2,filesize($datei)); //Inhalt der bisher geschriebenen Datei lesen fclose($fp2); if(substr_count ($inhalt,$datei_lang . '\n') == 0) //Prüfen ob schon vorhanden { $fp3 = fopen($datei,'w'); fwrite($fp3,$datei_name.'\n'); // Einschreiben + Zeilenumbruch fclose($fp3); } } } pclose($fp); ?>[/PHP] achtung...NICHT getestet!
Shadowman Geschrieben 20. August 2008 Geschrieben 20. August 2008 in der zeile mit: fwrite($fp3,$datei_name.'\n'); // Einschreiben + Zeilenumbruch müsste das noch geändert werden auf: fwrite($fp3,$datei_lang.'\n'); // Einschreiben + Zeilenumbruch
Hyäne Geschrieben 20. August 2008 Autor Geschrieben 20. August 2008 vielen dank erstmal bekomme da den fehler: Parse error: syntax error, unexpected T_VARIABLE in D:\xampp\htdocs\namen.php on line 20 kann ich die datei so nicht anlegen lassen ? <?PHP $pfad = "C:\test"; $datei = "namen.txt"; touch($datei); //Datei zum sichern der Namen anlegen $fp = popen($pfad,'r'); while(!feof($fp)) { if(!is_dir($fp)) { $datei_lang = fgets($fp); $datei_kurz = substr($datei_name,0,4); echo $datei_lang . '<br>'; // Oder Ausgabe des kurzen Namen: //echo $datei_kurz . '<br>'; $fp2 = fopen($datei,'r') $inhalt = fread($fp2,filesize($datei)); //Inhalt der bisher geschriebenen Datei lesen fclose($fp2); if(substr_count ($inhalt,$datei_lang . '\n') == 0) //Prüfen ob schon vorhanden { $fp3 = fopen($datei,'w'); fwrite($fp3,$datei_lang.'\n'); // Einschreiben + Zeilenumbruch fclose($fp3); } } } pclose($fp); ?> [/PHP]
Aiun Geschrieben 20. August 2008 Geschrieben 20. August 2008 dann schau dir die zeilen 19-21 doch an, da ist ein Syntaxfehler irgendwo.
Reinhold Geschrieben 20. August 2008 Geschrieben 20. August 2008 bekomme da den fehler: Parse error: syntax error, unexpected T_VARIABLE in D:\xampp\htdocs\namen.php on line 20 <?PHP $fp2 = fopen($datei,'r') ?> [/PHP] Da fehlt das Semikolon am Ende... hth Reinhold
Hyäne Geschrieben 20. August 2008 Autor Geschrieben 20. August 2008 (bearbeitet) ups dankeschön jarnicht gesehen jetzt wenn ich mal alles rausnehme also nur: <?PHP $pfad = "C:\test"; $datei = "namen.txt"; touch($datei); //Datei zum sichern der Namen anlegen $fp = popen($pfad,'r'); while(!feof($fp)) { if(!is_dir($fp)) { $datei_lang = fgets($fp); $datei_kurz = substr($datei_name,0,4); echo $datei_kurz . '<br>'; //$fp2 = fopen($datei,'r'); //$inhalt = fread($fp2,filesize($datei)); //Inhalt der bisher geschriebenen Datei lesen //fclose($fp2); //if(substr_count ($inhalt,$datei_lang . '\n') == 0) //Prüfen ob schon vorhanden //{ //$fp3 = fopen($datei,'w'); // fwrite($fp3,$datei_lang.'\n'); // Einschreiben + Zeilenumbruch //fclose($fp3); //} } } pclose($fp); ?> [/PHP] da gibt es mir nur eine leere datei... kann ich den pfad so nicht angeben ? Bearbeitet 20. August 2008 von Hyäne
Hyäne Geschrieben 20. August 2008 Autor Geschrieben 20. August 2008 hat sich erledigt...hab es anders gelöst
Hyäne Geschrieben 21. August 2008 Autor Geschrieben 21. August 2008 hab das jetzt so gelößt. er ließt auch alle dateien aus aber er gibt nur ca. 4000 strings aus von ca. 8000. gibt es da eine max. bei den arrays ? <?php $dir = '****'; $files = array(); if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { array_push($files,$file); } } } //print_r($files); for ($i = 1; $i <= sizeof($files); $i++) { $id = substr($files[$i],0,5); $ids[$i] = $id; } $result = array_unique($ids); for ($i = 1; $i <= sizeof($result); $i++) { echo $result[$i]."<br>"; } ?> [/PHP]
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden