[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/14 01:40 / Filesize : 274 KB / Number-of Response : 946
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

●●●●TCL/TKなら俺に聞け 2●●●●



1 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 14:52:44 ]
【英語サイト】
プロジェクト本拠地
tcl.sourceforge.net/
最新版ソースコード
ftp://ftp.tcl.tk/pub/tcl/nightly-cvs/
The Tcler's Wiki
wiki.tcl.tk/
The comp.lang.tcl Newsgroup
groups.google.com/group/comp.lang.tcl/
ActiveTcl
www.activestate.com/products/activetcl/

【日本語サイト】
もっとTcl/Tk
www.interq.or.jp/japan/s-imai/tcltk/
Tcl/Tk Scripting Laboratory
www.geocities.jp/urano343/tcltk.html
Tcl/Tk Primer
mibai.tec.u-ryukyu.ac.jp/~oshiro/Doc/tcltk_primer/
Tcl 8.4.1 Manual Command Reference
www.freesoftnet.co.jp/tclkits/doc/TclCmdRef/tcl_contents_jp.htm
CategoryTclTk - mynote
reddog.s35.xrea.com/wiki/CategoryTclTk.html

【前スレ】
●●●●TCL/TKなら俺に聞け●●●●
pc11.2ch.net/test/read.cgi/tech/1033628416/

692 名前:本田 [2011/01/09(日) 21:31:18 ]
Sockspy
sockspy.sourceforge.net/sockspy.html
ockspy lets you watch the conversation of a Tcp client and server.
Sockspy acts much like a gateway: it waits for a Tcp connection, then connects to the real server.
Data from the client is passed onto the server, and data from the server is passed onto the client.

693 名前:本田 [2011/01/10(月) 20:15:30 ]
Odbcisql is a windowing SQL processor for databases with ODBC interfaces.
wiki.tcl.tk/7110]
ftp://ftp.tcl.tk/pub/tcl/mirror/ftp.procplace.com/sorted/databases/odbcisql/1.0/index.html
ftp://ftp.tcl.tk/pub/tcl/mirror/ftp.procplace.com/sorted/databases/odbcisql/1.0/odbcisql-1.0.tar.gz

TclODBCでnvarcharを使えるようにする
reddog.s35.xrea.com/wiki/TclODBC%E3%81%A7nvarchar%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B.html
reddog.s35.xrea.com/software/tclodbc2.5r1-win32-bin.zip

sourceforge.net/projects/tclodbc/
msdn.microsoft.com/en-us/library/ms714177(VS.85).aspx

694 名前:お父さん [2011/01/11(火) 21:16:24 ]
>651 canvasにpolygonやlineで書いた絵を画像ファイルでセーブする方法はありますか?

→確かめた訳ではないけどこんなものがあるらしい
pdf4tcl dumping canvas to pdf

使えるフォントが英文用の3種のみなので日本語はだめだが、純tclでpdfするのはすごい。



695 名前:デフォルトの名無しさん mailto:sage [2011/01/11(火) 21:18:45 ]
そんなもん入れんでも標準でepsにできるじゃまいか・・・
vista+ActiveTclではフォントをArialとかにしないとeps化できないけどな〜(MS UI Gothicが悪い?)

696 名前:本田 [2011/01/12(水) 07:01:49 ]
>>693
Microsoft ODBC Desktop Database Drivers
msdn.microsoft.com/en-us/library/ms711711%28v=VS.85%29.aspx
Text File Driver Programming Considerations
msdn.microsoft.com/en-us/library/ms714091%28v=VS.85%29.aspx
Text File Data Types
msdn.microsoft.com/en-us/library/ms715429%28v=VS.85%29.aspx
SQLGetInfo Returned Values for Text Files
msdn.microsoft.com/en-us/library/ms712518%28v=VS.85%29.aspx
Other Text File Driver Programming Details
msdn.microsoft.com/en-us/library/ms714680%28v=VS.85%29.aspx
Defining Text Format (Text File Driver)
msdn.microsoft.com/en-us/library/ms710983%28v=VS.85%29.aspx
Schema.ini File (Text File Driver)
msdn.microsoft.com/en-us/library/ms709353%28v=VS.85%29.aspx




697 名前:本田 [2011/01/12(水) 23:18:16 ]
mysqltcl - Tcl Mysql Interface (Version 3.05
www.xdobry.de/mysqltcl/index.html


MySQL 5.1 リファレンスマニュアル

13.11. CSV ストレージエンジン
dev.mysql.com/doc/refman/5.1/ja/csv-storage-engine.html
CSV ストレージエンジンはコンマ区切りの値を使ったフォーマットでデータをテキストファイルに保存します。

24.1. MySQL Connector/ODBC
dev.mysql.com/doc/refman/5.1/ja/myodbc-connector.html


698 名前:本田 [2011/01/15(土) 08:37:16 ]
>>696
Much ADO About Text Files
Greg Stemp
Microsoft Corporation
March 5, 2004
Summary: Demonstrates how script writers can use Microsoft ActiveX Database Objects (ADO) techniques to retrieve data from logs and other text files.
msdn.microsoft.com/en-us/library/ms974559.aspx

ADO (Visual Fox Pro oledb) - read .dbf with tcom
wiki.tcl.tk/16022

699 名前:本田 [2011/01/15(土) 15:15:07 ]
SourceForge.JP、個人向けGitリポジトリ/ストレージサービス「PersonalForge」をリリース
sourceforge.jp/magazine/11/01/13/0234231
OSDNは1月13日、同社の運営するオープンソースソフトウェア開発サイト「SourceForge.JP」において、
個人向け開発支援ツール「PersonalForge」をリリースした。
個人用Gitリポジトリおよびファイル頒布用のストレージサービス(ファイルマネージャ)が提供される。

Git ユーザマニュアル (バージョン 1.5.3 以降用)
www8.atwiki.jp/git_jp/pub/Documentation.ja/user-manual.html

Git
wiki.tcl.tk/14597
gitk
wiki.tcl.tk/14598
Historically, gitk was the first repository browser.
It's written in Tcl/Tk and almost the whole development history is present in the repository as referenced to on top of this page.
Regularly merges are performed in the main git repository.

700 名前:本田 [2011/01/16(日) 12:13:38 ]
>>699
Sun Yiyi氏のGit Source Control Provider for Visual Studio 2008/2010の紹介
www.infoq.com/jp/news/2010/06/Git-Visual-Studio

Git Source Control Provider
visualstudiogallery.msdn.microsoft.com/en-us/63a7e40d-4d71-4fbb-a23b-d262124b8f4c

>>698
Microsoft Jet SQL リファレンス
office.microsoft.com/ja-jp/access-help/CH006252688.aspx
Microsoft Jet 4.0 データベース エンジン ドライバを初期化する
office.microsoft.com/ja-jp/access-help/HP001032161.aspx
外部データのWindows レジストリ設定
office.microsoft.com/ja-jp/access-help/CH001041018.aspx
ODBC アクセスのために Microsoft Jet データベース エンジンを設定する
office.microsoft.com/ja-jp/access-help/HP001032164.aspx
Microsoft OLE DB Provider for Jet で接続プロパティを使用する
office.microsoft.com/ja-jp/access-help/HP001032169.aspx
テキスト データ ソース ドライバを初期化する
office.microsoft.com/ja-jp/access-help/HP001032166.aspx



701 名前:本田 [2011/01/16(日) 21:53:27 ]
>>693
Database Fishing Tool (DaFT) is a front-end to any database that can be connected to with an ODBC driver.
daft.sourceforge.net/

New Version: 1.4.8.1
Released: 08 OCT 2010
This is a minor release, with some major bugfixes.

* Fixed an issue with column information with non-English ODBC driver
* Fixed the problem with data sheet column headings for new query results

702 名前:本田 [2011/01/21(金) 22:18:38 ]
Miscellaneous Tcl packages
vectorstream.com/tcl/packages/
Packages using the Tcl >= 8.5 module system

703 名前:本田 [2011/01/24(月) 06:41:26 ]
Soar (認知アーキテクチャ)
ja.wikipedia.org/wiki/Soar_%28%E8%AA%8D%E7%9F%A5%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%29
Soar(SOAR)とは、カーネギーメロン大学の John Laird、アレン・ニューウェル、Paul Rosenbloom が作成した認知アーキテクチャの一種。
認識とは何かという観点と、それに基づいた人工知能用のプログラムアーキテクチャの観点から構成される。
1983年に最初に作成され、1987年に論文として発表されて以来、多くの人工知能研究者が人間の行動の様々な観点の認知モデルを作成するのに Soar を用いている。

Welcome to the Soar Home Page
sitemaker.umich.edu/soar/home
ai.eecs.umich.edu/soar/sitemaker/releases/

Soar is a general cognitive architecture for developing systems that exhibit intelligent behavior.
Researchers all over the world, both from the fields of artificial intelligence and cognitive science,
are using Soar for a variety of tasks.
sourceforge.net/projects/soar/

704 名前:本田 [2011/01/30(日) 12:22:00 ]
Tcl 8.5 Network Programming
https://www.packtpub.com/tcl-8-5-network-programming/book

[PDF]
Sample chapter - Tcl 8.5 Network Programming
https://www.packtpub.com/sites/default/files/0967-chapter-7-using-common-internet-services.pdf

Tcl 8.5 Network Programming [ペーパーバック]
www.amazon.co.jp/Tcl-Network-Programming-Wojciech-Kocjan/dp/1849510962/ref=sr_1_1?ie=UTF8&s=english-books&qid=1296357607&sr=1-1

705 名前:デフォルトの名無しさん [2011/02/04(金) 21:47:25 ]
wish8.4を使っています。

set pipe [open "|hoge"]とパイプを開いて、
場合によりhogeを途中で終了させたいのですが、
close $pipeやexec kill [pid $pipe]とやると、
どうしてもApplication Errorのダイアログが勝手に出てしまいます。
もう少し穏便に終了させたいのですが、この手のエラーを抑制するにはどうすればよいでしょう?

706 名前:デフォルトの名無しさん mailto:sage [2011/02/04(金) 22:11:44 ]
catch

707 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 11:36:25 ]
過疎スレ(過疎言語?)かと思ったら質問に20分でレスが付くとは。
GJすぐるw。本人じゃないけど礼を言いたいよ。


708 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 14:37:39 ]
>>706
ありがとうございます、例外の捕捉ができるのですね。

709 名前:デフォルトの名無しさん mailto:sage [2011/02/05(土) 23:58:42 ]
このスレじゃないけど質問から1分で的確な回答が付いてたのを見たことがある

710 名前:デフォルトの名無しさん mailto:sage [2011/02/06(日) 00:03:35 ]
そういうのは自演だから



711 名前:本田 [2011/02/06(日) 17:02:07 ]
Great Unified Tcl/Tk Extension Repository
www.flightlab.com/~joe/gutter/

712 名前:デフォルトの名無しさん mailto:sage [2011/02/13(日) 08:27:10 ]
>>707
たまに本田氏が本気を出す時がある。
いりこ出汁的な意味で。

713 名前:デフォルトの名無しさん mailto:sage [2011/02/14(月) 22:33:41 ]
話題は無いけど監視はしてる

714 名前:本田 [2011/02/16(水) 06:58:49 ]
My Home Page: Jean-Luc Fontaine
jfontain.free.fr/
Software (source, documentation, miscellaneous):
For Tcl versions 8.3.x and 8.4.x:

tclperl
a Perl package for Tcl
jfontain.free.fr/tclperl.htm
TclPerl/TclPython
www.ellogon.org/petasis/index.php?option=com_content&task=view&id=27&Itemid=43

tclpython
a Python package for Tcl
jfontain.free.fr/tclpython.htm
TclPerl/TclPython
www.ellogon.org/petasis/index.php?option=com_content&task=view&id=27&Itemid=43

715 名前:本田 [2011/02/19(土) 23:56:32.45 ]
Tcl/Tk Stuff
www.cs.nott.ac.uk/~nem/tcl/
Tcl interface to the NJS JavaScript interpreter library (see njs-javascript.org). Note: LGPL licensed.
www.cs.nott.ac.uk/~nem/tcl/tcljs-1.0.tar.gz

716 名前:本田 [2011/02/20(日) 23:10:04.75 ]
downloads.activestate.com/ActiveTcl/releases/8.4.19.5/ActiveTcl8.4.19.5.294332-win32-ix86-threaded.exe
downloads.activestate.com/ActiveTcl/releases/8.4.19.5/ActiveTcl8.4.19.5.294317-linux-ix86.tar.gz
downloads.activestate.com/ActiveTcl/releases/8.4.19.5/ActiveTcl8.4.19.5.294317-linux-x86_64.tar.gz
downloads.activestate.com/ActiveTcl/releases/8.4.19.5/ActiveTcl8.4.19.5.294317-macosx-universal-threaded.dmg

downloads.activestate.com/ActiveTcl/releases/8.5.9.2/ActiveTcl8.5.9.2.294317-win32-ix86-threaded.exe
downloads.activestate.com/ActiveTcl/releases/8.5.9.2/ActiveTcl8.5.9.2.294317-win32-x86_64-threaded.exe
downloads.activestate.com/ActiveTcl/releases/8.5.9.2/ActiveTcl8.5.9.2.294317-macosx10.5-i386-x86_64-threaded.dmg
downloads.activestate.com/ActiveTcl/releases/8.5.9.2/ActiveTcl8.5.9.2.294317-linux-ix86-threaded.tar.gz
downloads.activestate.com/ActiveTcl/releases/8.5.9.2/ActiveTcl8.5.9.2.294317-linux-x86_64-threaded.tar.gz

downloads.activestate.com/ActiveTcl/releases/8.6.0.0b5/ActiveTcl8.6.0.0b5.294318-win32-ix86-threaded.exe
downloads.activestate.com/ActiveTcl/releases/8.6.0.0b5/ActiveTcl8.6.0.0b5.294318-win32-x86_64-threaded.exe
downloads.activestate.com/ActiveTcl/releases/8.6.0.0b5/ActiveTcl8.6.0.0b5.294318-macosx10.5-i386-x86_64-threaded.dmg
downloads.activestate.com/ActiveTcl/releases/8.6.0.0b5/ActiveTcl8.6.0.0b5.294318-linux-ix86-threaded.tar.gz
downloads.activestate.com/ActiveTcl/releases/8.6.0.0b5/ActiveTcl8.6.0.0b5.294318-linux-x86_64-threaded.tar.gz

717 名前:本田 [2011/02/22(火) 21:20:38.31 ]
>>715
Embed javascript in Tcl
code.google.com/p/tcljs/
This project creates a Tcl extension to embed a javascript interpreter (Spidermonkey) in a Tcl/Tk application.

718 名前:本田 [2011/03/26(土) 00:26:40.20 ]
Ayam
ayam.sourceforge.net/
The current stable version is 1.19, released 16. Mar 2011.

719 名前:デフォルトの名無しさん [2011/04/03(日) 15:32:59.92 ]
% puts $tcl_version
8.4
% puts $tcl_patchLevel
8.4.19
% ls -tr
a.txt   b.txt    c.txt
% ls -tr *.txt
/bin/ls: *.tclにアクセスできません: そのようなファイルやディレクトリはありません
child process exited abnormally
% exec ls -tr *.txt
ls: *.tclにアクセスできません: そのようなファイルやディレクトリはありません


なんでダメなの?

720 名前:719 mailto:sage [2011/04/03(日) 15:37:22.20 ]
/bin/ls: *.txtにアクセスできません
の間違いです。すんません。



721 名前:本田 [2011/04/03(日) 21:24:48.73 ]
tkcon.tcl使ってみたら?

722 名前:デフォルトの名無しさん mailto:sage [2011/04/04(月) 23:37:12.86 ]
globとか。

723 名前:デフォルトの名無しさん mailto:sage [2011/04/05(火) 22:34:50.19 ]
>>719
OSは?

724 名前:デフォルトの名無しさん mailto:sage [2011/04/06(水) 10:52:07.57 ]
>>719
eval exec ls [glob *.txt]

725 名前:デフォルトの名無しさん mailto:sage [2011/04/17(日) 23:05:54.75 ]
Tcl、GoogleのNative Clientに対応した「NaTcl」を発表
slashdot.jp/developers/11/04/15/181223.shtml
> スクリプト言語TclをGoogleのNative Client環境で実行可能な「NaTcl」が発表された。
> NaTclを使用することでTclをWebブラウザ上で実行可能となり、Tclプログラムで
> Google ChromeのDOM(Document Object Model)に直接アクセスできる。これにより、
> JavaScriptの代わりにTclでWebアプリケーションを作成することが可能となる。
> また、Natice Client向けのTk、「NaTk」もまもなくリリースされるとのこと。

これでTcl/Tkの新しい本が出るようになるかな?

726 名前:デフォルトの名無しさん [2011/04/17(日) 23:17:37.46 ]
昔Tcletってあったよね。

727 名前:デフォルトの名無しさん mailto:sage [2011/04/18(月) 09:11:17.63 ]
>>726
今でもある

728 名前:デフォルトの名無しさん mailto:sage [2011/04/19(火) 00:21:24.65 ]
すらどで話題になりなおかつそこそこコメントが付いてることにワシは感動しておるw
まだ見放されてなかったw

729 名前:デフォルトの名無しさん mailto:sage [2011/04/20(水) 15:53:49.10 ]
ペイントソフトをつくろうと思っています
TkCanvasではTkcLine等を用いたベクタ形式の画像処理しかできないようですが
BMPファイル画像等の任意のピクセルの値の読み書きといった
いわゆるペイント系の処理はどのWidgetを使えば実装できるのでしょうか
ご教示お願いします

730 名前:デフォルトの名無しさん mailto:sage [2011/04/27(水) 20:32:05.36 ]
できますよ



731 名前:デフォルトの名無しさん mailto:sage [2011/05/03(火) 23:02:06.65 ]
>>729
難しいことなんて何もないよ。

package require Img
image create photo image1 -file sample.bmp
canvas .c
.c configure -width [image width image1] -height [image height image1]
.c create image 0 0 -image image1 -anchor nw
pack .c
set rgb [image1 get 10 10]
tk_messageBox -type ok -message "X=10,Y=10のRGB値:$rgb"
for {set i 1} {$i < 100} {incr i} {
image1 put #ff0033 -to $i $i
}

732 名前:デフォルトの名無しさん [2011/05/07(土) 22:56:08.08 ]
バイナリファイルを読み込んで、編集して、別名で書き込むにはどうしたら良いでしょうか。
open、binary format、binary scan、puts、getsあたりを使えばできるだろうと思い、試行錯誤したのですが
どうしてもうまくいきません。
Tclは書籍(特に和書)が少ないのでwebの情報が頼りですが、
思ったような情報が見つからず困っています。

733 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 00:39:37.94 ]
そのコマンド列にfconfigureコマンドが無いのが気になった。

734 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 00:55:01.94 ]
>>733
確かにfconfigureも必要かもしれませんね。

できれば一部のデータを置換して別名で保存するようなサンプルが見てみたいです。

735 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 01:34:03.82 ]
まず、試行錯誤してみたコードを貼り付けてみたらどうですか
適当な1バイトを読んでその値を2倍して別ファイルに書き込むのは13行くらいでできた。

736 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 01:49:08.08 ]
ただファイルを読んでそのまま書き込むだけでも失敗してます。
set fileID [open IM000001]
set fileID2 [open IM000002 w]
fconfigure $fileID -translation binary
set strvar [read $fileID]
binary scan $strvar H* value
set len [string length $value]
puts $fileID2 [binary format H$len $value]
close $fileID

737 名前:736 mailto:sage [2011/05/08(日) 01:53:11.25 ]
ちなみにPythonでは簡単に成功しました。
import re

infile = open("IM000000", 'r')
outfile = open("COPYDCM", 'w')

data = infile.read()
data = re.sub("20110214911005", "99887766554433", data)

outfile.write(data)

infile.close()
outfile.close()

738 名前:736 mailto:sage [2011/05/08(日) 01:56:24.08 ]
737のスクリプトはIM000000というファイルの20110214911005を99887766554433に置換して
COPYDCMという名前で保存するだけです。
Tclではその程度ですら自分にはできません。


739 名前:デフォルトの名無しさん mailto:sage [2011/05/08(日) 02:01:45.23 ]
少なくとも
fileID2 にも -translation binary が必要で、puts に -nonewline オプションが必要だともう。


740 名前:736 [2011/05/08(日) 02:06:42.32 ]
>>739
ご指摘の通りにしたら正常に動作しました。
これがわかれば置換等の編集をして保存することも難しくないかもしれません。
頑張ってみます。
ありがとうございました。



741 名前:733 735 739 mailto:sage [2011/05/08(日) 02:15:08.51 ]
どういたしまして。
Pythonが使えるのになぜTclなんだという疑問がありますが、Tcl使いが増えるとちょっとうれしい。

742 名前:デフォルトの名無しさん [2011/05/10(火) 20:13:53.27 ]
あるディレクトリ内にあるファイルのパス名のリストを得るにはどうしたら良いでしょうか?
同じ階層だけであればglobで簡単にできますが、
下層にあるディレクトリ内のファイルも全て対象にしたいのです。

743 名前:デフォルトの名無しさん mailto:sage [2011/05/10(火) 21:29:56.14 ]
globを再帰でつくる
とか、
Tcllibパッケージのfileutilを使う
package require fileutil
::fileutil::findByPattern . -glob *

744 名前:デフォルトの名無しさん mailto:sage [2011/05/12(木) 00:00:56.94 ]
Tcl/Tkによるバイナリエディタ
reddog.s35.xrea.com/wiki/bineditor.html

745 名前:デフォルトの名無しさん mailto:sage [2011/05/19(木) 00:16:38.55 ]
>>741
自分はこれからTcl/Tkを覚えようかとしてるんですが、この言語けっこう恵まれてません?
まぁ、自分のニーズもあるんですが、
・スクリプトで、GUIを手軽に書ける
・グラフの描画ライブラリがある(クリック可能)
・他言語との連携ができる
・単独で動作するバイナリができる
・言語仕様が簡単
・クロスプラットフォーム
・オープンソース
・枯れてる

この条件だとPythonでもよかったんですが、Pmw.Bltはちと不安で…。
自分でメンテ+拡張しようにも、結局内部でTkコマンド呼んでるだけだったんで、なら、ということで。

746 名前:デフォルトの名無しさん mailto:sage [2011/05/22(日) 00:30:34.87 ]
なぜかユーザーは少ない。最近はちょっと増えてきた気もするが
8.3〜8.4のころは本当に見向きもされてなかった

747 名前:デフォルトの名無しさん [2011/05/22(日) 23:15:17.27 ]
PythonでTkinterを介してTkを利用するのって難しすぎじゃね?
Tcl/Tkに慣れすぎると、Tkinterが煩わしくて仕方ない。
どうしてもPythonを使わざるをえない場合は仕方ないけど
できるだけTcl/Tkでやりたくなる。

748 名前:デフォルトの名無しさん [2011/05/23(月) 23:08:54.27 ]
まあPython使うときはTk以外の選択肢いっぱいあるのでTk使わなくてもいいんでは

749 名前:デフォルトの名無しさん mailto:sage [2011/06/08(水) 22:15:40.29 ]
Tclってfork()できないのがつらい。
TclXはちょっと...

750 名前:デフォルトの名無しさん mailto:sage [2011/06/09(木) 20:54:44.14 ]
誰かWin/Linuxでドラッグ&ドロップができるようになる拡張、
8.5以降に対応しているので知らんかね…

とりあえずTkDND 2.2を試して見てるんだけど、8.5には対応
してないらしく、何ヶ所かバグを潰してXConvertSelectionまで
辿り着いたとこで、手詰まった。

※XConvertSelectionをLD_PRELOADでフックして、ちゃんと
 Timeを与えるようにしたのにtimeoutになる、なぜだ…



751 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 15:06:12.77 ]
TkDNDのfixかなり粘ったけど、これは無理。
Tk本体のselection getもtext/uri-listに対応してなかったり、かなり根が深そう。
これ修正するくらいだったら、一から実装したほうが多分早い。くそぅ。

752 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 13:33:18.93 ]
誰か詳しい方、Tcl_CreateThreadについて教えてください…

拡張の処理に時間のかかる部分をThread化して、終了をvwait bgstatとかで
待とうとしてるんですけど、www.tcl.tk/のマニュアルには
「スレッドは親のinterpに触ってはいけない」とか書いてあるんで、スレッドから
set bgstatすることはできないようなのです。

このあたり、普通はどういう処理をするんでしょうか?
サンプルコードの場所なり、このソース読めば判るんじゃね、でも構わないんで、
なにかヒントをお願いします。
(vwaitのEXAMPLEにあるsocketコマンドは勘弁してください、挫折しました)

753 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 17:44:41.87 ]
>>752
Tcl_CreateThread()ということは、Cで拡張を書いている?
だったら、Tcl_AsyncMark()が使えると思う。
Tclのthreadコマンドだったら、thread(n)に書いてあるように、thread::sendを
使えば、threadの結果をvwait出来ると思う。


754 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 18:28:11.50 ]
>>753
Thanks!
CなのでTcl_AsyncMarkですが、マニュアルを読む限りそれっぽい!
とりあえず、何かサンプル書いて確かめてみます。

755 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 19:33:11.70 ]
…あれ?
自分の理解では、これで合ってるはずなんですが…

スレ汚し失礼。

----------

#include <stdio.h>
#include <unistd.h>
#include <tcl.h>

static Tcl_AsyncHandler async_handle;

static int proc_finished(ClientData clientData, Tcl_Interp *interp, int code)
{
Tcl_SetVar2Ex(interp, "bg_stat", NULL, Tcl_NewIntObj(1), TCL_LEAVE_ERR_MSG);
printf("bg_stat has been set to 1.\n.");
return code;
}

Tcl_ThreadCreateType threaded_proc(ClientData clientData)
{
sleep(5);
Tcl_AsyncMark(async_handle);
}

static int asynctestHandleProc(ClientData data, Tcl_Interp* interp, int objc, Tcl_Obj* CONST objv[])
{
Tcl_ThreadId idPtr;
Tcl_CreateThread(&idPtr, threaded_proc, NULL, TCL_THREAD_STACK_DEFAULT, TCL_THREAD_JOINABLE);
return TCL_OK;
}

756 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 19:34:05.54 ]
DLLEXPORT int Asynctest_Init(Tcl_Interp* interp)
{
async_handle = Tcl_AsyncCreate(proc_finished, NULL);
Tcl_CreateObjCommand(interp, "asynctest", asynctestHandleProc, NULL, NULL);
return Tcl_PkgProvide(interp, "asynctest", "0.0.1");
}

----------

#!/usr/bin/env tclsh

load [file join . libasynctest[info sharedlibextension]] asynctest

set bg_stat 0
set wait_stat 0

asynctest

puts "bg_stat is $bg_stat."
after 6000 {set wait_stat 1}
vwait wait_stat
puts "bg_stat is $bg_stat."

----------

$ ./asynctest.tcl
bg_stat is 1.
セグメンテーション違反です

757 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 20:18:25.01 ]
Tcl_SetVar2Ex呼ぶとこでinterpがNULLになってる…
なんか勘違いしてるっぽいですね。

758 名前:753 mailto:sage [2011/06/12(日) 21:15:52.82 ]
>>755
Tcl_AsyncMark(3)の
It is also possible for proc to be invoked when no interpreter is active.
そのものでは?
interp作る場合も注意が必要かな。tcllibとかにも注意。

親Threadにthread::sendでincr varとかを投げるほうが良いような気がしてきたけど。


759 名前:デフォルトの名無しさん mailto:sage [2011/06/12(日) 21:53:20.76 ]
>>758
ありがとうございます、仰る通りな気がします。

Tclのソースでも、
generic/tclAsync.c: Tcl_AsyncInvoke()
  If invoked from Tcl_Eval just after completing a command, points to interpreter. Otherwise it is NULL.
generic/tclTest.c: AsyncHandlerProc()
  this (interp==NULL) should not happen, but by definition of how async handlers are invoked, it's possible.
とか書いてありました。
ほぼUndocumentedで、これはない…

Tcl覚え始めてから、使う拡張ことごとく酷い目に合わされてるんで、
正直、使う拡張は最低限にしたく。

で、結局Tcl_AsyncCreateの第二引数にinterp渡して、無理矢理
proc_finishedで使えば、とりあえずは動くようです(Evilですが…)。
仕組み上ではこれで悪くないはず?なので、これで行こうと思います。

ほんとにありがとうございます。

760 名前:758 mailto:sage [2011/06/13(月) 00:33:27.18 ]
>>759
どこで見たか思い出ないけど、Tcl_AsyncCreate()した時(=拡張のロード時)に
interpを保存しておいて、AsyncHandler()の引数がNULLの場合は保存したinterpを
使っていた。同じことをして動いた記憶はある。
引数がNULLということはコマンドを実行していないので、保存していたinterpを
使っても問題にはならないらしい。
逆に、複数のinterpが存在するとAsyncHandler()が呼ばれた時に渡されるinterpが
通知先である保証が無いのかな?
NULLでないのは何らかのコマンドが終了した瞬間だから、保存していたinterpを
使っても安全な気もするから、実行するコマンドが絶対に成功するようにすれば
それでいいんでは?




761 名前:デフォルトの名無しさん mailto:sage [2011/06/13(月) 23:10:25.66 ]
>>760
おぉ、詳細なご説明ありがとうございます。
ぼんやりとしていた理解が、明確になった気がします。

やっぱり同じ事を考えた方はいらっしゃるんですね。
というか、スレッドの終了をvwaitで待ちたいとか割とありえる状況な気がしますが、
ぐぐってもKodersでもまともにヒットしないってどういうこと…
この辺がニッチな言語の、もの悲しいとこですね。

762 名前:デフォルトの名無しさん mailto:sage [2011/06/16(木) 00:12:12.28 ]
ActiveTcl の8.4 から8.5に移行しようとしてるんだけど、8.5でなんかエクステンションが
すごく減ってない? 例えば8.4であったTclXMLが8.5には見当たらない。 インストールしたのは
ActiveTcl8.5.9.2.294317-linux-ix86-threaded.tar.gz. ドキュメントにはあるんだけど...
docs.activestate.com/activetcl/8.5/tclxml/index.html

だいたい、8.4のtar玉は28Mあったのに8.5は20Mしかない

downloads.activestate.com/ActiveTcl/releases/8.4.19.5/
downloads.activestate.com/ActiveTcl/releases/8.5.9.2/


763 名前:762 mailto:sage [2011/06/16(木) 02:37:19.87 ]
>>116-119
に解答がありました。 失礼しました。

764 名前:天使 ◆uL5esZLBSE mailto:sage [2011/07/05(火) 02:14:58.01 ]
↓↓
「「「「「「「「「 に解答がありました。 失礼しました。 」」」」」」」」」(爆ッゴミッッ!

765 名前:デフォルトの名無しさん mailto:http://www.geocities.jp/c_zelos/soto/tensi_no_aori.zip [2011/07/06(水) 17:28:55.22 ]

<<<<<<<<<<<<< 「「「「「「「「「 に解答がありました。 失礼しました。 」」」」」」」」」(爆ッゴミッッ! >>>>>>>>>>>>>(キリッ!!!きリッ!!!!
↑↑(きリキリッッ!キリ

土方が何をほざいて(笑)



天使#test_s

「天使の煽り」の提供でお送りしました

766 名前:デフォルトの名無しさん mailto:sage [2011/07/07(木) 21:59:23.84 ]
>>763
それは2007年当時の話。今のActiveTclでは
teacupで必要な拡張をダウソするのがナウ。


767 名前:本田 [2011/07/11(月) 23:50:09.19 ]
[Tcl-announce] ActiveTcl 8.5.10.0 released
code.activestate.com/lists/tcl-announce/371/

768 名前:本田 [2011/07/12(火) 00:00:32.94 ]
downloads.activestate.com/ActiveTcl/releases/8.5.10.0/
downloads.activestate.com/ActiveTcl/releases/8.5.10.0/ActiveTcl8.5.10.0.294993-html.tar.gz
downloads.activestate.com/ActiveTcl/releases/8.5.10.0/ActiveTcl8.5.10.0.294993-linux-ix86-threaded.tar.gz
downloads.activestate.com/ActiveTcl/releases/8.5.10.0/ActiveTcl8.5.10.0.294993-linux-x86_64-threaded.tar.gz
downloads.activestate.com/ActiveTcl/releases/8.5.10.0/ActiveTcl8.5.10.0.294993-macosx10.5-i386-x86_64-threaded.dmg
downloads.activestate.com/ActiveTcl/releases/8.5.10.0/ActiveTcl8.5.10.0.294993-win32-ix86-threaded.exe
downloads.activestate.com/ActiveTcl/releases/8.5.10.0/ActiveTcl8.5.10.0.294993-win32-x86_64-threaded.exe
downloads.activestate.com/ActiveTcl/releases/8.5.10.0/MD5SUM
downloads.activestate.com/ActiveTcl/releases/8.5.10.0/SHA256SUM

769 名前:本田 [2011/07/12(火) 21:01:46.78 ]
Teacup
wiki.tcl.tk/17305
Teacup provides access to the Tcl Extension Archive.
It is the client to the TEApot server.
It is distributed with ActiveTcl by ActiveState.

770 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 13:53:55.22 ]
canvasで書いた円と線の交差判定をしたいです。
計算しなくてもできるって聞いたんですがどうすればいいですか?



771 名前:本田 [2011/07/30(土) 06:39:19.48 ]
円じゃなくて長方形領域ようだけど。

homepage3.nifty.com/kaku-chan/tcl_tk/chapter_231.html
pathName addtag tag overlapping x1 y1 x2 y2
x1 y1 x2 y2 を座標とする長方形領域に少しでも重なるアイテムに対して tag で示されるタグを付けます。 x1 は x2 以下、y1 は y2 以下の数値でなければなりません。

772 名前:本田 [2011/07/30(土) 06:43:22.91 ]
downloads.activestate.com/ActiveTcl/releases/
downloads.activestate.com/ActiveTcl/releases/8.5.10.1/
downloads.activestate.com/ActiveTcl/releases/8.5.10.1/ActiveTcl8.5.10.1.295062-html.tar.gz
downloads.activestate.com/ActiveTcl/releases/8.5.10.1/ActiveTcl8.5.10.1.295062-linux-ix86-threaded.tar.gzhttp://downloads.activestate.com/ActiveTcl/releases/8.5.10.1/ActiveTcl8.5.10.1.295062-linux-x86_64-threaded.tar.gz
downloads.activestate.com/ActiveTcl/releases/8.5.10.1/ActiveTcl8.5.10.1.295062-macosx10.5-i386-x86_64-threaded.dmg
downloads.activestate.com/ActiveTcl/releases/8.5.10.1/ActiveTcl8.5.10.1.295062-win32-ix86-threaded.exe
downloads.activestate.com/ActiveTcl/releases/8.5.10.1/ActiveTcl8.5.10.1.295062-win32-x86_64-threaded.exe
downloads.activestate.com/ActiveTcl/releases/8.5.10.1/MD5SUM
downloads.activestate.com/ActiveTcl/releases/8.5.10.1/SHA256SUM

773 名前:本田 [2011/07/30(土) 06:52:55.54 ]
×downloads.activestate.com/ActiveTcl/releases/8.5.10.1/ActiveTcl8.5.10.1.295062-linux-ix86-threaded.tar.gzhttp://downloads.activestate.com/ActiveTcl/releases/8.5.10.1/ActiveTcl8.5.10.1.295062-linux-x86_64-threaded.tar.gz


downloads.activestate.com/ActiveTcl/releases/8.5.10.1/ActiveTcl8.5.10.1.295062-linux-ix86-threaded.tar.gz
downloads.activestate.com/ActiveTcl/releases/8.5.10.1/ActiveTcl8.5.10.1.295062-linux-x86_64-threaded.tar.gz


774 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 22:02:33.46 ]
Tclって複数行にわたるコメントってできるの?Cの/* ...
... */みたいな。
エディタに頼って全行頭をイゲタるしかないのか。
if 0 {
} ってのもなんだかなぁ...

775 名前:デフォルトの名無しさん mailto:sage [2011/08/03(水) 22:39:32.06 ]
どこのJava

776 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 22:47:02.97 ]
>>774
できない。諦めろ。

777 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 22:48:49.89 ]
proc rem comment {}

rem {
こめんととめんと
こめんとこめんとおおおお!!!
}

778 名前:デフォルトの名無しさん mailto:sage [2011/08/06(土) 00:08:22.24 ]
コメント途中に閉じ中カッコであぼーん

779 名前:デフォルトの名無しさん mailto:sage [2011/08/06(土) 17:21:09.88 ]
# コメント1\
コメント2\
コメント3#

でいけそうだけどどうかな?
# もコマンドみたいなものだから \ で続けて書けそうな気がする

最後の # は無くてもいいけど終端という意味で

780 名前:デフォルトの名無しさん [2011/08/06(土) 21:28:04.24 ]
それは毎行つけるので行頭#とあんまり大差ないな



781 名前:デフォルトの名無しさん mailto:sage [2011/08/07(日) 08:03:02.17 ]
Emacsで範囲指定して
M-x comment-region

782 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 19:15:00.11 ]
C風。

proc /* {script} {}
proc */ {} {}

/* {
puts hello
puts hello
puts hello
}; */

HTML風。

proc <!-- {script} {}
proc --> {} {}

<!-- {
puts hello
puts hello
puts hello
}; -->

783 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 21:18:47.70 ]
set comment {
コメント
}
>>782>>777 と同じく、中括弧がバランスしないと破綻する。
中括弧だけなら、
set comment "
コメント
"
という手もあるけど、" と カギ括弧[] を意識しないといけない


784 名前:デフォルトの名無しさん mailto:sage [2011/08/09(火) 21:26:01.94 ]
#コマンドの振る舞いって謎だな

{}は改行も含めて一つの要素にするはずだから、

# {あほ
ばか
}

で#コマンドは{あほ改行ばか改行}を一つの引数とするはずなのに、{あほ まででコメントが終了しちゃうよね。

set a {あほ
ばか
}

だとちゃんとaに{あほ改行ばか改行}が入るのに

785 名前:デフォルトの名無しさん [2011/08/09(火) 22:50:35.79 ]
#はTclにおいてもコマンドではない。が正解。

786 名前:デフォルトの名無しさん mailto:sage [2011/08/10(水) 22:11:16.68 ]
なるほど
#はコマンドの置ける位置に置かねばならないがコマンドではなく行末までのコメントとして処理されるということか
行末の\継続は生きてる状態で。

787 名前:デフォルトの名無しさん mailto:sage [2011/08/27(土) 23:51:43.68 ]
toplevel .w1
bind .w1 <Destroy> "puts destroyed"
button .w1.b1
button .w1.b2
pack .w1.b1 .w1.b2

ってやって、.w1を閉じると"destroyed"が3回出てくる。
子持ちウィジェットを閉じると、子供の分まで<Destroy>イベントが発生するらしい。
これって仕様なのかな。

788 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 21:06:23.24 ]
>>787
仕様。
但し正確には、子供のぶんまでイベントが発生するのではなくて、子供が処理するイベントに
toplevelのぶんが含まれている。
"puts destroyed %W" とかするとわかると思う。
あとはbindtagsのman-page参照。


789 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 23:40:56.18 ]
>> 787
やりたいこととあってるか分からないけど、toplevel限定なら
toplevel .w1
proc CLOSE_TOPLEVEL {w} {
puts $w
}
wm protocol .w1 WM_DELETE_WINDOW [list CLOSE_TOPLEVEL .w1]
とかはできる。


790 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 23:52:37.47 ]
AssocQueryStringWというWindows APIが使いたかったので、
msdn.microsoft.com/en-us/library/bb773471(v=vs.85).aspx

package require Ffidl
ffidl::callout AssocQueryString {int int pointer-utf8 pointer-utf8 pointer-utf8 int} int [ffidl::symbol shlwapi.dll AssocQueryStringW]

としてみたんですが、

set ASSOCF_NOTRUNCATE 32
set ASSOCSTR_EXECUTABLE 2
set pszFile [string repeat \0 255]
set dwOut 0
AssocQueryString $ASSOCF_NOTRUNCATE $ASSOCSTR_EXECUTABLE {c:\sample.txt} "open" $pszFile $dwOut
=> -2147024809

というのが返ってきます。
たぶん、ERROR_INVALID_PARAMETER(0x80070057) のことだと思うんですが、どの辺が間違ってるんでしょうか?





791 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 00:16:00.83 ]
>>788 >>789
ありがd
とりあえず

bind .w1 <Destroy> ...

のかわりに

bind .w1.b1 <Destroy> ...

にしたら(子供がいないので)一回だけ処理されるので
目的は達成できてますが、動作が疑問だったんで。


792 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 20:45:44.79 ]
>>790
1 W系は文字列がUnicode(UTF-16)
2 dwOutが0だと書き込むメモリ領域も0扱い

package require Ffidl
ffidl::callout AssocQueryString \
{int int pointer-utf16 pointer-utf16 pointer-var int} int \
[ffidl::symbol shlwapi.dll AssocQueryStringW]

set ASSOCF_NOTRUNCATE 32
set ASSOCSTR_EXECUTABLE 2
set dwOut 1000
set pszFile [binary format x$dwOut]

set result [AssocQueryString \
$ASSOCF_NOTRUNCATE \
$ASSOCSTR_EXECUTABLE \
"c:\\sample.txt" \
"open" \
pszFile \
$dwOut]

puts result=$result
puts pszFile=[string trim [encoding convertfrom unicode $pszFile] \x00]

XPだと動くけど、64bit版Vistaだとクラッシュするのお・・・。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<274KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef