Schrift
[thread]6824[/thread]

Anfänger Frage bezüglich "suche und ersetze"



<< >> 6 Einträge, 1 Seite
Medusalem
 2005-03-29 19:13
#53052 #53052
User since
2005-03-29
2 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo Zusammen,

bin Praktikant und soll mir Perl beibringen, nun bin ich an was hängen geblieben:

Ich will eine Datei ändern und zwar das es falsche Sonderzeichen in die richtigen umändert. Also z.B. "%&¼" in "ü".
Habs schon prima hinbekommen das er mir Zeichenersetzung macht also alle "a" in ein "Ä" umwandelt (war nur test!).
Nun will ich Textersetzung machen. Jetzt ersetzt er mir aber immer nur das erste "%&¼" in ein ü und dann is schluss, paralell macht er aber die Zeichenersetzung richtig.

Hier ist mein Programm mal soweit, ich hoffe die Frage is net all zu blöd nur hab ich nirgends drüber was gefunden :).Bin für jede Hilfe Dankbar.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl
#Umlaute ändern

#print "Dateiname komplett eingeben: ";
$datei = <Fehlerdatei.txt>;
open(LESEN, "<$datei");
@inhalt = <LESEN>;
$zeile = join('',@inhalt);
close (LESEN);

$zeile =~ s/%&¼/ü/;
$zeile =~ tr/a/Ä/;

open (SCHREIBEN, ">$datei");
print SCHREIBEN $zeile;
close (SCHREIBEN);



Seh grad das des net so ganz richtig rauskommt :)
Das hinter dem % (&¼)ist ein "ein-viertel" Zeichen....[B]

edit: Code Tags\n\n

<!--EDIT|[E|B]|1112115401-->
[E|B]
 2005-03-29 20:57
#53053 #53053
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Code: (dl )
$zeile =~ s/%&¼/ü/g;


Einfach das Flag "g" (global matching) anhängen.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Strat
 2005-03-30 01:27
#53054 #53054
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
nebenbei: auf meiner HP steht unter Vortraege meine "Einfuehrung in Perl", die ich fuer Schulungen verwende... vielleicht wird dadurch der Einstieg in Perl ein klein wenig leichter...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
pq
 2005-03-30 10:03
#53055 #53055
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=Medusalem,29.03.2005, 17:13]bin Praktikant und soll mir Perl beibringen, [...][/quote]
wenn du perldoc perlintro noch nicht gelesen hast, solltest du das jetzt tun.
unter anderem hätte dir das kapitel reguläre ausdrücke vermutlich geholfen,
deinen fehler selbst zu erkennen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Medusalem
 2005-03-30 11:13
#53056 #53056
User since
2005-03-29
2 Artikel
BenutzerIn
[Homepage] [default_avatar]
Erstmal Danke für die Hilfe. Naja wusste doch das es ein ziemlich kleiner (doofer) Fehler ist.

Ja die Perldoc hab ist mir schon bekannt auch arbeite ich mich mit einem ziemlich guten Buch da durch, jetzt wo ich es weiß finde ich auch die Lösung zum Problem, nur ist es manchmal gar net so leicht aus den ganzen Infos das richtige rauszulesen.... :)

Ich hoffe ich darf Euch trotzdem weiterhin als "letzte Lösung" missbrauchen, werde Euch auch wirklich nur in Anspruch nehmen wenn ich niergends was find!!!

Danke nochmal.... ;)
Crian
 2005-04-04 18:29
#53057 #53057
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Aber sicher.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 6 Einträge, 1 Seite



View all threads created 2005-03-29 19:13.