SuiRIS
10-04-2007, 12:11
Hallo zusammen.
mein Problem ist folgendes. Ich habe eine Zahlenreihe:
45.993
46.009
46.025
46.057
46.073
46.105
46.105
4.612
46.168
46.184
4,62
4,62
46.232
46.232
Bei dieser Zahlenreihe soll nun die Punkte entfernt und an zweiter Stelle ein Komma gesetzt werden. Am Ende soll es etwa so aussehen:
4,6009
4,6025
4,6057
4,6073
4,6105
4,6105
Meine bisheriger Versuch, nur komm ich leider nicht weiter.
# Name der einzulesenden Datei wird über die Kommandozeile eingegeben
print "\n\n==== Eingabeaufforderung ====\n\n";
print "Namen der zu oeffnenden Datei: ";
$datei = <STDIN>;
chomp $datei;
# Datei öffnen und in einem Array speichern
# Ist die Datei nicht vorhanden, gibt "die" eine Fehlermeldung aus
open(FILE, "<$datei")|| die "\nFehler, die Datei existiert nicht. \n\n";
@datei_inhalt = <FILE>;
close(FILE);
# alle Punkte . im Array entfernen
foreach(@datei_inhalt){
$_ =~ s/\.//gc;
}
# alle Kommas , im Array entfernen
foreach(@datei_inhalt){
$_ =~ s/\,//gc;
}
# Zahl vor dem Komma in Array speichern
foreach $x (@datei_inhalt){
push(@anfang, $position1 = substr($x, 0, 1));
}
# drei Zahlen nach dem Komma in Array speichern
foreach $x (@datei_inhalt){
push(@ende, $position2 = substr($x, 1, 3));
}
$komma = "\,";
# Zusammenfügen der Anfang + Komma
foreach $y (@anfang){
$y.=$komma;
}
Doch wie nun Anfang (+ Komma) mit dem Ende zusammenfügen? Hab versucht zwei foreach-schleifen inneinander zu wursteln klappt aber nicht so recht.
Hat jemand eine Idee?
mein Problem ist folgendes. Ich habe eine Zahlenreihe:
45.993
46.009
46.025
46.057
46.073
46.105
46.105
4.612
46.168
46.184
4,62
4,62
46.232
46.232
Bei dieser Zahlenreihe soll nun die Punkte entfernt und an zweiter Stelle ein Komma gesetzt werden. Am Ende soll es etwa so aussehen:
4,6009
4,6025
4,6057
4,6073
4,6105
4,6105
Meine bisheriger Versuch, nur komm ich leider nicht weiter.
# Name der einzulesenden Datei wird über die Kommandozeile eingegeben
print "\n\n==== Eingabeaufforderung ====\n\n";
print "Namen der zu oeffnenden Datei: ";
$datei = <STDIN>;
chomp $datei;
# Datei öffnen und in einem Array speichern
# Ist die Datei nicht vorhanden, gibt "die" eine Fehlermeldung aus
open(FILE, "<$datei")|| die "\nFehler, die Datei existiert nicht. \n\n";
@datei_inhalt = <FILE>;
close(FILE);
# alle Punkte . im Array entfernen
foreach(@datei_inhalt){
$_ =~ s/\.//gc;
}
# alle Kommas , im Array entfernen
foreach(@datei_inhalt){
$_ =~ s/\,//gc;
}
# Zahl vor dem Komma in Array speichern
foreach $x (@datei_inhalt){
push(@anfang, $position1 = substr($x, 0, 1));
}
# drei Zahlen nach dem Komma in Array speichern
foreach $x (@datei_inhalt){
push(@ende, $position2 = substr($x, 1, 3));
}
$komma = "\,";
# Zusammenfügen der Anfang + Komma
foreach $y (@anfang){
$y.=$komma;
}
Doch wie nun Anfang (+ Komma) mit dem Ende zusammenfügen? Hab versucht zwei foreach-schleifen inneinander zu wursteln klappt aber nicht so recht.
Hat jemand eine Idee?