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



#!/COMMUNITY

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




11.02.2012 / 17:14

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


BeitragWandlung 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

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

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

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

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

-






-
-