Zeile in TXT-Datei auf Server ersetzen
|
Seitenanfang |
| Hallo, ich bräuchte leider bevor ich es wirklich erlernen kann (gerade Zeitmangel) ein Skript, das mir aus einer Datei auf dem Server eine ganze Zeile ersetzt. Beispiel. In der Datei steht: SHOW_TEXT=blablabla.... und ich möchte über ein HTML Formular nun erreichen, dass man die Zeile, die mit SHOW_TEXT beginnt, komplett ersetzen kann mit wiederum SHOW_TEXT=bla2bla2bla2.... Wie ich es aufrufe, ist weniger das Problem, nur eben, wie ich die ganze Zeile ersetzen kann, anhand von dem Beginn mit SHOW_TEXT. Hoffe, mir kann hierzu jemand helfen. Vielen Dank Daniel Seichter
Datum: 04.11.2004-07:47

|
re: Zeile in TXT-Datei auf Server ersetzen
|
Seitenanfang |
so zum Beispiel: open(DAT, "test.txt"); @in = <DAT>; close DAT;foreach(@in) { if($_ =~ /^SHOW_TEXT=/) { $_ = "SHOW_TEXT=bla2bla2\n"; } } open(DAT, ">test.txt"); print DAT @in; close DAT;
Zuerst die Datei öffnen und einlesen. Dann wird der Textinhalt Zeile für Zeile abgearbeitet und mit einem RegExp geguckt ob die aktuelle Zeile mit SHOW_TEXT= beginnt. Wenn ja wird die Zeile, die mit SHOW_TEXT= beginnt durch SHOW_TEXT=bal2bla2\n ersetzt. Das \n am Ende, damit wieder eine neue Zeile gesetzt wird in der Datei. Am Ende das ganze in die Datei geschrieben und feddich. Hierbei werden allerdings alle Zeilen die mit SHOW_TEXT= beginnen ersetzt falls es mehrere Zeilen in der Datei gibt die so beginnen
Datum: 04.11.2004-15:52

|
re: Zeile in TXT-Datei auf Server ersetzen Fehlermeldung
|
Seitenanfang |
| Hallo Sven, habe deinen Vorschlag probiert. Leider bekomme ich aber immer die Fehlermeldung: Premature end of script headers: test.cgi Kannst du mir hier vielleicht weiterhelfen? Vielen Dank Daniel Seichter
Datum: 04.11.2004-16:45

|
re: Zeile in TXT-Datei auf Server ersetzen Fehlermeldung
|
Seitenanfang |
Der Schnipssel den ich gepostet habe betraf nur den Teil den du zum Ersetzen brauchst. Premature End of Script headers zeigt an dass du keinen Header gesetzt hast in deinem Skript. #!/usr/bin/perl -w#init use CGI::Carp qw(fatalsToBrowser); use CGI qw/:all fatalsToBrowser/; use CGI qw(:standard); #start skript print header(); print start_html(); open(DAT, "test.txt"); @in = <DAT>; close DAT; foreach(@in) { if($_ =~ /^SHOW_TEXT=/) { $_ = "SHOW_TEXT=bla2bla2\n"; } } open(DAT, ">test.txt"); print DAT @in; close DAT; print "String wurde ersetzt"; end_html; #end skript
So mal als ganzes versuchen.
Datum: 04.11.2004-18:10

|
re: Zeile in TXT-Datei auf Server ersetzen Fehlermeldung
|
Seitenanfang |
| Guten Morgen Sven, vielen Dank...ich weiss nicht, wo ich meinen Kopf hatte! Ohne Header geht es ja wohl nicht. Danke Daniel
Datum: 05.11.2004-08:07

|