User since
2005-08-10
17
Artikel
BenutzerIn
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
User since
2003-08-04
5873
Artikel
ModeratorIn
[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
User since
2005-08-10
17
Artikel
BenutzerIn
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
User since
2003-08-04
5873
Artikel
ModeratorIn
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
User since
2005-08-10
17
Artikel
BenutzerIn
Hallo,
die Datei wurde so eben verschickt!
Vielen lieben Dank
User since
2003-08-04
5873
Artikel
ModeratorIn
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:
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
User since
2005-08-10
17
Artikel
BenutzerIn
Ich bin wirklich zu dumm! Bei mir beginnt die Ausgabe trotzdem nicht vom Anfang an!
User since
2003-08-04
5873
Artikel
ModeratorIn
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
User since
2005-08-10
17
Artikel
BenutzerIn
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?
´
Vielen Dank!
Weman
User since
2003-08-04
14371
Artikel
ModeratorIn
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
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.