Schrift
[thread]6455[/thread]

Matrix: Matrix erstellen (Seite 2)

Leser: 1


<< |< 1 2 3 4 >| >> 38 Einträge, 4 Seiten
Tim78
 2004-08-04 16:25
#85311 #85311
User since
2004-05-11
14 Artikel
BenutzerIn
[default_avatar]
Hi,
habe doch noch ein kleines Problem, gibt es eine Möglichket eine Datei zeilenweise einzulesen und zwar in der Art, dass ungerade Zeilen in eine Datei, die geraden Zeilen in eine andere Datei geschrieben werden??
Vielen Dank schon mal im Voraus.
Tim
Dubu
 2004-08-04 17:15
#85312 #85312
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Tim78,04.08.2004, 11:15]@Dubu: Das Problem ist, dass ich die Werte für x- und y-Achse in zwei verschiedenen Dateien habe, ich glaube, dass gnuplot damit Probleme bekommt, oder??[/quote]
Dafuer ist ja das paste in meinem Vorschlag, das macht aus den zwei Dateien eine. Ohne diese Zeile waere es doch unsinnig ... ?!

In deinen Folgebeitraegen geht es etwas durcheinander - hast du deine Daten jetzt x-y zeilenweise abwechselnd in einer Datei? Oder eine Datei mit x-Daten und eine andere Datei mit y-Daten?
renee
 2004-08-04 17:23
#85313 #85313
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Dubu: paste ist etwas schlecht, da zeilenweise gemerged wird. Die Zahlen liegen aber - wenn ich das richtig verstanden habe - aber immer in 46er-Gruppen in der Datei...

@Tim:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
my $infile = 'path/to/file';
my $out1 = 'path/to/out1';
my $out2 = 'path/to/out2';

open(R_FILE,"<$infile") or die$!;
my @lines = <R_FILE>;
close R_FILE;

open(W_OUT1,">$out1") or die $!;
open(W_OUT2,">$out2") or die $!;
for(my $i = 0; $i < $#lines; $i +=2){
print W_OUT1 $lines[$i];
print W_OUT2 $lines[$i+2];
}
close W_OUT1;
close W_OUT2;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Dubu
 2004-08-04 17:31
#85314 #85314
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Tim78,04.08.2004, 14:25]habe doch noch ein kleines Problem, gibt es eine Möglichket eine Datei zeilenweise einzulesen und zwar in der Art, dass ungerade Zeilen in eine Datei, die geraden Zeilen in eine andere Datei geschrieben werden??[/quote]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl
use strict;
use warnings;

open my $u, ">ungerade" or die $!;
open my $g, ">gerade" or die $!;

while (<>) {
   print { $|-- ? $g : $u } $_;
}

Aufruf mit programmname eingabe.dat. Es werden die Dateien gerade und ungerade erzeugt.
renee
 2004-08-04 17:54
#85315 #85315
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Dubu: cool, das muss ich mir unbedingt aufschreiben!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Ronnie
 2004-08-04 18:08
#85316 #85316
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Das ist aber ein Side-effect auf den ich mich nicht verlassen würde! Besser wäre wohl:
Code: (dl )
$.%2
Damit dürfte man dann auf der sicheren Seite sein. Trotzdem schöne Lösung!\n\n

<!--EDIT|Ronnie|1091628560-->
Dubu
 2004-08-04 18:12
#85317 #85317
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
@Ronnie: Da hast du natuerlich recht, $.%2 ist als Bedingung besser.
Nur eben nicht so ueberraschend. ;)

Also:
Code: (dl )
1
2
3
4
...
while (<>) {
print { $. % 2 ? $u : $g } $_;
}
Tim78
 2004-08-04 18:20
#85318 #85318
User since
2004-05-11
14 Artikel
BenutzerIn
[default_avatar]
[quote=Dubu,04.08.2004, 15:31]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl
use strict;
use warnings;

open my $u, ">ungerade" or die $!;
open my $g, ">gerade" or die $!;

while (<>) {
print { $|-- ? $g : $u } $_;
}

Aufruf mit programmname eingabe.dat. Es werden die Dateien gerade und ungerade erzeugt.[/quote]
Hallo Dubu,
das klappt bei mir so leider nicht, die Datei, die zeilenweise ausgelesen werden soll, öffne ich mit

open FILE, "gzip -cdfq $data"

Danach habe ich dann, wie von Dir beschrieben, die beiden Dateien geöffnet, diese bleiben danach aber leer. Was könnte ich da denn noch falsch gemacht haben. Ansonsten ist es wohl genau das was ich auch suche.
MfG
Tim
Ronnie
 2004-08-04 18:53
#85319 #85319
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
probier es einmal mit:
Code: (dl )
gzip -d dateiname | programm

Bei den gzip-Optionen weiß ich nicht was du brauchst, aber das Programm (von Dubu) sollte via Pipe ansprechbar sein.\n\n

<!--EDIT|Ronnie|1091631255-->
Tim78
 2004-08-04 19:09
#85320 #85320
User since
2004-05-11
14 Artikel
BenutzerIn
[default_avatar]
Leider klappt das auch nicht, schade. Wäre auf jeden Fall super gewesen. Die gzip Optionen sollten so in Ordnung sein.
Gibt&´s denn nicht irgendeine einfache Möglichkeit nur jede zweite Zeile zu lesen?
Tim
<< |< 1 2 3 4 >| >> 38 Einträge, 4 Seiten



View all threads created 2004-08-03 17:13.