Text fortlaufend aus Datei ersetzen (relativ komplizierter Fall)

tranuchebo schrieb:
Die Datei ist also solche fest vorgegeben, also neu erzeugen ist definitiv nicht möglich.

Aha, mit einem Perl-skript würde das so (s.u.) aussehen (Perl in git-bash). Die Textdatei mit den Codes heisst z. B. 'info.txt' und das vorhandene php-file z. B.'code.php'. Dann geht (nenne es 'combine.pl'):
Code:
my ($fn_txt, $fn_php) = ('info.txt','code.php');
my $fn_out = 'new_' . $fn_php;

open my $fh, '<', $fn_txt or die "$fn_txt $!";
my @Codes = <$fh>;
close $fh;
chomp @Codes;

open my $fh_out, '>', $fn_out or die "$fn_out $!";
open my $fh_in, '<', $fn_php or die "$fn_php $!";
my $n = 0;
while(my $line=<$fh_in>) {
   $line =~ s{\$name=\"[^"]*\";}{\$name=\"$Codes[$n++]\";}; 
   print $fh_out $line;
}
close $fh_in;
close $fh_out;
print "$n Ersetzungen vollzogen!\n";
um die Datei mit der gewünschten Struktur zu bekommen. Du musst halt die git-bash auf dem Rechner haben oder gleich auf einem Linux-Rechner anfangen ;)

Sowas kommt dann raus:
Code:
    <?php 
    $name="YRZYQMTBQQCBTLTUV"; 
     
    print ("Die ID lautet $name.\n")
    ?>
     
    <?php 
    $name="LKJAVDCNIDPJFSSWJ"; 
     
    print ("Die ID lautet $name.\n")
    ?>
     
    <?php 
    $name="IIAHFMSHLAZVEXOZP"; 
     
    print ("Die ID lautet $name.\n")
    ?>
 
Zuletzt bearbeitet:
Xport schrieb:
Das ist nichts anderes als der EditPad Lite Vorschlag. Um reine Textdateien zu bearbeiten nimmt man indes nicht Word zu Hilfe, sondern einen halbwegs ordentlichen Texteditor (nein - Word ist *kein* Texteditor sondern ein massentaugliches Schreibprogramm. Das *ist* ein Unterschied!) u.A. weil man keinen Einfluss darauf hat, was dieses M$ Programm dem Text noch an "Schmankerln" hinzufügt. Wenn man nicht aufpasst, darf man von vorne anfangen obwohl der Text an sich - in Word betrachtet - immer noch gut aussieht.
Ja, ist richtig, das können auch andere Editoren. Aber auch Word kann auch einfache Textdateien ohne "Schmankerln" bearbeiten und fast jeder hat es. Reguläre Ausdrücke werden per Assistent unterstützt. Und nicht jeder hat eine Word Aversion.
 
halwe schrieb:
Ja, ist richtig, das können auch andere Editoren. Aber auch Word kann auch einfache Textdateien ohne "Schmankerln" bearbeiten und fast jeder hat es. Reguläre Ausdrücke werden per Assistent unterstützt. Und nicht jeder hat eine Word Aversion.

Ich habe keinesfalls eine Word Aversion. Doch nehme ich für's Schrauben i.d.R. nicht den Hammer, oder anders gesagt: zum Bearbeiten von Plain Text wie z.B. Skripten oder XML empfehle ich halt nicht Word, genau so wenig wie ich zum Briefe schreiben einen Texteditor empfehle.
Ergänzung ()

Zum Problem: wenn man, wie nun mehrfach gesagt, an den Dateien nichts verändern darf, sie also nicht neu erzeugt werden können, kann es wohl kaum gelöst werden. Die Hash-Datei ergibt alleine keinen Sinn, die PHP Ausgangsdatei auch nicht.

Weiter ist es vom Ergebnis her völlig egal, ob ich die gleichen 3 Zeilen PHP 100.000 mal mit anderem Hash schreibe, oder nur ein (1) einziges Mal in einer Schleife unterbringe wobei ich die Hashes einlese - wenn ich beide Skripte laufen lasse, kommt beides mal das Gleiche heraus.

Knödel-Diskussion - das ist ein unverständlich zerhacktes Trivialproblem, das nicht gelöst werden *will*, ich bin raus.
 
Xport schrieb:
Knödel-Diskussion - das ist ein unverständlich zerhacktes Trivialproblem, das nicht gelöst werden *will*, ich bin raus.

Du hast es einfach nicht gecheckt. :lol: Es handelt sich um Beispieldateien, die sollen keinen Sinn ergeben.
blöderidiot hat eine gute Lösung bereits gepostet @ thx an ihn.
 
Stand oben irgendwo, von Dir selber geschrieben, dass "neu erzeugen" der Datei *definitiv* nicht geht, weil "fest vorgegeben"? Hat er, "blöderidiot", mit seinem Skript nun eine neue php Datei erzeugt, oder hat er nicht? Also. Dafür gab's einfachste Lösungen genug, u.a. ein php Fragment, mit dem man es genau so hätte machen können. Aha ... ja ... ich hab's für Dich nicht zu Ende entwickelt, hättest selbst etwas beisteuern müssen. Klar. Und eine einfache Editor-Lösung war nicht nur von mir dabei. Aha ... ja ... reguläre Ausdrücke. Nur was für Nerds, die keine Ahnung haben. Verstehe. :-\

Brems' Dich folglich mal bitte mit dem Anwurf, andere hätten hier irgend etwas nicht gecheckt.
 
Zuletzt bearbeitet:
Ich fand die Aufgabenstellung auch recht verwirrend, vor allem ärgerlich, wenn eine Lösung da ist und man die anderen weiter raten lässt.
Aber ehrlich gesagt stört mich auch, dass hier ständig von einem blöden Idioten die Rede ist, das ist schlechtes "Priming".
Viele Grüße, Halwe
 
Zurück
Oben