Durchsuchen von Dateien
Didi
- cgi
0 Cheatah0 Didi0 Cheatah0 DIDI --> Perl0 Cheatah0 Didi0 Cheatah0 Struppi0 Sven Rautenberg
0 Norbert Kölln
0 Norbert Kölln
Juten Tach
Wie jet dat euch so?
Ick hab da ma son klenes Problem und zwar:
Ich habe eine Suchfunktion programmiert, die soweit ja auch funktioniert. Ich habe das so gemacht, das er jeweils eine Zeile, einer Datei, durchsucht. Das Problem ist nur, das immer nur am Anfang einer Zeile gesucht wird, also wenn das Suchwort in der Mitte der Zeile steht, wird es nicht gefunden.
###########################################
Ich hab den Quelltext so geschrieben:
if ($zeile=~ /^$in{suchwort}/)
{
print "Suchwort ist vorhanden";
}
###########################################
Vielleicht kann man das noch anders schreiben.
MFG
Didi
Hi,
Wie jet dat euch so?
Flugzeug? Bahnhof?
Das Problem ist nur, das immer nur am Anfang einer Zeile gesucht wird,
Ja, genau das hast Du auch gesagt.
if ($zeile=~ /^$in{suchwort}/)
Siehe
perldoc perlre
Das Zeichen "^" steht für den Stringanfang.
Übrigens: Dein Problem ist absolut unabhängig davon, ob es im CGI-Kontext auftritt oder nicht. Der richtige Themenbereich ist "PERL" - sofern dies die Sprache ist, die Du verwendest, was ich nur geraten habe.
Cheatah
if ($zeile=~ /^$in{suchwort}/)
das mit dem "^" wegnehmen, geht nicht. sucht immer noch nur am Anfang
Sorry, ich Programmiere in Perl.
MFG
Didi
Hi,
if ($zeile=~ /^$in{suchwort}/)
das mit dem "^" wegnehmen, geht nicht.
doch, das geht. Warum sollte es nicht gehen?
sucht immer noch nur am Anfang
Ja, weil das "^" dies gebietet.
Sorry, ich Programmiere in Perl.
Beim nächsten Mal wähle bitte den Themenbereich entsprechend dem Problem.
Cheatah
Hab den Fehler gefunden, das Suchwort wird eingeteilt in groß und kleinschreibung unterteil und da wird, wenn ich was klein schreibe nicht gefunde.
Kann man irgendwie sagen, dass das Programm groß und kleinschreibung ignorieren kann? Ich hab das versucht mit:
@lines=~ s/([A-Z])/\L$1\E/g;
Aber da schimpft der.
MFG
Didi
Hi,
Kann man irgendwie sagen, dass das Programm groß und kleinschreibung ignorieren kann?
lies dazu bitte
perldoc perlre
Dort wird diese neben vielen anderen Fragen ebenfalls geklärt.
Aber da schimpft der.
Das ist keine Fehlerbeschreibung.
Cheatah
Aber da schimpft der.
Das ist keine Fehlerbeschreibung.
Warum bist du so unfreundlich?
Ich mache sowas noch nicht sehr lange und wenn ich z.B. die Fehlermeldung nicht richtig erkläre ist das doch nicht so schlimm oder?
Aber der sinn ist doch erkannt worden
MFG
Didi
Hi,
Aber da schimpft der.
Das ist keine Fehlerbeschreibung.
Warum bist du so unfreundlich?
bin ich nicht.
Ich mache sowas noch nicht sehr lange und wenn ich z.B. die Fehlermeldung nicht richtig erkläre ist das doch nicht so schlimm oder?
Es ist höchstens schlimm für Dich, weil Dir ohne Fehlerbeschreibung (nicht einfach nur die Meldung - siehe bitte Archiv) niemand helfen kann.
Aber der sinn ist doch erkannt worden
Nein - ich habe keinen Schimmer, warum der Perl-Interpreter bei Deinem Code "schimpfen" sollte. Wo Du unabhängig davon die Lösung Deines Problems findest, habe ich Dir aber gesagt.
Cheatah
Aber da schimpft der.
Das ist keine Fehlerbeschreibung.
Warum bist du so unfreundlich?
Ich mache sowas noch nicht sehr lange und wenn ich z.B. die Fehlermeldung nicht richtig erkläre ist das doch nicht so schlimm oder?
Was bitte ist an "Das ist keine Fehlerbeschreibung." unfreundlich?
Das ist eine ganz einfache Feststellung. Du erhälst offensichtlich eine Fehlermeldung, willst sie uns aber nicht sagen, willst aber trotzdem geholfen bekommen, _das_ nenne ich unfreundlich, weil alle dann nur rumraten können und ihre Zeit damit verschwenden _deinem_ Problem auf den Grund zu gehen.
Struppi.
Moin!
Aber da schimpft der.
Das ist keine Fehlerbeschreibung.
Warum bist du so unfreundlich?
Ich mache sowas noch nicht sehr lange und wenn ich z.B. die Fehlermeldung nicht richtig erkläre ist das doch nicht so schlimm oder?
Wenn du eine Fehlermeldung erhälst, dann enthält diese exakte Informationen darüber, _was_falsch_ist_. Ein Experte (und hier im Forum sind viele Experten) kann anhand dieser Fehlermeldung schnell erkennen, wo das Problem liegt.
Deshalb:
Nicht rumlabern und schön umschreiben, dass da eine Fehlermeldung kommt ("Aber da schimpft der."), sondern einfach die Fehlermeldung kopieren und in den Posting einfügen (etwa so: "Ich erhalte folgende Fehlermeldung: Error in line 12345 in file /whatever: Regular expression could not be moved".)
Aber der sinn ist doch erkannt worden
Wenn du die Fehlermeldung in deinen eigenen Worten wiedergibst, wird ihr Sinn verfälscht. Du weißt noch nicht, was daran wichtig ist und läßt die interessanten Details weg - oder auch den ganzen Meldungsinhalt, und die Experten müssen sich dann denken, was du wohl gemeint haben könntest. Ein direktes Zitat der Fehlermeldung hingegen schaltet _dich_ als Fehlerquelle beim Übermitteln der Fehlermeldung aus - du kannst dann nichts mehr verfälschen, und man muß nicht mehr raten, was gemeint sein könnte.
Natürlich gibts ein paar typische Fehler, die in gewissen Programmiersituationen immer wieder gern gemacht werden. Aber es hilft dir ja nichts, wenn du solch einen typischen Fehler nicht gemacht hast, obwohl alles darauf hindeutet.
- Sven Rautenberg
Nochmals moin, moin!
Dein Problem muß woanders liegen, denn diese Zeilen
$zeile="Gramusel Nixda Addifikation";
if ($zeile=~ /^Nixda/) { print "Vorhanden"; }
finden den gesuchten Begriff nicht, da er nicht am Anfang der Zeile ist. Wird das "^" entfernt, klappt es, wie zu erwarten ist.
Norbert
Moin, moin!
Ist das Problem eventuell behoben, wenn Du das "^" wegläßt?
Norbert