⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cplot.tcl

📁 柯老师网站上找到的
💻 TCL
字号:
## cplot -- "cooked" plot#	merge multiple cooked trace files together, eventually#	to produce a final plot:## Usage: cplot package graph-title cfile1 cname1 [cfile2 cname 2] ...## this will take cooked trace files cfile{1,2,...}# and merge them into a combined graph of the type defined in# "package".  for now, package is either xgraph or gnuplot## Sources for gnuplot, as of 10/20/97:# 	gnuplot3.5: ftp://ftp.dartmouth.edu/pub/gnuplot/#	gnuplot3.6beta: ftp://cmpc1.phys.soton.ac.uk/pub#	gnuplot3.6beta-mirror: http://www.nas.nasa.gov/~woo/gnuplot/beta/set labelproc(xgraph) xgraph_labelset labelproc(gnuplot) gnuplot_labelset headerproc(xgraph) xgraph_headerset headerproc(gnuplot) gnuplot_headerset filext(xgraph) xgrset filext(gnuplot) pltset package default; # graphics package to useif { $argc < 4 || [expr $argc & 1] } {	puts stderr "Usage: tclsh cplot graphics-package graph-title cfile1 cname1 \[cfile2 cname2\] ..."	exit 1}proc init {} {	global tmpchan tmpfile	set tmpfile /tmp/[pid].tmp	set tmpchan [open $tmpfile w+]}proc cleanup {} {	global tmpchan tmpfile package filext	seek $tmpchan 0 start	exec cat <@ $tmpchan >@ stdout	close $tmpchan	exec rm -f $tmpfile}proc run {} {	global labelproc headerproc package argv tmpchan	init	set package [lindex $argv 0]	set title [lindex $argv 1]	if { ![info exists labelproc($package)] } {		puts stderr "cplot: invalid output package $package, known packages: [array names labelproc]"		exit 1	}	set ifile 2	set iname 3	$headerproc($package) $tmpchan $title	while {1} {		set fname [lindex $argv $ifile]		set label [lindex $argv $iname]		if { $fname == "" || $label == "" } {			break		}		do_file $fname $label $package $tmpchan		incr ifile 2		incr iname 2	}	cleanup}proc do_file { fname label graphtype tmpchan } {	global labelproc	$labelproc($graphtype) $tmpchan $label $fname}## xgraph-specific stuff#proc xgraph_header { tmpchan title } {        puts $tmpchan "TitleText: $title"        puts $tmpchan "Device: Postscript"	puts $tmpchan "BoundBox: true"	puts $tmpchan "Ticks: true"	puts $tmpchan "Markers: true"	puts $tmpchan "NoLines: true"	puts $tmpchan "XUnitText: time"	puts $tmpchan "YUnitText: sequence/ack number"}proc xgraph_label { tmpchan label fname } {	puts $tmpchan \n\"$label	exec cat $fname >@ $tmpchan}## gnuplot-specific stuff#proc gnuplot_header { tmpchan title } {	puts $tmpchan "set title '$title'"	puts $tmpchan "set xlabel 'time'"	puts $tmpchan "set ylabel 'sequence/ack number'"	puts $tmpchan "set grid"	global gnu_first_time gnu_label_index	set gnu_first_time 1	set gnu_label_index 1}proc gnuplot_label { tmpchan label fname } {	global gnu_first_time gnu_label_index	if { $gnu_first_time } {		puts $tmpchan "plot '$fname' title '$label' w points $gnu_label_index 2"		set gnu_first_time 0	} else {		puts $tmpchan "replot '$fname' title '$label' w points $gnu_label_index 2"	}	incr gnu_label_index}run

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -