myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Textdateien nach gleichem Schema bearbeiten? (https://mygully.com/showthread.php?t=2462468)

scraem 24.10.11 20:52

Textdateien nach gleichem Schema bearbeiten?
 
Hallöle, ich hab nich viel mit Programmieren am Hut, und ich denke, dass es für so ziemlich alle guten Programmierer (und auch eher schlechten) dies ein Kinderspiel ist und ich sodurch vllt 5-10 Minuten rauben darf:
Also, ich hab ganz viele Textdateien, 767 an der Zahl, die so aufgebaut sind

wort1
wort2
wort3
wort4
....

Nun möchte ich, dass der Inhalt aber so aussieht:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>wort1</string>
<string>wort2</string>
<string>wort3</string>
<string>wort4</string>
u.s.w.
</array>
</plist>

(ja, es hat etwas mit Apple zu tun ._.)

Zusätzlich sind die Dateinamen so aufgebaut:

dictionary-0-0.txt
dictionary-0-1.txt
u.s.w.

Dazu möchte ich, dass das "dictionary-" entfällt und das die Dateiendung ab sofort sich "plist" nennen darf.

Ich danke schon mal im Vorraus :)

urga 24.10.11 22:41

die 10 minuten haste ;)

installier dir php ([Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...])

dann erstelle eine text-datei dict2plist.php:
PHP-Code:

<?php
$dir 
'/home/urga/blabla/'

chdir ($dir) or die ("$dir kein verzeichniss oder keine rechte");

$pre = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>

EOT;
$post = <<<EOT
</array>
</plist>
EOT;

function 
plist ($file$new) {
    global 
$dir$pre$post;
    
$lines file ($file);

    
$fp fopen ($new'w');
    if (! 
$fp) {
        die (
"darf $dir/$new nicht schreiben");
    }
    
fwrite ($fp$pre);
    foreach (
$lines as $l) {
        if (
$l trim ($l)) {
            
fwrite ($fp"<string>$l</string>\n");
        }
    }
    
fwrite ($fp$post);
    
fclose ($fp);
}
foreach (
glob("dictionary-*.txt") as $filename) {
 
$newname str_replace ('dictionary-'''$filename);
 
$newname str_replace ('.txt''.plist'$newname);
 
plist ($filename$newname);
 echo 
"$newname erstellt\n";
}
echo 
"done.\nhave a nice day!\n";
?>

mach ein terminal auf, und starte
> php ....../dict2plist.php

jede andere s*****sprache täte es auch, aber weil ich z.zt soviel php machen muss kann ich das ohne großes nachschlagen direkt runtertippen...

scraem 25.10.11 06:09

hihihi, das wäre was für's iPhone gewesen, deshalb steht da apple in der addresse drin.
danke, werde ich nachher ausprobieren :)

Funkstar2000 25.11.11 10:38

Zitat:

Zitat von urga (Beitrag 22876471)
die 10 minuten haste ;)

installier dir php ([Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...])

dann erstelle eine text-datei dict2plist.php:
PHP-Code:

<?php
$dir 
'/home/urga/blabla/'

chdir ($dir) or die ("$dir kein verzeichniss oder keine rechte");

$pre = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">

EOT;
$post = <<<EOT
</array>
</plist>
EOT;

function 
plist ($file$new) {
    global 
$dir$pre$post;
    
$lines file ($file);

    
$fp fopen ($new'w');
    if (! 
$fp) {
        die (
"darf $dir/$new nicht schreiben");
    }
    
fwrite ($fp$pre);
    foreach (
$lines as $l) {
        if (
$l trim ($l)) {
            
fwrite ($fp"<string>$l</string>\n");
        }
    }
    
fwrite ($fp$post);
    
fclose ($fp);
}
foreach (
glob("dictionary-*.txt") as $filename) {
 
$newname str_replace ('dictionary-'''$filename);
 
$newname str_replace ('.txt''.plist'$newname);
 
plist ($filename$newname);
 echo 
"$newname erstellt\n";
}
echo 
"done.\nhave a nice day!\n";
?>

mach ein terminal auf, und starte
> php ....../dict2plist.php

jede andere s*****sprache täte es auch, aber weil ich z.zt soviel php machen muss kann ich das ohne großes nachschlagen direkt runtertippen...

in der vierten Zeile fehlt doch der Beginn des Arrays
also so:
<array>

urga 25.11.11 19:20

stimmt völlig ;) ich habs im obigen posting gleich korrigiert. danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.