User since
2007-05-30
12
Artikel
BenutzerIn
Hallo,
ich habe folgenden Quellcode:
do
{
$line = <FILE>;
chomp($line);
$zeile = $zeile+1;
$byte = 0;
for(my $z = 1; $z <= $Number[$zeile]; $z++)
{
printf DATEI ("%.4f\n", unpack("I", substr($line,$byte,4)) *$MultFact[$zeile]);
$byte = $byte + 4;
}
} until $zeile == $Anzahl || eof;
Ich lese dadurch aus einer Zeile einer Datei ganz viele Werte aus. Jetzt möchte ich aber, dass mir die Daten bei einem Zeilenwechsel in einer neuen Spalte ausgegeben werden.
Wie kann ich das realisieren?
User since
2006-07-05
334
Artikel
BenutzerIn
Auch hallo,
der neugierige Leser wird wohl wissen wollen, wie die Quelldatei und der restliche Perlcode aussehen.
Gruss MisterL
“Perl is the only language that looks the same before and after RSA encryption.”
User since
2003-08-04
14371
Artikel
ModeratorIn
... und natürlich auch wie das Endergebnis aussehen soll.
Am besten ein Dummybespiel zeigen.
User since
2007-05-30
12
Artikel
BenutzerIn
Also,
das ist jetzt ein Teil des Quellcodes, müsste denke ich verständlich sein. Lese aus einer Binärdatei zeilenweise Werte aus und wandle sie mit einem Faktor um. In jeder Zeile der Datei stehen sehr viele Werte, die ich über die for-Schleife ausgebe. Ist die for-Schleife beendet, wird die nächste Zeile der Datei eingelesen. Die Werte in dieser Zeile sollen dann aber in einer neuen Spalte ausgegeben werden, nicht unter den Werten der ersten Zeile.
Soll am Ende also so aussehen:
Spalte1 Spalte2 Spalte3 usw.
Werte 1.Zeile Werte 2.Zeile Werte 3.Zeile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
open(FILE, '<', $filename) or die $!;
local $/ = "\r\n";
binmode(FILE);
open(DATEI,">>Pfad/daten.txt");
$zeile = 0;
my $byte;
do
{
$line = <FILE>;
chomp($line);
$zeile = $zeile+1;
$byte = 0;
for(my $z = 1; $z <= $Number[$zeile]; $z++)
{
printf DATEI ("%.4f\n", unpack("I", substr($line,$byte,4)) *$MultFact[$zeile]);
$byte = $byte + 4;
}
} until $zeile == $Anzahl || eof;
\n\n
<!--EDIT|renee|1181125546-->
User since
2003-08-04
14371
Artikel
ModeratorIn
kannst Du das bitte mal mit konkreteren Werten zeigen? (Quelle und Ziel)
User since
2007-05-30
12
Artikel
BenutzerIn
Quelle:
10101011111010101010101010101010101010101010101......
00101010101010101010101010010111111111000000100......
Ziel:
2,4552 20,3400 1,2440
2,3475 50,6000 1,1712
4,4104 29,0100 0,0615
12,2865 28,3000 0,4319
0,0845 28,1500 2,0127
Die erste Spalte vom Ziel lese ich aus der ersten Zeile der Quelle aus (sind nur Beispiel-Werte, die Quelle ist wie gesagt binär).
User since
2006-11-29
340
Artikel
BenutzerIn
Wieso liest du nicht erst die Werte komplett in ein Array und schreibst sie am Ende in der gewünschten Form raus ?
MfG
User since
2003-08-04
14371
Artikel
ModeratorIn
Ja, so müsste man das machen. Wobei ich immer noch nicht so wirklich kapiert habe, wann man in die nächste Zeile geht und wann was in der aktuellen Zeile angefügt werden soll...
User since
2006-11-29
340
Artikel
BenutzerIn
Ich glaube die Werte aus Zeile1 sollen in die 1. Spalte und die Werte von Zeile 2 in 2. Spalte, usw.
User since
2003-08-04
14371
Artikel
ModeratorIn
Und was kommt dann in die zweite Zeile? Das meine ich damit, dass der OP es *genau* erklären soll, wie man von der Quelle zum Ziel kommt.