Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
24.10.11, 20:52
|
#1
|
Anfänger
Registriert seit: Dec 2009
Beiträge: 24
Bedankt: 76
|
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
|
|
|
24.10.11, 22:41
|
#2
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
die 10 minuten haste
installier dir php ([ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu 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...
__________________
entropie erfordert keine wartung
|
|
|
25.10.11, 06:09
|
#3
|
Anfänger
Registriert seit: Dec 2009
Beiträge: 24
Bedankt: 76
|
hihihi, das wäre was für's iPhone gewesen, deshalb steht da apple in der addresse drin.
danke, werde ich nachher ausprobieren
|
|
|
25.11.11, 10:38
|
#4
|
Anfänger
Registriert seit: Sep 2009
Beiträge: 1
Bedankt: 1
|
Zitat:
Zitat von urga
die 10 minuten haste
installier dir php ([ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu 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>
|
|
|
25.11.11, 19:20
|
#5
|
Mitglied
Registriert seit: Aug 2009
Ort: void* (*wtf[])(void **);
Beiträge: 453
Bedankt: 137
|
stimmt völlig  ich habs im obigen posting gleich korrigiert. danke.
__________________
entropie erfordert keine wartung
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr.
().
|