Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7180[/thread]

Dateien vergleich [PERL NEWBIE] (Seite 2)



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
Crian
 2005-08-01 18:22
#56910 #56910
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=v0id,01.08.2005, 15:11]@Crian
Versteh ich das richtig das der letztendlich lediglich die Länge Prüft und ob diese gleich sind?
Mein Problem ist ja das die neue Datei wahrscheinlich immer länger sein wird, die Frage ist nur an welcher Stelle die veränderung war. Wurde was nur ans ende drangehängt ist es OK, wurde was mitten drin verändert ist das Schlecht.
Genau das muss ich halt prüfen :-/

@Taulmarill
die dateien werden glaub ich recht groß sein, deswegn hat ich überlegt das zeile für zeile zu prüfen :rock:[/quote]
Nein, die Zeilen werden auf Gleichheit geprüft, denn das ist nach Deinem obigen Post das einzige, was Du überprüft haben willst.

Abbruch erfolgt, wenn eine Datei länger als die andere (und der Anfang gleich) ist.
Abbruch erfolgt, wenn zwei Zeilen verschieden sind.

Und natürlich endet das Skript auch, wenn beide Dateien gleich sind.

Probier doch einfach mal damit rum ;-)

@Renee: Gute Idee, die Zeilennummer in die Ausgabe einzubauen.
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
v0id
 2005-08-02 10:26
#56911 #56911
User since
2005-07-06
33 Artikel
BenutzerIn
[default_avatar]
Oki doki, ich werds ma testen.

Learning by doing is ja eh am besten.

Schon mal Danke für die Hilfe, ggf. meld ich mich sicher nochmal :D
v0id
 2005-08-02 15:51
#56912 #56912
User since
2005-07-06
33 Artikel
BenutzerIn
[default_avatar]
Also ich habs mal durchgetestet.

Es ist ansich von der Ansatzweise genau was ich brauche hab da nur ein kleines weiteres Problem.

Hab natürlich zwei Dateien erstellt

alt:
Code: (dl )
1
2
3
4
5
6
1
2
3
4
5
6


neu
Code: (dl )
1
2
3
4
5
6
1
2
3
4
5
6789


Dies kam raus.
Quote
Dateien sind unterschiedlich at test.pl line 15, <NEU> line 6.


Soweit verstehe ich es ja auch, die Dateien sind ja wirklich unterschiedlich, jedoch sind zum schluss ja nur Zeichen angehangen worden.

Das bedeutet doch nun soviel wie ich muss jede Zeile noch zusätzlich Zeichen für zeichen überprüfen, richtig? Nur wie bewerkstellige ich das?
Sicher irgendwie in nen array schmeissen oder?

Eine Weitere frage hab ich da noch, und zwar wie geb ich die Informationen wie line 6, in ne Report file aus, bzw wie komm ich an diesen Wert?

// also der befehl mit print REPORTDATEI "bla"; is mir ansich klar..
Crian
 2005-08-03 15:12
#56913 #56913
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Leite einfach die Ausgaben der Datei um.

Wenn Zeichen angehängt werden entsteht eine neue Zeile, wenn die Datei vorher vernünftig mit einem Zeilenumbruch am Ende vorlag.

Falls das nicht sichergestellt ist, muss man wohl, wie Du sagst, die Zeichen testen. Dann muss aber die Originaldatei auch wirklich zuende sein, und das macht dann alles etwas komplizierter.

Oder welches Ergebnis erhoffst Du Dir bei

alt:
Code: (dl )
1
2
3
1
2
3


neu:
Code: (dl )
1
2
3
1
222222
3
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
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2005-08-01 15:34.