die ersten zwei Leerzeichen in einer Texdatei ersetzen
|
Seitenanfang |
Hallo , ich hoffe ihr koennt mir helfen. Ich habe folgendes Problem:Ich habe Zeilen wie diese und möchte , dass die ERSTEN ZWEI vorkommenden Leerzeichen durch ein / ersetzt werden. 阿拉伯 阿拉伯 [a1 la5 bo2] /Arabien(S)/arabisch/ soll dann so aussehen: 阿拉伯/阿拉伯/[a1 la5 bo2]/Arabien(S)/arabisch/ Ich habe es schon mit verschiedenen Programmiersprachen versucht scheitere aber immer darin dass ich keinen Unicode verarbeiten kann , da ich sonst Zeichen für Zeichen abarbeiten wuerde und bei ASCII 32 (Leerzeichen) n Counter hochzählen wuerde und ersetzen. Könnte mir jemand in Perl so ein kleines Skript schreiben?? Grüße Fisch
Datum: 22.06.2006-19:40

|
re: die ersten zwei Leerzeichen in einer Texdatei ersetzen
|
Seitenanfang |
| Hallo Fisch, ob Perl inzwischen mit Unicode problemlos umgehen kann, weiß ich nicht. Der Code könnte jedenfalls so aussehen:
use utf8; $zeile = '??? ??? [a1 la5 bo2] /Arabien(S)/arabisch/'; $zeile =~ s| |/|; # erstes Leerzeichen ersetzen $zeile =~ s| |/|; # zweites Leerzeichen ersetzen print "$zeile\n";
Grüße, Peter
Datum: 22.06.2006-20:44

|
re: die ersten zwei Leerzeichen in einer Texdatei ersetzen
|
Seitenanfang |
dankeschön erstmal , aber:$zeile = '??? ??? [a1 la5 bo2] /Arabien(S)/arabisch/'; muesste das nicht allgemein sein?
Datum: 22.06.2006-20:53

|
re: die ersten zwei Leerzeichen in einer Texdatei ersetzen
|
Seitenanfang |
#!/perl/bin/perl.exe use utf8; open FILE, "i:\hande..txt" or die "$!\n"; while ( $zeile = <FILE> ) { # zeilenweises einlesen $zeile =~ s| |/|; # erstes Leerzeichen ersetzen $zeile =~ s| |/|; # zweites Leerzeichen ersetzen print "$zeile\n"; } close FILE #Das scheint leider nicht zu gehen
Datum: 22.06.2006-21:08

|
re: die ersten zwei Leerzeichen in einer Texdatei ersetzen
|
Seitenanfang |
ich hab nicht viel mit Unicode zu tun, aber probier mal
open(FH, '<:utf8', $filename) or die $!;
vielleicht hilft dir "perldoc perluniintro" weiter
Datum: 23.06.2006-02:30

|
re: die ersten zwei Leerzeichen in einer Texdatei ersetzen
|
Seitenanfang |
| Hallo, zunächst einmal ist es Perl egal wie eine Datei codiert wird. Ich habe es mit Deinem Beispiel getestet, und das folgende hat bei mir funktioniert: #!/perl/bin/perluse strict; use warnings; my $file = "./test_utf8_regexp.txt"; my @file_content; open (IN, "<", $file) or die; @file_content = <IN>; close IN; foreach (@file_content) { print $_."\n"; s/ /\//; s/ /\//; print $_."\n"; }
Ciao Ingo aus Vorpommern
Datum: 23.06.2006-07:20

|
re: die ersten zwei Leerzeichen in einer Texdatei ersetzen
|
Seitenanfang |
| @IngoB: meine Email ist: timo_81@web.de Es kommt leider ein Fehler beim kompilieren. Ich habe nun etwas gebastelt , das korrekt funktioniert. Nur die Struktur geht verloren . Ich würds dir gerne mal schicken. Grüße Timo
Datum: 23.06.2006-12:30

|