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



#!/COMMUNITY

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




10.02.2012 / 10:17

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


Beitragdie 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

Beitragre: 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/perl

use 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

Beitragre: 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

-






-
-