Veröffentlicht 20. August 200817 j 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
20. August 200817 j 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
20. August 200817 j <?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!
20. August 200817 j 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
20. August 200817 j 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]
20. August 200817 j 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
20. August 200817 j 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 200817 j von Hyäne
21. August 200816 j 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]
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.