Lücken in einem Text durch Daten einer Textdatei ersetzen! Brauche Hilfe! :-)
Daniel Burghaus
- cgi
Moin!
Ich will etwas kleines programmieren, weiß aber an einer Stelle überhaupt nicht weiter, da ich nur ganz geringe Anfängerkentnisse in Perl/CGI hab. Es ist eigentlich sehr einfach, wenn man weiß wie es geht, glaub ich zumindest! ;-)
Also ich erzähl es euch einfach mal, dann könnt ihr ja mal gucken, ob ihr mir helfen könnt!
Ich habe eine Datei mit vielen Nomen alle untereinanderstehen. Sie heißt daten.dat und sieht so aus:
Tisch
Dach
Fenster
Computer
Internet
Pullover
....
Jepp, so schaut's aus nur das da noch viel mehr Wörter drin stehen. Jetzt geht's weiter. Ich will diese Wörter in spezielle Lücken in einem Text einfügen. (Dateiname: text.dat)
Ich stelle mich auf den xxxxxx, dannach geh ich auf's xxxxxx und gucke durch's xxxxxx. Dann gehe ich wieder runter und schalte meinen xxxxxx ein und gehe ins xxxxxx. Weil es mir zu kalt ist ziehe ich mir einen xxxxxx an.
Diese obrigen Wörter aus der daten.dat sollen dann in den Text in eingefügt werden, wo die xxxxxx stehen, so das der Text nach Ausführung des Skript's wie folgt aussieht:
Ich stelle mich auf den Tisch, dannach geh ich auf's Dach und gucke durch's Fenster. Dann gehe ich wieder runter und schalte meinen Computer ein und gehe ins Internet. Weil es mir zu kalt ist ziehe ich mir einen Pullover an.
Natürlich war das da oben nur ein Beispieltext und eigentlich will ich damit was sinnvolleres anstellen. *fg*
Ok, das war's eigentlich auch schon, nur leider hab ich keinen Plan wie ich das machen! :-(
Kann mir einer von euch den passenden Code raustüffelten? Oder ist das ganz kompliziert und man braucht 1000 zeilen von code ;-?
Schöne Grüße aus Wuppertal
Daniel
hi!
Diese obrigen Wörter aus der daten.dat sollen dann in den Text in
eingefügt werden, wo die xxxxxx stehen, so das der Text nach
Ausführung des Skript's wie folgt aussieht:
Eigentlich kein Problem mit ein paar regulären Ausdrücken:
=== cut ===
#!/usr/bin/perl
my @words = qw(Tisch Dach Fenster Computer Internet Pullover);
my $text = "Ich stelle mich auf den xxxxxx, dannach geh ich auf's xxxxxx und gucke durch's xxxxxx. Dann gehe ich wieder runter und schalte meinen xxxxxx ein und gehe ins xxxxxx. Weil es mir zu kalt ist ziehe ich mir einen xxxxxx an."
my $i = 0;
$text =~ s/xxxxxx/$words[$i++]/g;
=== cut ===
bye, Frank!
Hallo Frank!
Komisch, bei mir kam das raus:
"Ich stelle mich auf den Computer, danach geh ich auf's Fenster und gucke durch's Internet. Dann gehe ich wieder runter und schalte meinen Pullover ein und gehe ins Dach. Weil es mir zu kalt ist ziehe ich mir einen Tisch an."
*Wo* habe ich was falsch gemacht?
;-)
Bis danndann
PAF (patrickausfrankfurt)
<img src="/selfaktuell/extras/selfcomm.jpg" alt=""> http://www.atomic-eggs.com/selfspezial/guests/advguest.cgi?view
<img src="http://www.atomic-eggs.com/selfspezial/atomicegg.gif" id="ei" alt="Atomic Eggs - die humosophische Seite" onMouseUp="window.location.href='http://www.atomic-eggs.com/'" onmouseover="if(document.all)document.all.ei.style.cursor='hand';status='http://www.atomic-eggs.com/';return true;" onmouseout="status='';return true;">
hi ho Patrick
"Ich stelle mich auf den Computer, danach geh ich auf's Fenster [...]
*Wo* habe ich was falsch gemacht?
hmm, entweder auf dem Computer oder auf dem Fenster, genau weisst du es natuerlich nur selbst .-)
cua
n.d.p.
p.s.: .-)
=== cut ===
#!/usr/bin/perlmy @words = qw(Tisch Dach Fenster Computer Internet Pullover);
my $text = "Ich stelle mich auf den xxxxxx, dannach geh ich auf's xxxxxx und gucke durch's xxxxxx. Dann gehe ich wieder runter und schalte meinen xxxxxx ein und gehe ins xxxxxx. Weil es mir zu kalt ist ziehe ich mir einen xxxxxx an."my $i = 0;
$text =~ s/xxxxxx/$words[$i++]/g;
=== cut ===
kurze Frage, funktioniert das ganze nicht auch ohne my? Mhh ich müsste mich mal mit my genauer befassen, so ganz raus habe ich es auch noch nicht.
Gruß
strauch
hi ho
[...] funktioniert das ganze nicht auch ohne my?
ja, tut es.
mit "my" ist es nur sauberer, das siehst du, wenn du die datei so anfaengst:
----schnipp-----
#!/usr/bin/perl
use strict;
----schnapp----
wenn du my weglaesst, bekommst du folgende Meldung:
Global symbol "@words" requires explicit package name at xx.pl line 4.
Global symbol "$text" requires explicit package name at xx.pl line 5.
Global symbol "$i" requires explicit package name at xx.pl line 7.
Global symbol "$text" requires explicit package name at xx.pl line 8.
Global symbol "@words" requires explicit package name at xx.pl line 8.
Global symbol "$i" requires explicit package name at xx.pl line 8.
Execution of xx.pl aborted due to compilation errors.
warum?
siehe <110631.html> ff.
cua
n.d.p.