Article View: pl.comp.lang.tcl
Article #170Re: Kopiowanie plików
From: Googie
Date: Wed, 17 Aug 2005 19:15
Date: Wed, 17 Aug 2005 19:15
42 lines
2028 bytes
2028 bytes
Bodziu wrote:
> Witam
>
> Czy ktoś wie jak można w tcl pokazać postęp kopiowanego pliku?.
>
A kopiujesz jak? Przez [file copy]? Wtedy nie bardzo się da.
Żeby pokazać postęp to trzeba posłużyć się nieco bardziej wyrafinowanym
sposobem:
proc progress {in out bytes {errMsg {}}} {
if {$errMsg != ""} {
puts "Błąd: $errMsg"
} else {
puts "Skopiowano [incr ::Bytes($in) $bytes] bajtow."
if {[eof $in]} {
puts "Zakonczono kopiowanie."
close $in
close $out
}
}
}
set in [open plik1 r]
set Bytes($in) 0
# Poniższa linia opcjonalnie, jeśli plik jest binarny a nie tekstowy
fconfigure $in -translation binary -encoding binary
set out [open plik2 w]
# Poniższa linia analogicznie do linii 2
fconfigure $out -translation binary -encoding binary
fcopy $in $out -command [list progress $in $out] -size 4096
Trzeba zwrócić uwagę, że [fcopy] z opcją -command działa w tle, zatem
niezbędna jest pętla zdarzeń - jeśli skrypt jej dotychczas nie używał,
to zaraz po [close $out] należy dodać linię [set ::done 1] a na końcu
skryptu: [vwait done]
--
Pozdrawiam (Greetings)!
Googie
Technical Details
Message-ID:
<ddvr1t$s6j$1@nemesis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<ddv4sm$77i$1@atlantis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: Googie <googie@nospam.org> Newsgroups: pl.comp.lang.tcl Subject: Re: Kopiowanie plików Date: Wed, 17 Aug 2005 19:15:01 +0000 Organization: tp.internet - http://www.tpi.pl/ Lines: 42 Message-ID: <ddvr1t$s6j$1@nemesis.news.tpi.pl> References: <ddv4sm$77i$1@atlantis.news.tpi.pl> NNTP-Posting-Host: tf18.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1124298621 28883 80.55.109.18 (17 Aug 2005 17:10:21 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Wed, 17 Aug 2005 17:10:21 +0000 (UTC) User-Agent: KNode/0.9.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit