Schrift
[thread]7295[/thread]

Macintosh Dateien unter Win in Perl einlesen! (Seite 2)



<< |< 1 2 3 4 >| >> 31 Einträge, 4 Seiten
Weman
 2005-09-22 14:36
#58255 #58255
User since
2005-08-10
17 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich habe alle Eure Tipps getestet und nicht geht! Hab jetzt einen Bekannten gefragt und er meinte das Problem wäre in Hex mit 0E ! Er weiß aber nicht warum!?

Könnt ihr mir da weiterhelfen???

Vielen Dank
Crian
 2005-09-22 15:14
#58256 #58256
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=Crian,20.09.2005, 13:17]War es unter Mac eine Textdatei?[/quote]

nun?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Weman
 2005-09-22 16:18
#58257 #58257
User since
2005-08-10
17 Artikel
BenutzerIn
[default_avatar]
Hallo,

also die Datei lautet einfach nur 86084 ohne Dateiendung! Diese Datei wird von einem anderen Programm generiert und ich muss ein Programm schreiben zum Auslesen dieser Datei!

System ist ein Mac der Version 8! Es ist echt so ein rießen Problem die Datei auszulesen! Leider kenn ich mich halt auch nicht so super aus in Perl und weiß nicht wie ich die Datei auslesen kann!

Problem ist halt er fängt erst in z.B. 8 Zeile an und nimmt dann 8, 9, 10 und 11, 12, 13 lässt er wieder aus weil wahrscheinlich irgendwas kommt was die vorherigen Zeilen löscht! Wenn ich die Zeilennummer mit ausgeben lasse dann stimmen die sogar, also gehe ich davon aus, dass die Zeilen schon gelesen werden aber irgendwas löscht dann die Zeilen!

Ich weiß bloß nicht was oder warum? Lasse ich mir die Datei und Windows in Hex-Mode anzeigen dann kommt da eigentlich nichts außergewöhnliches vor!

Ich weiß echt nicht weiter! Ich schicke auch gerne mal jemand die Datei zum Ansehen!

Liebe Grüße
Crian
 2005-09-22 17:08
#58258 #58258
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Wenn die nicht zu riesig ist und keine Firmengeheimnisse enthält, werf ich da gern mal einen Blick drauf -> crian (at) perl (minus) community (dot) de
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Weman
 2005-09-23 09:57
#58259 #58259
User since
2005-08-10
17 Artikel
BenutzerIn
[default_avatar]
Hallo,

die Datei wurde so eben verschickt!

Vielen lieben Dank
Crian
 2005-09-23 14:10
#58260 #58260
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ich hab sie mir angesehen, der Trenner ist wirklich 0x0d und Du hättest sie mit den hier genannten Mitteln einlesen können.

Hier ist das Programm, mit dem ich sie ausgeben konnte:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/perl
use strict;
use warnings;

my $File = '85635';

my @Lines = read_file($File);
print_lines(\@Lines);
#use Data::Dumper; print Dumper \@Lines;

sub read_file {
my ($file) = @_;

local $/ = chr(0x0d);

open IN, $file or die $!;
chomp(my @lines = <IN>);
close IN or die $!;

return @lines;
}

sub print_lines {
my ($lines) = @_;

for (@$lines) {
print $_, "\n";
}
}


Interessanter Weise ist der Zeilenumbruch der letzten Zeile 0x0d 0x0a. Vermutlich hast Du sie mal versucht, in einem Windowseditor zu öffnen und zu speichern.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Weman
 2005-09-23 14:44
#58261 #58261
User since
2005-08-10
17 Artikel
BenutzerIn
[default_avatar]
Ich bin wirklich zu dumm! Bei mir beginnt die Ausgabe trotzdem nicht vom Anfang an!
Crian
 2005-09-23 16:03
#58262 #58262
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
vermutlich, weil Du den Anfang nicht mehr siehst. Leite das mal in eine Datei um, dann kannst Du die ganz normal in einem Editor ansehen.

Da steht ja 'ODPS_457_300' in der zweiten Zeile (die erste ist leer) und genau das gibt mein Programm auch aus.\n\n

<!--EDIT|Crian|1127477191-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Weman
 2005-09-26 10:40
#58263 #58263
User since
2005-08-10
17 Artikel
BenutzerIn
[default_avatar]
Hallo,

echt super, vielen Dank nochmal! Klappt schon. Wie gesagt ich programmiere das erste Mal mit Perl und hab halt noch einige Probleme!

Jetzt hätte ich bloß noch eine Frage. Ich will ja bestimmte Teile aus der Datei nehmen und in eine DB schreiben! Speichere ich dann die Datei besser in einem Array oder in einer Variable! Lese ich am besten alles mit reg. Ex. aus oder?
&acute;

Vielen Dank!

Weman
renee
 2005-09-26 14:09
#58264 #58264
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das haengt immer von der Struktur der Datei ab. Wie Du also die Textstellen erkennst, die Du in die DB speichern willst.

Du koenntest z.B. mit CPAN:Tie::File arbeiten, wenn die Informationen relativ unabhaengig in einer Zeile stehen.

Beschreib doch mal etwas die Struktur (am Besten mit einer kleinen Beispieldatei) und sag' was Du rausziehen willst.
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/
<< |< 1 2 3 4 >| >> 31 Einträge, 4 Seiten



View all threads created 2005-09-20 12:57.