Schrift
[thread]6721[/thread]

Problem mit Dateien



<< >> 9 Einträge, 1 Seite
Us0R
 2005-02-18 13:54
#51891 #51891
User since
2005-02-17
6 Artikel
BenutzerIn
[default_avatar]
Hallo mein erster Post in diesem Forum :D
Und ich bin gestern von Python zu Perl umgestiegen weil Python noch wenig Leute programieren und wenn man eine Frage hat muss man ewig warten biss eine antwort kommt :)
Also zu mein Problem zuerst hier der Code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!usr/bin/perl
# Script writen by Us0R
###
open (file "test.txt") or die "Fehler!\n";
while (<file>)
{
$inhalt .= $_;
}
close (file);
###
open (file1 ">test1.txt") or die "Fehler!\n";
print WRITE $Inhalt;
close (file1);
###

Also bei Python war das so das er die Datei selbst anlegt wenn er die nicht findet wie kann ich machen das Perl das auch tut?\n\n

<!--EDIT|Us0R|1108727781-->
Us0R
 2005-02-18 14:04
#51892 #51892
User since
2005-02-17
6 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!usr/bin/perl
# Script writen by Us0R
###
open (READ, 'test.txt') or die "Fehler!\n";
while (<READ>)
{
$Inhalt .=$_;
}
close (READ);
###
open (WRITE, '>test1.txt') or die "Fehler!\n";
print WRITE $Inhalt;
close (WRITE);
###

So jetzt gehts das waren ber viele Fehler :rock:
Ishka
 2005-02-18 14:11
#51893 #51893
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Wenn du
Code: (dl )
1
2
use strict;
use warnings;

an den Anfang deines Programmes stellst, dann bekommst du mehr Fehlermeldungen von perl und findest deine Fehler leichter. Dann mußt du zwar beim ersten verwenden von Variablen my davorschreiben, aber dafür findest du es auch, wenn du dich mal vertippt hast.

bspl:
Code: (dl )
1
2
3
4
5
6
use strict;
use warnings;

my $test=5;
print $test; # funktioniert einwandfrei
print $tset; # Programm bricht ab, da es $tset nicht kennt
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Us0R
 2005-02-18 14:23
#51894 #51894
User since
2005-02-17
6 Artikel
BenutzerIn
[default_avatar]
Naja das Problem ist das ich mit Windows arbeite und wenn ein Script fertig ist schliest er sich automatisch :(:p
ptk
 2005-02-18 14:26
#51895 #51895
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
sleep $sehr_grosse_zahl oder <STDIN>; koennte helfen...
Us0R
 2005-02-18 14:30
#51896 #51896
User since
2005-02-17
6 Artikel
BenutzerIn
[default_avatar]
Wenn ich das so mache kommt er doch nach demm Fehler nicht dazu Sleep auszuführen oder nicht? Naja ich hab mir eine .bat (BAtCH) datei geschreiben die eingabeauforderung öffnet und dann man gleich im Dem Script Ordner ist dann muss man nur denn name des Script schreiben :D
sesth
 2005-02-18 14:54
#51897 #51897
User since
2005-02-01
181 Artikel
BenutzerIn
[default_avatar]
Am besten gehts mit einem Editor, der Perl integrieren kann (siehe auch http://links.perl-community.de/) unter Editoren. Ich persönlich arbeite mit EditPlus, da bekomme ich dann alle Fehler in einem Ausgabefenster und kann per Doppelclick auf den Fehler direkt in den Quellkode auf die Zeile springen.

Gruß
Thomas
Gruß
Thomas
Ishka
 2005-02-18 15:00
#51898 #51898
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Dazu gibts zwei Hilfsmöglichkeiten:

entweder perl von der Konsole weg starten, oder ein Hilfsscript außenrum:
Code: (dl )
1
2
3
4
5
6
use strict;
use warnings;

system("perl script.pl",@ARGV);

<STDIN>;
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
Crian
 2005-02-21 18:28
#51899 #51899
User since
2003-08-04
5870 Artikel
ModeratorIn
[Homepage]
user image
Zu Windows: Auch dort gibt es eine "'"'"'"Shell"'"'"'", die Dos-Box. Öffne ein CMD- (oder Command) Fenster und starte Dein Programm dort. Sehr angenehm aus Total-Commander heraus: Alt-B-D öffnet Dir ein solches Fenster im aktuellen Verzeichnis.

Zu Deinen ersten Schritten: Schau Dir irgendwann mal perldoc perlstyle an. (perldoc einfach in dem oben beschriebenen Commando-Fenster eingeben.)
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
<< >> 9 Einträge, 1 Seite



View all threads created 2005-02-18 13:54.