Schrift
[thread]6004[/thread]

Datei kopieren

Leser: 7


<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten
anti
 2004-01-07 22:16
#78559 #78559
User since
2003-11-29
155 Artikel
BenutzerIn
[default_avatar]
Hi Community -

ich möchte einfach nur eine Datei kopieren. Dabei habe ich es schon versucht, die Datei zu öffnen und in einem String "zwischenzuspeichern", jedoch hat das leider nicht den gewünschten Erfolg gebracht.
Ich habe auch schon einmal gelesen, dass es dafür das Modul File::Copy gibt, konnte die Dokumentation allerdings nicht finden.
Habt ihr vielleicht eine Idee für dieses Problem?

ciao .. anti

achso: ist es schlimm wenn die Datei nebenbei von einem anderen Programm bearbeitet wird?
Math55
 2004-01-07 22:23
#78560 #78560
User since
2003-08-19
44 Artikel
BenutzerIn
[default_avatar]
hi, es gibt da mehrere möglichkeiten:


1: mit File::Copy
Code: (dl )
1
2
use File::Copy;
copy($oldfile, $newfile);


2: alles selber machen
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
open(IN,  "< $oldfile")                     or die "can't open $oldfile: $!";
open(OUT, "> $newfile") or die "can't open $newfile: $!";

$blksize = (stat IN)[11] || 16384; # preferred block size?
while ($len = sysread IN, $buf, $blksize) {
if (!defined $len) {
next if $! =~ /^Interrupted/; # ^Z and fg
die "System read error: $!\n";
}
$offset = 0;
while ($len) { # Handle partial writes.
defined($written = syswrite OUT, $buf, $len, $offset)
or die "System write error: $!\n";
$len -= $written;
$offset += $written;
};
}

close(IN);
close(OUT);


3: mit systembefehlen
Code: (dl )
1
2
system("cp $oldfile $newfile");       # unix
system("copy $oldfile $newfile"); # dos



hilft das?
gruß math55
renee
 2004-01-07 22:29
#78561 #78561
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
wobei die erste Methode die beste ist: Plattformunabhängig und schnell
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/
anti
 2004-01-07 22:51
#78562 #78562
User since
2003-11-29
155 Artikel
BenutzerIn
[default_avatar]
Danke für die schnelle Antwort - es hat super funktioniert!!

Jetzt gibt es nur noch ein Problem (wahrscheinlich O.T.): Bei der Datei handelt es sich um ein Video. Da das Video ständig aufgezeichnet wird, fehlt die Endekennung beim kopieren und es ist somit nicht "ansehbar". Weiß vielleicht jemand wie die Endekennung von Videos lautet, damit ich diese manuell anhängen kann (MPEG4 Video-Verfahren) oder muss ich dazu erst den Standard wälzen - oder bin ich mit meiner Vermutung gar auf dem Holzweg?

ciao .. anti\n\n

<!--EDIT|anti|1073509326-->
esskar
 2004-01-08 03:30
#78563 #78563
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
hmm...
eigentlich sind mpeg etcpp. doch stream formate (genau wie jpg)
man kann einen vollständige film einfach in der mitte trennen und hat dann zwei filme die einfach funzen!
havi
 2004-01-08 07:44
#78564 #78564
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Ich wuerde auf jeden Fall die erste Variante verwenden...

Gruss
Crian
 2004-01-08 12:28
#78565 #78565
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Zur zweiten Variante: Wenn man die schon nutzt, dann wohl besser vorher auf binmode setzen...
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
pq
 2004-01-08 15:36
#78566 #78566
User since
2003-08-04
12207 Artikel
Admin1
[Homepage]
user image
[quote=anti,07.01.2004, 21:16]Ich habe auch schon einmal gelesen, dass es dafür das Modul File::Copy gibt, konnte die Dokumentation allerdings nicht finden.[/quote]
dokumentation findest du immer (ja, wirklich immer) und zu jedem modul
mittels der eingabe
 perldoc Modul::Name
auf der kommandozeile.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Relais
 2004-01-08 15:47
#78567 #78567
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
... außer es ist nicht installiert. Dann ist es meistauf dem CPAN:File::Copy zu finden.

File::Copy erfüllt also beide Kriterien. :cool:
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
pq
 2004-01-08 15:56
#78568 #78568
User since
2003-08-04
12207 Artikel
Admin1
[Homepage]
user image
[quote=Relais,08.01.2004, 14:47]... außer es ist nicht installiert.[/quote]
das wäre wirklich traurig. File::Copy ist standard seit perl5.004_05.
wenn jemand eine ältere version hat, tut er mir sowieso leid.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten



View all threads created 2004-01-07 22:16.