
 |

| Community » Perl: Allgemeines Forum |
|
Wandlung von csv Daten in eine formatierte Anzeige
|
Seitenanfang |
| Hallo Perl-Druiden, als Neueinsteiger kämpfe ich gerade damit wie ich folgenden Zeichenkette "Testbeispiel für die Datenaufbereitung mit Hilfe des Programms Perl",,,,,,, ,,,,,,, "Testbeispiel:","Polarisationskurven bei Variation der Stöchiometrie",,,,,, ,,,,,,, "P= 1.5 Bara",,,,,,, "Lambda = 1.5",,,,,,, "I/A",0,0,2,0,4,0,6,0,8,1,1,2 "U",0,9,0,7,0,6,0,55,0,5,0,48,0,2 "Lambda = 2.0",,,,,,, "I/A",0,0,2,0,4,0,6,0,8,1,1,2 "U",0,9,0,73,0,62,0,57,0,56,0,52,0,3 In folgende Form überführen kann: Lambda = 1.5 0.0 0.2 0.4 0.6 0.8 1.0 1.2 0.9 0.7 0.6 0.6 0.5 0.5 0.2 Lambda = 2.0 0.0 0.2 0.4 0.6 0.8 1.0 1.2 0.9 0.7 0.6 0.6 0.6 0.5 0.3 Wenn Ihr mir dazu ein Skript zusenden könntet, erleichtert mir das den Start in perl ungemein. Dank Euch für Eure Unterstützung. Gruß Tom04
Datum: 19.12.2004-20:42

|
re: Wandlung von csv Daten in eine formatierte Anzeige
|
Seitenanfang |
| Hallo Tom, kommen deine Werte wirklich so an "I/A",0,0,2,0,4,0,6,0,8,1,1,2 oder so: "I/A",0,0.2,0.4,0.6,0.8,1,1.2 Im ersten Fall solltest du zunächst versuchen, einen anderes Trennzeichen einzusetzen (z.B. Semikolon) kann in vielen Tabellenkalkulationen gewählt werden. Ansonsten besteht nämlich keine Möglichkeit, die Werte sinnvoll und richtig zu trennen. Gruß Thomas
Datum: 19.12.2004-21:28

|
re: Wandlung von csv Daten in eine formatierte Anzeige
|
Seitenanfang |
| Hallo Thomas, danke für Deine Rückmeldung. Die Daten sind auch mit Semikolon zu trennen, s.u. "Testbeispiel für die Datenaufbereitung mit Hilfe des Programms Perl";;;;;;; ;;;;;;; "Testbeispiel:";"Polarisationskurven bei Variation der Stöchiometrie";;;;;; ;;;;;;; "P= 1.5 Bara";;;;;;; "Lambda = 1.5";;;;;;; "I/A";0;0,2;0,4;0,6;0,8;1;1,2 "U";0,9;0,7;0,6;0,55;0,5;0,48;0,2 "Lambda = 2.0";;;;;;; "I/A";0;0,2;0,4;0,6;0,8;1;1,2 "U";0,9;0,73;0,62;0,57;0,56;0,52;0,3 So richtig weiter komme ich aber auch damit noch nicht. Wenn Du einen Vorschlag für die Datenaufbereitung hast, bin ich Dir für Deine Unterstützung dankbar. Gruß Tom
Datum: 20.12.2004-07:49

|
re: Wandlung von csv Daten in eine formatierte Anzeige
|
Seitenanfang |
| Hallo Tom, wenn deine Daten in einer Datei stehen (hier c:\input.txt) kannst du folgendes Script verwenden: #!c:\perl\bin\perl.exe use strict; use warnings; my $dateiname="c:\\input.txt"; my $in; my @wert; # oeffne die Datei mit den Daten: open(FH,"<$dateiname"); # lese die Datei Zeilenweise ein: while($in=<FH>){ # suche nach Zeilen die mit "Lambda" beginnen: if ($in =~ m/^\"Lambda.*/){ # jetzt trenne ich die Zeile (Trennzeichen Semikolon): @wert=split(";",$in); # entferne Anfuehrungszeichen und # gebe den ersten Arraywert aus (Lamda = x.y): $wert[0] =~ s/\"//g; print $wert[0]."\n"; } # suche nach Zeilen die mit "I/A" oder "U" beginnen: if ( ($in =~ m/^\"I\/A\"/) || ($in =~ m/^\"U\"/) ){ # jetzt trenne ich die Zeile (Trennzeichen Semikolon): @wert=split(";",$in); # gebe alle Zahlenwerte des Array aus: foreach(@wert){ print $_." " if ($_ =~ m/^\d.+/); print $_.",0 " if ($_ =~ m/^\d$/); } print "\r"; } } close(FH); # geht mit Sicherheit auch kürzer und # eleganter, aber ich bin auch nur ein # kleines Licht...
Datum: 20.12.2004-09:18

|
re: Wandlung von csv Daten in eine formatierte Anzeige
|
Seitenanfang |
| Hallo Thomas, Dein Beitrag hat mir viel für das perl Verständnis gebracht. Danke. Gruß Tom
Datum: 20.12.2004-23:22

|
|

|

|