perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 21
Click for quality!




11.02.2012 / 22:38

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


Beitragtxts und Perl
Seitenanfang
Ich schlage mich schon ne große große Weile mit dem Problem rum...
ich habe ein keyword auf das er reagieren soll
das tut er auch
die keywordliste ist ne txt datei

da steht dann computer = 1 zum beispiel

wenn ich jetzt die antwort aus der antwort txt datei mit z.B. 1= Schmeiß deinen Computer aus dem fenster haben will wie zum Teufel geht das...

Er muss also computer finden, das hab ich mit $ausdruck = quotemeta($ausdruck);
gemacht aber so kann ich die werte ja nicht zuweisen lassen... HILFEEE

Reicht das als Fragestellung? Danke Blue

Datum: 22.01.2005-19:06

Beitragre: txts und Perl
Seitenanfang

quotemeta escaped in einen String Zeichen denen eine besondere Bedeutung zugeordnet ist indem es dem (Meta-)Zeichen einen Backslash voranstellt.

Um dein Problem zu loesen kannst du die Datei in einer while-Schleife zeilenweise abgehen und einen Hash aus den Schluessel-Werte-Paar erstellen.


while (<FH>) {
chomp;
s/#.*|^\s+|\s+$/; # Kommentare und Leerzeichen am Anfang und am Ende entfernen
next unless length; # ueberspringen wenn Zeile leer
my($key, $value) = split(/\s*=\s*/, $_, 2); # am Gleichheitszeichen aufteilen
$antworten{$key} = $value;
}

print "$antworten{'computer'}\n";

Datum: 23.01.2005-03:39

Beitragre: txts und Perl
Seitenanfang
Ich probiers mal berichte dann über meine Erfolge.... Danke für die Antwort!!!!!!!

Datum: 23.01.2005-12:33

Beitragkriege das in dieses Programm aber irgendwie nicht rein...
Seitenanfang
#!usr/bin/perl -w

print "Hello my name is Eliza. Please state your problem. Or 'bye' to quit.\n";

chomp($ausdruck = <STDIN>);
open(DATEI,"vtext.txt")or die"Cannot open vtext.txt\n";
@datei = <DATEI>;

$ausdruck = quotemeta($ausdruck);

foreach(@datei)
{
if(/$ausdruck/)
{ $ergebnis = 1; last; }
}
if($ergebnis) {#Protokollierung
open(SPEICHER1,">>Protokoll.txt") || die "Error >";
print SPEICHER1 "$ausdruck\n";
print "So you have problems with...!\n"
}

elsif ($ausdruck eq "bye") {print "If you think you need no therapy..!\n"}

else
{ print "State your Problem!\n" };


Datum: 23.01.2005-13:18

Beitragre: kriege das in dieses Programm aber irgendwie nicht rein...
Seitenanfang
Musst wohl doch etwas ausfuehrlicher in deinen Beschreibungen werden (komme nicht so dahinter was es denn genau tun soll).
Was wird eingegeben (IMMER nur _ein_ Keyword oder mehrere Angaben?), was soll damit gemacht werden (sollen die passenden Zeilen nur festgehalten werden { deine Protokollierung ?}), was soll letztendlich das Ergebnis sein, ... bzw. was fuer Aufgaben uebernimmt dein Script.

Datum: 24.01.2005-16:42

Beitragre: kriege das in dieses Programm aber irgendwie nicht rein...
Seitenanfang
Die Protokollierung ist eher unwichtig...
Also bei dem Programm handelt es sich um einen Eliza Klon http://www-ai.ijs.si/eliza/eliza.html
User gibt ein I have problems with computer
Programm reagiert auf computer als keyword aus keyword.txt
dann antwortet es aus Antwort.txt You have problems with computers?
Dabei haben das keyword und die Antwort den gleichen Schlüssel
Dann wenn kein keyword eingegeben wurde sollte es eine gegenfrage unter einbeziehung des rests stellen...
Bsp: I have a dog
Programm: you have a dog?
i have und you have stehen in der umwandlungs.txt
er muss dann also a dog als rest erkennen...
Wir können uns gerne mal online treffen, bei icq o.ä. dann kann ich dir das nochmal genauer erklären...
Supernett dass du mir helfen willst... sollte das zum Erfolg führen kriegst ein Geschenk von mir!!

Datum: 24.01.2005-18:00

-






-
-