批量文件中找出每个文件名相同且序号最大的文件

迷之程序员 2018-04-10 03:30:40
是这样的,有几个文件夹,每一个之中有这样一大批压缩文件,
每个文件都遵循一样的命名规则:name_123.zip
现在要做的就是选中一个文件夹,选出相同name文件中序号最大的文件。
其实就是选出这些文件中每一个的最新版本,做一个全部文件最新版本的集合。
然后删除其余的文件。
关键就是需要对文件名进行操作,选出么一个相同名字中排序号最大的


我的想法是用C+、批处理或是MFC都可以,但具体怎么实现还不知道
现在只是用批处理提取了全部文件的文件名
2018/04/09 09:38 57,647 TapCffexQtGw_SP13_121.zip
2018/04/09 09:38 57,374 TapCffexQtGw_SP13_293.zip
2018/04/09 09:38 57,481 TapCffexQtGw_SP13_485.zip
2018/04/09 09:38 57,522 TapCffexQtGw_SP13_500.zip
2018/04/09 09:38 56,064 TapCffexQtGw_SP13_618.zip
2018/04/09 09:38 185,584 TapDceQtGw_SP13_122.zip
2018/04/09 09:38 185,674 TapDceQtGw_SP13_288.zip
2018/04/09 09:38 185,727 TapDceQtGw_SP13_361.zip
2018/04/09 09:38 185,743 TapDceQtGw_SP13_492.zip
2018/04/09 09:38 185,415 TapDceQtGw_SP13_620.zip
2018/04/09 09:38 55,612 TapIneQtGw_SP13_416.zip
2018/04/09 09:38 55,431 TapIneQtGw_SP13_501.zip
2018/04/09 09:38 54,480 TapIneQtGw_SP13_631.zip
2018/04/09 09:38 54,507 TapIneQtGw_SP13_636.zip
2018/04/09 09:38 84,456 TapMiniQtFront_SP13_248.zip
2018/04/09 09:38 84,937 TapMiniQtFront_SP13_401.zip
2018/04/09 09:38 84,916 TapMiniQtFront_SP13_624.zip
2018/04/09 09:38 84,699 TapMiniQtFront_SP13_729.zip
2018/04/09 09:38 84,415 TapMiniQtFront_SP13_76.zip
2018/04/09 09:38 4,464,424 TapQuoteApi_55.zip
2018/04/09 09:38 4,471,159 TapQuoteApi_56.zip
2018/04/09 09:38 57,855 TapShfeQtGw_SP13_123.zip
2018/04/09 09:38 57,903 TapShfeQtGw_SP13_290.zip
2018/04/09 09:38 57,905 TapShfeQtGw_SP13_294.zip
2018/04/09 09:38 57,993 TapShfeQtGw_SP13_484.zip
2018/04/09 09:38 58,030 TapShfeQtGw_SP13_502.zip
2018/04/09 09:38 56,817 TapShfeQtGw_SP13_619.zip
...全文
1170 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
迷之程序员 2018-04-16
  • 打赏
  • 举报
回复
进展:已经完成啦,通过一天的不懈努力,最终完成了。毕竟是在C#winform 开发的一个工具,所以基本上还是靠自己慢慢写出来的。将文件名提取之后分解成名字和序号,对名字循环,当找到不同名的时候对这一组的序号提取最大值,然后拼接名字和序号完成下载。具体的我发了个文章记录了下来 https://blog.csdn.net/baidu_39486224/article/details/79961024总之谢谢大家
迷之程序员 2018-04-14
  • 打赏
  • 举报
回复
进展:前两天在忙别的事情,现在这个功能要在C# winform里面做了。今天我又做了一些工作:我将所有文件名给了一个string[] AllFiles,然后 现在需要对这个数组进行组合,找出每一种的版本号最大的提取出来。大家写的思路我也在看,我也在思考,有新的建议也请提出来
赵4老师 2018-04-11
  • 打赏
  • 举报
回复
system("dir /b /a-d c:\\*.* >d:\\allfiles.txt"); //读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字 system("dir /b /a-d /s c:\\*.* >d:\\allfilesinsub.txt"); //读文件d:\\allfilesinsub.txt的内容即C:\\下所有文件的名字包含子目录 system("dir /b /ad c:\\*.* >d:\\alldirs.txt"); //读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字 请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。 如果嫌system黑窗口一闪,将system("...")替换为WinExec("cmd /c ...",SW_HIDE); 使用以上思路,将处理文件列表的问题转换为处理文本文件问题。
yiyefangzhou24 2018-04-11
  • 打赏
  • 举报
回复
批处理就能实现了,整个程序,忽略开发周期??
  • 打赏
  • 举报
回复
用 Wps表格或者Excel 做, 1、dir /b > a.csv 2、WPS打开a.csv,分列,用下划线分。 3、对感兴趣列排序 4、拖出脚本 del 文件名 5、新建一个 b.bat文件,复制拖出的脚本 6、运行,OK 可以看看这篇文章 https://blog.csdn.net/goldenhawking/article/details/73095549
  • 打赏
  • 举报
回复
引用 13 楼 baidu_39486224 的回复:
[quote=引用 11 楼 DelphiGuy 的回复:] 批处理就几行的事情还写程序 保存以下文本到一个.bat(name改成你需要的文件名,或者作为命令行参数%1、%2之类的输入): @echo off set MAX_NUM=0 for /f "tokens=2 delims=_." %%i in ('dir /b /-p name_*.zip') do if /I "%MAX_NUM%" lss "%%i" set /a MAX_NUM=%%i 2>nul echo name_%MAX_NUM%.zip set MAX_NUM=
我需要自动提取每种文件名称啊..[/quote] 那只需要把'dir /b /-p name_*.zip'这里的name_*.zip换成%1,然后在命令参数里输入文件名(假设批处理文件名为test):test xxxx_*.zip
赵4老师 2018-04-11
  • 打赏
  • 举报
回复
C:\>set /? 显示、设置或删除 cmd.exe 环境变量。 SET [variable=[string]] variable 指定环境变量名。 string 指定要指派给变量的一系列字符串。 要显示当前环境变量,键入不带参数的 SET。 如果命令扩展被启用,SET 会如下改变: 可仅用一个变量激活 SET 命令,等号或值不显示所有前缀匹配 SET 命令已使用的名称的所有变量的值。例如: SET P 会显示所有以字母 P 打头的变量 如果在当前环境中找不到该变量名称,SET 命令将把 ERRORLEVEL 设置成 1。 SET 命令不允许变量名含有等号。 在 SET 命令中添加了两个新命令行开关: SET /A expression SET /P variable=[promptString] /A 命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式 评估器很简单并以递减的优先权顺序支持下列操作: () - 分组 ! ~ - - 一元运算符 * / % - 算数运算符 + - - 算数运算符 << >> - 逻辑移位 & - 按位“与” ^ - 按位“异” | - 按位“或” = *= /= %= += -= - 赋值 &= ^= |= <<= >>= , - 表达式分隔符 如果您使用任何逻辑或取余操作符, 您需要将表达式字符串用 引号扩起来。在表达式中的任何非数字字符串键作为环境变量 名称,这些环境变量名称的值已在使用前转换成数字。如果指定 了一个环境变量名称,但未在当前环境中定义,那么值将被定为 零。这使您可以使用环境变量值做计算而不用键入那些 % 符号 来得到它们的值。如果 SET /A 在命令脚本外的命令行执行的, 那么它显示该表达式的最后值。该分配的操作符在分配的操作符 左边需要一个环境变量名称。除十六进制有 0x 前缀,八进制 有 0 前缀的,数字值为十进位数字。因此,0x12 与 18 和 022 相同。请注意八进制公式可能很容易搞混: 08 和 09 是无效的数字, 因为 8 和 9 不是有效的八进制位数。 /P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入 行之前,显示指定的 promptString。promptString 可以是空的。 环境变量替换已如下增强: %PATH:str1=str2% 会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。 要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。 "str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的 开始到 str1 剩余部分第一次出现的地方,都一直保持相配。 也可以为扩展名指定子字符串。 %PATH:~10,5% 会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏 移量 10)字符开始的五个字符。如果没有指定长度,则采用默认 值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数, 使用的数字则是环境变量数值长度加上指定的偏移量或长度。 %PATH:~-10% 会提取 PATH 变量的最后十个字符。 %PATH:~0,-2% 会提取 PATH 变量的所有字符,除了最后两个。 终于添加了延迟环境变量扩充的支持。该支持总是按默认值被 停用,但也可以通过 CMD.EXE 的 /V 命令行开关而被启用/停用。 请参阅 CMD /? 考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境 变量扩充是很有用的,而不是执行的时候。以下例子说明直接 变量扩充的问题: set VAR=before if "%VAR%" == "before" ( set VAR=after if "%VAR%" == "after" @echo If you see this, it worked ) 不会显示消息,因为在读到第一个 IF 语句时,BOTH IF 语句中 的 %VAR% 会被代替;原因是: 它包含 IF 的文体,IF 是一个 复合语句。所以,复合语句中的 IF 实际上是在比较 "before" 和 "after",这两者永远不会相等。同样,以下这个例子也不会达到 预期效果: set LIST= for %i in (*) do set LIST=%LIST% %i echo %LIST% 原因是,它不会在目前的目录中建立一个文件列表,而只是将 LIST 变量设成找到的最后一个文件。这也是因为 %LIST% 在 FOR 语句被读取时,只被扩充了一次;而且,那时的 LIST 变量 是空的。因此,我们真正执行的 FOR 循环是: for %i in (*) do set LIST= %i 这个循环继续将 LIST 设成找到的最后一个文件。 延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行 时间扩充环境变量。如果延迟的变量扩充被启用,可以将上面 例子写成以下所示,以达到预期效果: set VAR=before if "%VAR%" == "before" ( set VAR=after if "!VAR!" == "after" @echo If you see this, it worked ) set LIST= for %i in (*) do set LIST=!LIST! %i echo %LIST% 如果命令扩展被启用,有几个动态环境变量可以被扩展,但 不会出现在 SET 显示的变量列表中。每次变量数值被扩展时, 这些变量数值都会被动态计算。如果用户用这些名称中任何 一个定义变量,那个定义会替代下面描述的动态定义: %CD% - 扩展到当前目录字符串。 %DATE% - 用跟 DATE 命令同样的格式扩展到当前日期。 %TIME% - 用跟 TIME 命令同样的格式扩展到当前时间。 %RANDOM% - 扩展到 0 和 32767 之间的任意十进制数字。 %ERRORLEVEL% - 扩展到当前 ERRORLEVEL 数值。 %CMDEXTVERSION% - 扩展到当前命令处理器扩展版本号。 %CMDCMDLINE% - 扩展到调用命令处理器的原始命令行。 C:\>for /? 对一组文件中的每一个文件执行某个特定命令。 FOR %variable IN (set) DO command [command-parameters] %variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。 在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable 而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I. 如果命令扩展被启用,下列额外的 FOR 命令格式会受到 支持: FOR /D %variable IN (set) DO command [command-parameters] 如果集中包含通配符,则指定与目录名匹配,而不与文件 名匹配。 FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters] 检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。如果在 /R 后没有指定目录,则使用当前 目录。如果集仅为一个单点(.)字符,则枚举该目录树。 FOR /L %variable IN (start,step,end) DO command [command-parameters] 该集表示以增量形式从开始到结束的一个数字序列。 因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生 序列 (5 4 3 2 1)。 FOR /F ["options"] %variable IN (file-set) DO command [command-parameters] FOR /F ["options"] %variable IN ("string") DO command [command-parameters] FOR /F ["options"] %variable IN ('command') DO command [command-parameters] 或者,如果有 usebackq 选项: FOR /F ["options"] %variable IN (file-set) DO command [command-parameters] FOR /F ["options"] %variable IN ("string") DO command [command-parameters] FOR /F ["options"] %variable IN ('command') DO command [command-parameters] filenameset 为一个或多个文件名。继续到 filenameset 中的 下一个文件之前,每份文件都已被打开、读取并经过处理。 处理包括读取文件,将其分成一行行的文字,然后将每行 解析成零或更多的符号。然后用已找到的符号字符串变量值 调用 For 循环。以默认方式,/F 通过每个文件的每一行中分开 的第一个空白符号。跳过空白行。您可通过指定可选 "options" 参数替代默认解析操作。这个带引号的字符串包括一个或多个 指定不同解析选项的关键字。这些关键字为: eol=c - 指一个行注释字符的结尾(就一个) skip=n - 指在文件开始时忽略的行数。 delims=xxx - 指分隔符集。这个替换了空格和跳格键的 默认分隔符集。 tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代 的 for 本身。这会导致额外变量名称的分配。m-n 格式为一个范围。通过 nth 符号指定 mth。如果 符号字符串中的最后一个字符星号, 那么额外的变量将在最后一个符号解析之后 分配并接受行的保留文本。 usebackq - 指定新语法已在下类情况中使用: 在作为命令执行一个后引号的字符串并且一个单 引号字符为文字字符串命令并允许在 filenameset 中使用双引号扩起文件名称。 某些范例可能有助: FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k 会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将 每行中的第二个和第三个符号传递给 for 程序体;用逗号和/或 空格定界符号。请注意,这个 for 程序体的语句引用 %i 来 取得第二个符号,引用 %j 来取得第三个符号,引用 %k 来取得第三个符号后的所有剩余符号。对于带有空格的文件 名,您需要用双引号将文件名括起来。为了用这种方式来使 用双引号,您还需要使用 usebackq 选项,否则,双引号会 被理解成是用作定义某个要分析的字符串的。 %i 专门在 for 语句中得到说明,%j 和 %k 是通过 tokens= 选项专门得到说明的。您可以通过 tokens= 一行 指定最多 26 个符号,只要不试图说明一个高于字母 'z' 或 'Z' 的变量。请记住,FOR 变量是单一字母、分大小写和全局的;而且, 同时不能有 52 个以上都在使用中。 您还可以在相邻字符串上使用 FOR /F 分析逻辑;方法是, 用单引号将括号之间的 filenameset 括起来。这样,该字符 串会被当作一个文件中的一个单一输入行。 最后,您可以用 FOR /F 命令来分析命令的输出。方法是,将 括号之间的 filenameset 变成一个反括字符串。该字符串会 被当作命令行,传递到一个子 CMD.EXE,其输出会被抓进 内存,并被当作文件分析。因此,以下例子: FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i 会枚举当前环境中的环境变量名称。 另外,FOR 变量参照的替换已被增强。您现在可以使用下列 选项语法: ~I - 删除任何引号("),扩展 %I %~fI - 将 %I 扩展到一个完全合格的路径名 %~dI - 仅将 %I 扩展到一个驱动器号 %~pI - 仅将 %I 扩展到一个路径 %~nI - 仅将 %I 扩展到一个文件名 %~xI - 仅将 %I 扩展到一个文件扩展名 %~sI - 扩展的路径只含有短名 %~aI - 将 %I 扩展到文件的文件属性 %~tI - 将 %I 扩展到文件的日期/时间 %~zI - 将 %I 扩展到文件的大小 %~$PATH:I - 查找列在路径环境变量的目录,并将 %I 扩展 到找到的第一个完全合格的名称。如果环境变量名 未被定义,或者没有找到文件,此组合键会扩展到 空字符串 可以组合修饰符来得到多重结果: %~dpI - 仅将 %I 扩展到一个驱动器号和路径 %~nxI - 仅将 %I 扩展到一个文件名和扩展名 %~fsI - 仅将 %I 扩展到一个带有短名的完整路径名 %~dp$PATH:I - 搜索列在路径环境变量的目录,并将 %I 扩展 到找到的第一个驱动器号和路径。 %~ftzaI - 将 %I 扩展到类似输出线路的 DIR 在以上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法 用一个有效的 FOR 变量名终止。选取类似 %I 的大写变量名 比较易读,而且避免与不分大小写的组合键混淆。
迷之程序员 2018-04-11
  • 打赏
  • 举报
回复
小弟菜鸟,具体的代码实现还是不会..
迷之程序员 2018-04-11
  • 打赏
  • 举报
回复
引用 11 楼 DelphiGuy 的回复:
批处理就几行的事情还写程序 保存以下文本到一个.bat(name改成你需要的文件名,或者作为命令行参数%1、%2之类的输入): @echo off set MAX_NUM=0 for /f "tokens=2 delims=_." %%i in ('dir /b /-p name_*.zip') do if /I "%MAX_NUM%" lss "%%i" set /a MAX_NUM=%%i 2>nul echo name_%MAX_NUM%.zip set MAX_NUM=
我需要自动提取每种文件名称啊..
迷之程序员 2018-04-11
  • 打赏
  • 举报
回复
引用 8 楼 yiyefangzhou24 的回复:
批处理就能实现了,整个程序,忽略开发周期??
我也想到了用批处理,怎么弄?我现在只会把文件名排个序
  • 打赏
  • 举报
回复
批处理就几行的事情还写程序 保存以下文本到一个.bat(name改成你需要的文件名,或者作为命令行参数%1、%2之类的输入): @echo off set MAX_NUM=0 for /f "tokens=2 delims=_." %%i in ('dir /b /-p name_*.zip') do if /I "%MAX_NUM%" lss "%%i" set /a MAX_NUM=%%i 2>nul echo name_%MAX_NUM%.zip set MAX_NUM=
AlbertS 2018-04-11
  • 打赏
  • 举报
回复
比如先找到 TapCffexQtGw_SP13_121.zip就认为他是最大的,提取出最后的数字, 然后遍历剩下的文件,名字相同,如果数字有更大的就文件就删除当前的,否则删除新的,如果名字不同就把不同名字的文件作为新文件数字数字的最大的,继续遍历 这样假设一共有N种文件,则只需要遍历一次,但是需要花费O(N)的空间
自信男孩 2018-04-10
  • 打赏
  • 举报
回复
引用 5 楼 baidu_39486224 的回复:
[quote=引用 3 楼 cfjtaishan 的回复:] 按照文件名排序,或者通过遍历文件名列表得到字符串最大的。 "123"小于"132", 可以使用strcmp比较。
不是全部之中最大的,而是“每一种”找出最大的[/quote] 那可以分别找出有几类文件,比如通过比较_前的字符串,可以确定有多少类文件。然后再通过两次比较,第一次比较是找到所属的类(strncmp),第二次比较是比较该类的文件中最大的。
wallesyoyo 2018-04-10
  • 打赏
  • 举报
回复
这个是Python实现的代码。


import sys, os, shutil

if (len(sys.argv) != 3):
    print ("USAGE:\n\t%s + <in dir> + <out dir>\n" % sys.argv[0])
    exit(-1)

indir = sys.argv[1]
outdir = sys.argv[2]

if not os.path.exists(indir):
    print ("ERROR: %s No such directory!\n" % indir)
    exit(-1)

if not os.path.exists(outdir):
    os.mkdir(outdir)

d = {}

for fn in os.listdir(indir):
    name, ext = os.path.splitext(fn)
    if ext == ".zip":
        ns = name.split("_")
        name = ns[0]
        for n in ns[1:-1]:
            name += "_%s" % n
        num = int(ns[-1])
        
        if name in d:
            if d[name] < num:
                d[name] = num
        else:
            d[name] = num

for k,v in d.items():
    fn = k + "_" + str(v) + ".zip"
    sp = os.path.join(indir, fn)
    dp = os.path.join(outdir, fn)
    shutil.copyfile(sp, dp)
    print (dp)
    
运行的话,安装python3,在命令行上敲下面的命令就行。

python tt.py <indir> <outdir>
tt.py 是python代码文件名,indir是输入的目录,outdir是输出目录,程序就是把indir中符合条件的文件拷贝到outdir中。 像这种文件处理的操作,用python做起来真的特别简单,代码也是通俗易懂,你可以尝试学习一下。
迷之程序员 2018-04-10
  • 打赏
  • 举报
回复
引用 3 楼 cfjtaishan 的回复:
按照文件名排序,或者通过遍历文件名列表得到字符串最大的。 "123"小于"132", 可以使用strcmp比较。
不是全部之中最大的,而是“每一种”找出最大的
迷之程序员 2018-04-10
  • 打赏
  • 举报
回复
引用 2 楼 wanggui2015 的回复:
这种需求用脚本语言做不是分分钟就搞定了,Python了解一下。
这...刚弄懂一些批处理,脚本从没接触过...
自信男孩 2018-04-10
  • 打赏
  • 举报
回复
按照文件名排序,或者通过遍历文件名列表得到字符串最大的。 "123"小于"132", 可以使用strcmp比较。
wallesyoyo 2018-04-10
  • 打赏
  • 举报
回复
这种需求用脚本语言做不是分分钟就搞定了,Python了解一下。
paschen 版主 2018-04-10
  • 打赏
  • 举报
回复
软件名称:优影文件整理 1。5版 软件功能简介: 本软件主要用于大量音乐或是电影类文件批量整理,同时也可用于电脑内的重复文件清除。 图片文件添加水印,电子书(TXT格式)添加水印,音乐文件(MP3格式)添加水印等。 为文件号进行加编号操作,可自定义编号起始数值,可将文件编号导入到优影手机下载系统作为优影序号使用。 详细说明 一、快分到文件夹 说明:下载店经常会收售大量的音乐文件和MTV文件,通常音乐文件都是按歌手分文件夹,每一位歌手一个文件夹,这样的整理一目了然,是一种良好的整理习惯,然而歌手有上千位,就需要上千上文件夹,如果一个一个手工方式来划分将是一缓慢的过程。此程序可以方便的自动将某位歌手歌曲分类到相应的文件夹下,全自动进行,比手工操作的速度快上百倍。 操作前准备:新歌在专业网站下载得到,文件通常都带有歌手名。例如:“梅艳芳-女人花.mp3”、“你对我的好-孙楠.mp3”只有这样的歌曲才能被整理到,先手工建立了“梅艳芳”、“孙楠”文件夹,按下面步骤即可操作。为了提高速度歌手文件夹与新增的音乐放在同一个磁盘分区。 操作步骤 步骤一 指定歌手文件夹的目录(所有歌手文件夹都请放在同一个文件夹下,这样才方便操作,如果那位歌手没有文件夹需要手工添加,建立该歌手名的文件夹。) 步骤二 指定新歌存放目录 步骤三 点击[开始整理]按钮。即开始自动完成。 二、相似文件去重 说明: 重复文件是大量数据收集一个常见问题。 重复文件有两种: 一是文件完全重复,数据指纹完全一样,可能文件不一同。这种文件很好处理,优影下载系统,在数据采集时会自动整理出来,并提示删除。 二是文件相同或相似文件数据指纹不同,这样的文件处理就很复杂,本程序就是来处理这种文件的。 小知识:什么是数据指纹?数据指纹就是一个文件内容的特征,理论上是没有重复的,出现重复就只有一种可能,就是文件复制前、后的两个文件,数据指纹会相同。数据指纹与文件没有关系。 操作前准备: 无需要准备 操作步骤: 数据扫描 在主窗口点击“一、扫描”钮,对文件进行扫描 几个与扫描相关的选项 1、一次最好只处理一个文件格式,如果没有的格式可以自行添加,如果为空就会处理所有文件格式(不推荐) 2、可以开启数据指纹识别,直接删除重复文件(这个功能优影手机下载系统也有,是一样的) 3、可以开启自动建立文件夹选项,当一位歌手音乐超过了多少首就自动建立文件。 扫描完成后几个操作 1、重复文件删除(数据指纹相同):内容重复文件会显示表格,在表格点右键会弹出[删除菜单],可以批量删除或一个一个文件删除重复的文件。 2、高频字屏蔽:高频字通常可以认为是歌手名(周杰伦、刘德华等)也可能是音乐类型名称(钢琴、二胡、轻音乐等),这些字屏蔽后会加快后面手工删除的速度。自动勾选屏蔽关键字不太准确,请手工一个个指定比较适合,因为有些歌名也会多次出现,这些不要屏蔽,要清除的就是这些文件。 扫描完成后就可以进行文件相似文件删除操作 相似文件删除:有手动模式和自动模式,手动模式极为可靠但是速度慢,自动模式速度快但是可靠性差,两种方式配合使用。对于原始的数据,先用手动模式进行删除。新增文件内容用自动模式进行删除,是一种极为合理的方式。 1、手动模式删除:主要使用快捷键操作 快捷键表:在删除操作使用快捷键可以很方便的进行快速度操作 开始分析 = 回车键 选择文件 = 数字键 反向选择文件 = 减号键“-” 上一个分析 = PageUp键 下一个分析 = 回车键 或 PageDown键 播放 = 加号键“+” 或 “P键” 删除 = del键 加入高频字=F11或 F12键 自定义高频字=F9或 Insert键 2、自动删除模式注意事项:自动删除极为快速,因为是自动的会有很多误删除的文件,不是很可靠,为了运行可靠,需要设置后再运行。 (1)一定要设置保护目录,在保护目录文件不会被删除。在实际应用可以对原有数据先进行手动模式删除,然后对这个文件夹设置为保护目录,所有新歌放在置在另一个目录,这样在自动删除时会只删除新歌文件,而不会删除原有数据。 (2)选备份删除文件,这些文件是本软件自动删除的文件,有可能会删除一些不该删除的文件,这里查看后,再真正删除比较保险。 三、txt文件批量添加水印 说明:用于批量添加 电子书 txt 格式的水印 以及去除水印 操作前准备:无需准备 操作步骤:设置好要添加的内容,可以是TXT首部和尾部分别添加,添加的内容自定义,同时进行了去除操作,一键完成。 四、图片文件批量添加水印 说明:用于批量添加 图片 bmp gif jpg tjff png 格式的水印,对GIF动画文件添加水印后动画会丢失,对于PNG文件透明层也有可能会丢失。加水印后图片尺寸不会改变。 操作前准备:无需准备 操作步骤:设置好要添加的字符,可以选择图片上要加字符的位置 ,一键完成。 五、批量修改 音乐 mp3 格式的ID3v1v2信息 说明:用于批量修改 音乐 mp3 格式的ID3v1v2信息 操作前准备:如果音乐文件已经在 优影下载系统 已经采集并且打印了歌本,那么请不修改ID3v1v2信息,这样会造成同一个文件出再两个序号,而且打印的歌本有可能作费。 操作步骤:设置好要内容,一键完成。 六、文件加编号 以及 将文件编号导入到优影作为序号使用 说明: 对文件进行编号,编号可放置在文件的前部或后部,自定义编号起始号;将已编号的文件导入到优影下载系统作为序号(优影下载系统默认只可以用序号进行搜索,而优影序号是自动生成,无法人工设置起始号),实现人工设置起始序号。 (1)文件文件夹加编号(文件夹编号是新功能) 操作前准备:要编号的文件最好放在同一层目录,如果文件有原编号,最好先去掉;不必要字符也可以分多次在文件删除; 选择文件格式: 本软件支持所有文件格式,下拉列表没有的格式可以自定义,为空就是会为所有文件分配编号(不推荐,一次最好只操作一种文件格式) 编号前辍及间隔符:例如 :前辍是 “A”,生成编号是“1234” , 文件“千里之外.MP3”生编号后文件就是“A1234千里之外.MP3”。如果间隔符为“-” 生编号后文件就是“A1234-千里之外.MP3” 字符清除及替换:输入要清除的字符,可是一个字,也可以是一个词,如果“替换已清除字符”框没有内容,那么就是清除了。例如:“要清除字符”框写入“A”,会将“AA千里之外.MP3”文件改成“A千里之外.MP3”。要去掉第二个A需要再扫描一次,多个字符如此类推;如果“替换已清除字符”框输入“B”就会将文件改成“BB千里之外.MP3”。 编号前后:可以设置成“1234-千里之外.MP3”或是““千里之外-1234.MP3”样式;在进行字符清除替换时,最好选择“不进行编号”。 去除原有编号:设定去除前编号或是后编辑,如果前后都有则需要分两次去除。如果有编号的前辍的,要先用“字符清除”清除了前辍,再清除前或后编号。 操作步骤:所有设定可以组合设置,也可以一次设置一项,点击“文件扫描编号”键,一键完成。 (2)将编号导入到优影下载系统,成为优影的序号 为了说明方便,我们将文件上的号称为编号,称优影下载系统的号为序号 操作前准备:所有文件都已有编号,而且编号不能重复,编号不能加前辍,如果有前辍请先去除。 说明:因为优影下载系统不充许出现重复序号,所以有重复的编号文件,只会导入一个文件到优影。进行导入时原优影数据库内所有文件信息会被删除,优影原来序号会失效,如果用优影采集了大量文件而且已经打印成歌本,请不进行导入操作。 操作步骤: 步骤一、点击“文件扫描入本地数据库”钮,将所有文件先扫描一次,文件信息会存放在本软件数据库,如果文件在多个盘符上,可分多次扫描。根据编号情况,选择取前或是取后编号,也可用自动方式。 步骤二、点击“导入到优影库”钮,这时会要求指定优影下载系统的数据库,优影数据库默认在 优影软件的安装目录下的 udata 文件的 udata.db文件是优影的数据库文件。一键完成。 (3)电影,连续剧零散文件自动建立文件夹 很多下载店用户电影用连续都在一个文件夹下,这样文件整理方式极为不方便,为了便于在优影下载系统下载和计费,需要每一部电影和连续剧建立一个文件夹,方便下载。 七、文件打印目录生成(增加图片打印册生成 和 电影连续剧的彩页生成) 所有操作都要指定相应文件夹,文件夹下层多层文件夹软件会自动处理,生成的htm文件在本软件的安装目录,可以在IE浏览器直接打印,在打印前先通过文件打印预览查看文件,如果有示显示部分就需要调整页边距后所有内容就会正常显示及打印。 要注意事项: 1、如果有文件编号要求,当然先用文件编号工具生成编号后再打印。编号提取有选项,请注意查看。 2、文件编号提取有多个选项,可以尝试,这里不会修改文件,只是管理打印出来的样式。例如“千里之外-1234.mp3”提取编号会在打印时显示为 “1234-千里之外-1234.mp3”或是“1234-千里之外.mp3” 。这都是看个人喜好。 3、电影带图片打印要符合以下方法,才能自动取出来电影图片和内容提要:每一部电影要有一个单独的文件夹,文件夹名称就是电影名称,这个文件除了放置电影主文件(3gp,mp4,avi等格式文件),还需要放置一张这部电影海报图片(可以是jpg,bmp,gif格式)和内容提要文件(是txt格式),符合这样的情况就能生成出来漂亮的电影本。 4、如果选择了“图片高度自适应”那么打印出来图片就不会变形。 5、关于“网络获取电影的图片和内容” 这是付费注册用户功能,要求第一部电影一个文件夹,然后本程序会自动在优影服务器寻找电影的海报图片和内容提要文件,并且自动下载到这部电影的文件。有些电影可能会找不到,就需要手工添加,电影的海报图片(jpg,bmp,gif格式)和内容提要文件(txt文件)到本电影的文件。为了提高成功率电影文件夹名称一定要规范,除了电影名字外不要有其它的字,这样有利获取的成功率。 常用页面设置: 默认A4纸张 上、下、左、右页边距都是19。5,如果边距有变化,要相调高度和宽度 一页10部电影 两列 高度194 宽322 一页5部电影 一列 高度194 宽650 一页3部电影 一列 高度323 宽650 因为所有参数可调,本软件适应任意大小纸张,生成好了,在打印预览看到满意了再打印。 八、注册说明 本软件用注册码方式注册,注册时要联网才能注册成功,一个注册码在注册后就会与本机的硬件绑定 (同时绑定 cpu 主板 网卡),在其它电脑上此注册码会无效。每个注册码都有一次换硬件的机会,也就是说注册后更换了cpu 主板 网卡,还可以注册一次。同一台电脑没有换硬件,多次注册也只算一次。重装系统,换硬盘等,对注册码都没有影响。 注册码购买联系: 官方主页 http://www.dh36.com 手机 13085201168 QQ:274452956 张伟斌
-------------------------------- DotNetTextBox V6.0.x 商业版更新历史 -------------------------------- 2016/10/10 Version 6.0.10 For VS2015 特别声明:由于联系不上原作者,此版本为自已在修复老项目时,顺带修复了该组件的部份错误. 为了方便维护老项目的网友们,故此发布修正的版本(更新版本号的目的仅为方便标识不同版本).此源码仅供自行学习研究使用,本人不承担由此产生的任何法律后果 请原作者与我联系,以方便我将此源代码交回其合并至统一的代码源,必免版本混乱. 如原作者认为侵权,则请提醒我及时删除我上传的源码(其它网友自行上传的与我无关) csdn.com发布地址:http://download.csdn.net/detail/egman/9630141 github发布地址:https://github.com/egman77/DotNetTextBox (保持最新) 我的联系邮箱;egman@163.com Updates: 1)修正当插入Word文件,如果内容为空,没有任何提示且上传菜单(但选定的文件已消失)仍然存在的问题。 更改为: 当文件内容为空时,服务端给出"文件内容为空"的提示,并关闭上传菜单。 2)修正当插入Word文件,未选定文件而直接点击导入编辑时,没有任何提示且上传菜单仍然存在的问题。 更改为: 当未选择上传文件时,浏览器端给出"未选择任何文件"的提示,并保留上传菜单。 (服务器端保留仍提示"未选择任何文件"的功能,但正常情况下,不会显示此提示。) 2016/9/14 Version 6.0.9 For VS2015 特别声明:由于联系不上原作者,此版本为自已在修复老项目时,顺带修复了该组件的部份错误. 为了方便维护老项目的网友们,故此发布修正的版本(更新版本号的目的仅为方便标识不同版本).此源码仅供自行学习研究使用,本人不承担由此产生的任何法律后果 请原作者与我联系,以方便我将此源代码交回其合并至统一的代码源,必免版本混乱. 如原作者认为侵权,则请提醒我及时删除我上传的源码(在www.csdn.net发布)(其它网友自行上传的与我无关) csdn.com发布地址:http://download.csdn.net/detail/egman/9630141 github发布地址:https://github.com/egman77/DotNetTextBox (保持最新) 我的联系邮箱;egman@163.com Updates: 1)修正在VS2010以上时,无法正确显示控件的问题。 2)修正设置With属性 值后缀为%时,运行出错问题。 3)修改默认Framework从V2.0提升到V3.5 4)修改默认支持AJAX (原来ie11以上运行时,会导致页面失去响应) 5)源代码解决方案简化,支持vs2013以上版本打开,项目默认支持ajax 2009/06/23 Version 6.0.8 For VS2005/2008 Updates: 1)去掉现在基本没法使用的插入EXCEL表格功能,改为无组件的导入EXCEL文档功能(测试,导入excel文档必须符合数据库格式,否则导入数据将不全)。 2)更新编辑器的部分文字资源。 3)修正4号与5号字体大小一样的BUG! 2009/06/15 Version 6.0.7 For VS2005/2008 Updates: 1)修正word导入功能如果选择了保存word文档到服务器,那么下次相同文件将不能再次导入的BUG! 2009/06/02 Version 6.0.6 For VS2005/2008 Updates: 1)修正了6.0.5版本增加功能后出现上传后出错的严重BUG。 2009/05/23 Version 6.0.5 For VS2005/2008 Updates: 1)修正了上传远程图片文件时可能出现404的错误。 2)修正插入部分远程URL图片时可能出现无法显示的错误。 3)修正FireFox浏览器下弹出窗口自适应大小功能不正常的BUG。 4)改进了多文件上传后自动选择添加到上传列表的文件。 5)改进了如找不到对应语言文件则使用默认语言的功能。 2009/05/15 Version 6.0.4 For VS2005/2008 Updates: 1)修正IE8非兼容模式下的部分功能及页面不可用的BUG! 2)修改MSN在线状态检测地址为官方地址. 3)修改ICQ在线状态检测地址为官方地址. 2009/05/11 Version 6.0.3 For VS2005/2008 Updates: 1)修正了IE5.5和IE6.0浏览器下上传弹出窗口显示不完全的BUG! 2)修正打开上传窗口时会弹出参数无效的BUG! 3)增加了在IE8浏览器下控件显示不正确的解决办法(更新到faq.htm页面)! 2009/03/23 Version 6.0.2 For VS2005/2008 Updates: 1)修正多文件上传的严重BUG! 2)优化了多文件上传的性能! 3)优化了多文件上传时的一些细节! 2009/02/14 Version 6.0.1 For VS2005/2008 Updates: 1)修正使用vs2008项目文件打开默认项目时出现不能通过编译的BUG! 2)修正AjaxSupport目录下部分源文件未与最新版本同步更新! 3)修正插入特殊字符有三个特殊字符插入后变为?号的BUG! 4)修正插入Flash的时候无法使用绝对全路径的BUG! 5)修正自动保存的图片没法加入水印的问题。 6)修正自动保存图片功能开启后,内容带有视频内容提交会出错的BUG。 7)修正自动保存图片功能会对本地域名的图片也会重新保存一次的BUG。 8)修正获取远程页面功能在获取部分页面时乱码的BUG! 9)增加批量上传文件的功能,同时优化了所有模块的上传文件功能。 10)所有弹出的模态窗口现在可根据内容自动调整高度及宽度,杜绝旧版本在一些浏览器下显示窗口内容不完全的BUG。 11)导入Word功能升级到V2.0,修正导入后有些样式导入不完全的问题,同时优化了导入word文档时的性能! 12)更新了控件的部分语言资源文件。 13)更新控件可视化配置工具至1.0.3。 2008/10/27 Version 5.0.9 For VS2005/2008 Updates: 1)修正重命名功能文件结尾带.造成的出错问题! 2)修正字号大小显示外观1号最小,7号最大的BUG! 3)修正firefox下与jquery不兼容问题! 4)修正firefox下脚本的一些问题! 5)修正firefox3.0以上版本浏览控件界面显示不正确的问题! 2008/10/23 Version 5.0.8 For VS2005/2008 Updates: 1)增加了上传功能重命名文件的安全字符过滤! 2)修正上传功能存在的一个安全问题!(重要更新)! 3)修正GIF图像添加文字水印无法自定义大小的BUG! 4)修正GIf图像生成缩略图质量较低的BUG! 2008/10/20 Version 5.0.7 For VS2005/2008 Updates: 1)修正每次新建文件夹默认目录名相同导致的问题,现在新建文件夹的默认目录名以newFolder年-月-日-时分秒来命名,杜绝重名的情况出现。 2)修正文件重命名功能如果文件是1.jpg.jpg这样形式的话,重命名的时候只会出现1而不是1.jpg的BUG! 3)修正选择字号大小功能出现掉失HTML格式的BUG。 4)修正不能对单帧GIF图片添加水印的问题,但GIF动画暂时还不支持添加水印! 5)重写及优化了控件html代码转xhtml代码的JS方法,现在即时转换XHTML的性能更佳,也修正了原来开启xhtml转换会破坏代码的BUG!(此功能测试稳定后会改为默认功能,即控件默认状态下输出的就是符合XHTML标准的代码,现在暂时请用xhtml属性来开启转换) 2008/6/23 Version 5.0.6 For VS2005/2008 Updates: 1)修正控件Length属性统计的字符数包含HTML字符的BUG,现在Length属性仅统计纯文本的字符数! 2)修正开启自动保存图片到本地的功能后网络图片过多的时候出现保存图片地址重复的BUG! 3)修正控件段落格式及选择字体的下拉列表功能会使页面其它Select选择框消失的BUG! 4)修正去掉下拉列表功能后,控件无法正常使用的BUG! 5)修正商业版采用Asp.Net Ajax支持方式编译后出现的一些BUG! 6)修正FIREFOX2.0下控件下拉列表框出现位置不正确的BUG! 7)增加强大的代码格式清理功能!菜单功能配置值为:formatstripper! 8)增加getImagesPathID属性,当属性不为空时,将在插入图片到编辑器的同时将图片地址即时插入属性指定的页面ID! 9)增加自动及手动内容分页的强大功能,通过getAutoPage(自动分页)及getManualPage(手动分页)属性获取分页内容! 10)完善及修正了部分帮助文档及新增内容分页演示实例! 11)修正及更新控件可视化配置工具(版本号1.0.2),增加了新版本出现的新功能添加(代码清理及手动分页功能及修正生成上传配置文件的错误)! 2008/5/20 Version 5.0.5 For VS2005/2008 Updates: 1)修正去掉代码状态功能后出现其它状态切换图标显示不正确的BUG! 2)修正上传图片功能在修改图片的时候切换到水印控制会出现脚本错误的BUG! 3)修正上传媒体文件功能插入FLV时调整播放器高度及宽度失效的BUG! 4)修正控件自带的FLV播放器播放某些视频时画面尺寸不按比例的BUG! 5)修正上传媒体文件功能FLV不能正确显示文件图标的BUG! 6)增加AjaxSupport目录,使用此目录的文件覆盖原版同名文件后重新编译即可解决在Asp.Net Ajax UpdatePanel下工作不正常的BUG!(不需要使用asp.net ajax的用户无需覆盖此目录的文件) 7)增加asp.net ajax的演示例子(AjaxSupport/DotNetTextBoxWebSite/下) 8)FLV播放器增加全屏播放的功能! 9)优化了控件核心的部分代码! 2008/5/12 Version 5.0.4 For VS2005/2008 Updates: 1)修正XHTML1.0定义下的页面无法显示发光字的BUG! 2)修正在带有文目录的网站路径下使用控件会出现找不到路径的BUG! 3)修正控件上传目录初始设置不支持文目录的BUG! 4)修正当三级或以上级别目录调用控件时图片相对路径转换不正确的BUG! 5)增加提取编辑器内容FLASH及FLV播放地址的功能,与提取图片地址使用方法相同(getflvurl和getflashurl属性)! 6)优化了控件上传页面的部分JS脚本! 2008/4/28 Version 5.0.3 For VS2005/2008 Updates: 1)修正二级目录调用控件时自动保存保存远程图片功能出错的BUG! 2)修正进行某些操作之后Undo/Redo失效的BUG! 3)修正采用BR换行模式后出现列表项功能使用不正常的BUG! 4)修正DIV弹出窗口在浏览器底部无法自动向上调整的BUG! 5)修正上传文件、上传模板及上传媒体文件功能文件无法删除的BUG! 6)调整了控件弹出窗口的方式,部分功能的模式窗口转换为Div+CSS的窗口! 7)调整pathtype属性默认值为AbsoluteFull(绝对全路径)! 8)增加对VS2008的支持,使用VS2008的用户请使用DotNetTextBox2008.sln打开项目,VS2005的用户则使用DotNetTextBox2005.sln打开项目(VS2008下控件的设计时显示尚不完美,以后版本将会尽快完善)! 2008/3/25 Version 5.0.2 Updates: 1)修正扩展编辑框功能不能无限增加的BUG! 2)修正代码状态下空格不能自动换行的BUG! 3)修正IE浏览器下特殊格式的闪烁特效无效的BUG,现在IE浏览器下闪烁特效用发光字体特效代替! 4)修正二级以上目录调用控件时插入文件的路径转换无效的BUG 5)完善了水印控制的功能,文字水印支持更换字体及颜色! 6)优化了上传功能返回上层目录的速度! 7)增加强大的可视化菜单配置及上传配置的生成工具,方便用户自行生成控件的相关配置文件(测试)! 2008/3/02 Version 5.0.1 Updates: 1)修正代码状态下按回车换行过大的BUG! 2)改良了编辑器回车换行的方式,旧版本按回车后以段落换行(

)的方式现在已更改为
换行,好处是按回车换行后行与行的间距不会过大了(可用新增的NewLineMode属性设置为P恢复为段落换行)! 3)改良了代码状态下编辑框不会自动换行而导致不能方便查看代码的问题,现在代码状态下能自动换行! 4)新增GetImagesUrl属性,可以通过该属性获取控件提交内容里所有图片的URL地址(Webeditor1.GetImagesUrl[图片序号].ToString()),得到的图片地址将可用于首页新闻的图片显示或幻灯片显示。 2008/2/28 Version 5.0.0 Updates: 1)全新的可拖曳菜单工具栏,让每个使用者可视化构建自己的个性化在线编辑器! 2)更强大的Word文档导入编辑器功能,无需特殊的服务器权限或安装客户端组件,只要拥有最基本的ASP.NET读写文件权限即可实现导入Word文档,并且还支持最新的DOCX文档格式! 3)更细致的工具栏区域划分! 4)全新的可隐藏菜单工具栏配置! 5)更强大的的XHTML代码转换功能,支持即时的XHTML代码转换! 6)更多功能的细致化修正及改良! ------------------------------ http://www.aspxcn.com.cn
Updates: 1)增加防止COOKIE欺骗攻击的加密KEY属性设置,编辑器用到的COOKIE都将会进行加密。 2)更新编辑器帮助文件。 3)文字水印调整为只添加到图像宽高>100像素的图片上面,并且调整编辑器默认配置添加的是图片水印! 2010/04/02 Version 6.1.6 For VS2005/2008 Updates: 1)针对IIS6.0文件解析高危漏洞进行修正。 2)上传功能的一些优化。 3)文件夹重命名的一些改进。 2010/03/08 Version 6.1.5 For VS2005/2008 Updates: 1)修正了一个安全方面的BUG。 2)修正保存远程图片到本地功能的保存路径问题。 3)修正保存远和图片到本地功能在IE6及IE7的提交BUG。 4)修正上传图片界面对齐方式不能生效的BUG! 2010/01/15 Version 6.1.4 For VS2005/2008 Updates: 1)加入保存远程图片到本地的功能图标到菜单栏,配置代码为remoteupload。 2)修正FireFox下插入WMA等音频文件不能播放的BUG. 3)修正关闭图像预览后可能出现的BUG. 4)修正保存图片到本地的一些BUG. 5)更新配置器,增加保存远程图片到本地功能的配置. 2009/12/10 Version 6.1.3 For VS2005/2008 Updates: 1)修正了firefox浏览器下编辑器宽度设置为100%会出错的BUG。 2)优化了图片水印功能,图片水印可以4:1为比例自适应图片。 3)增加水印调整功能的左上,左下,右上,右下角的位置(默认右下)。 4)增加图片水印是否半透明的选项。 2009/11/25 Version 6.1.2 For VS2005/2008 Updates: 1)修正插入视频的地址是mms、rtsp的话,路径就不对的BUG。 2)优化了上传成功后的处理代码。 3)改进了插入表情图标的功能(增加了多组表情,并且鼠标经过表情后可自动放大表情)。 4)优化了编辑器的整体结构。 2009/09/30 Version 6.1.1 For VS2005/2008 Updates: 1)修正上传管理删除文件夹及重命名文件夹导致Session失效的BUG。 2)改善了新建文件夹的方式,按取消按键后文件夹将不会被新建。 3)重新用回Cookie方式储存参数,并且加强COOKIE的安全性。(因为session在操作删除目录后会掉失) 2009/08/07 Version 6.1.0 For VS2005/2008 Updates: 1)改用Session代替部分Cookie储存上传功能所用到的配置数据,以便让编辑器上传更加安全。 2)修正一个文件格式上传时存在的安全性问题。 3)上传页面去掉所有input隐藏属性储存参数,改用ViewState储存,并加入ViewState的防改措施。 2009/07/05 Version 6.0.9 For VS2005/2008 Updates: 1)修正插入表格后在表格单元格插入内容会插到另一个单元格的BUG。 2)控件可视化配置工具的功能显示插入excel表格改为导入Excel表格。 2009/06/23 Version 6.0.8 For VS2005/2008 Updates: 1)去掉现在基本没法使用的插入EXCEL表格功能,改为无组件的导入EXCEL文档功能(测试,导入excel文档必须符合数据库格式,否则导入数据将不全)。 2)更新编辑器的部分文字资源。 3)修正4号与5号字体大小一样的BUG! 2009/06/15 Version 6.0.7 For VS2005/2008 Updates: 1)修正word导入功能如果选择了保存word文档到服务器,那么下次相同文件将不能再次导入的BUG! 2009/06/02 Version 6.0.6 For VS2005/2008 Updates: 1)修正了6.0.5版本增加功能后出现上传后出错的严重BUG。 2009/05/23 Version 6.0.5 For VS2005/2008 Updates: 1)修正了上传远程图片文件时可能出现404的错误。 2)修正插入部分远程URL图片时可能出现无法显示的错误。 3)修正FireFox浏览器下弹出窗口自适应大小功能不正常的BUG。 4)改进了多文件上传后自动选择添加到上传列表的文件。 5)改进了如找不到对应语言文件则使用默认语言的功能。 2009/05/15 Version 6.0.4 For VS2005/2008 Updates:
C#编程经验技巧宝典源代码,目录如下:第1章 开发环境 11.1 Visual Studio开发环境安装与配置 20001 安装Visual Studio 2005开发环境须知 20002 配置合适的Visual Studio 2005开发环境 20003 设置程序代码行序号 30004 开发环境全屏显示 30005 设置窗口的自动隐藏功能 30006 根据需要创建所需解决方案 40007 如何使用“验证的目标架构”功能 41.2 Visual Studio开发环境的使用 40008 为程序设置版本和帮助信息 40009 设置Windows应用程序启动窗体 50010 设置Web应用程序起始页 50011 如何设置程序的出错窗口 50012 如何进行程序调试 60013 如何结束不能正常运行的程序 60014 如何锁定窗体的控件 60015 统一窗体控件的字体设置 70016 通过“格式”菜单布局窗体 70017 起始页的“Visual Studio开发人员新闻” 71.3 MSDN帮助的使用 80018 有效利用Visual Studio 2005附带程序 80019 有效使用MSDN帮助 90020 如何设置MSDN帮助 91.4 其他 100021 如何添加项目引用 100022 如何添加Web引用 100023 如何添加引用第3方控件 110024 如何生成DLL文件 110025 如何使用不安全代码 11第2章 语言基础 132.1 注释 140026 如何对代码进行注释 140027 #region、#endregion关键字的使用技巧 140028 “///”符号的使用技巧 140029 使用注释取消程序语句的执行 152.2 语句 150030 跳转语句GOTO的使用 150031 Continue语句的使用 160032 Break语句的使用 160033 Return语句的使用 170034 如何实现无限循环 170035 巧用foreach语句控制控件 180036 有效使用switch case语句 182.3 运算符 190037 如何使用引号赋值 190038 巧用“^=”运算符 190039 巧用位移运算符 200040 使用条件运算符 200041 巧用分隔符 200042 如何处理转义字符 210043 “;”结束符问题 210044 如何使用“??”操作符 222.4 表达式与关键词 220045 正确使用“&&”和“||” 220046 如何处理程序“溢出”错误 230047 有效使用base关键字 230048 typeof表达式的使用 230049 params关键字可以指定多参数 240050 using关键字的用法 240051 变量的作用域 252.5 其他 260052 有效使用this对象 260053 如何声明变量 260054 如何声明相同类型的多个变量 260055 利用Object变量传递参数 270056 强行改变运算符的运算顺序 27第3章 程序算法 293.1 数据结构 300057 如何实现单向链表 300058 如何实现双向链表 350059 如何实现堆栈 410060 队列的实现 430061 树的实现 443.2 排序 480062 如何实现选择排序算法 480063 如何实现冒泡排序算法 490064 如何实现快速排序算法 500065 如何实现插入排序算法 500066 如何实现希尔排序算法 513.3 常见算法的实际应用 520067 计算1+22+33+44+……+nn的值 520068 计算10!的值 520069 求最大公约数 520070 求最小公倍数 530071 判断素数的算法 530072 如何判断一个数是否是完数 540073 歌德巴赫猜想的算法 540074 八皇后问题 540075 用回溯法找出n个自然数取r个数的全排列 550076 约瑟夫环问题 560077 猴子选大王 570078 如何判断IP是否正确 570079 如何将小写金额转换为大写金额 570080 统计文本字数 580081 文本首字母改为大写 590082 C#随机数的产生 590083 身份证从15位升至18位算法 600084 十进制数转二进制数的算法 600085 十进制数转八进制数的算法 610086 十进制数转十六进制数的算法 620087 二、八、十六进制数转十进制数的算法 633.4 密码算法 650088 使用MD5算法对密码进行加密 650089 “凯撒”密码的算法 65第4章 字符及字符串处理技术 674.1 字符及字符串转换 680090 如何获得字母的ASCII码 680091 如何根据ASCII码获得字母 680092 编程经常使用的ASCII码 680093 获得汉字的区位码 690094 如何根据区位码获得汉字 690095 如何将行字符串转换为列字符串 700096 如何将数字转换为字符串 700097 如何将字符串转换为数字 700098 如何将数字转换为日期格式 710099 如何将数字转换为货币格式 710100 将字母全部转换大写 710101 将字母全部转换小写 720102 将字符串首字母转换大写 720103 如何进行字节数组和字符串的相互转换 720104 如何把一个按空格分割的字符串存储在一个ArrayList数组 734.2 获取字符串信息 730105 如何获得一个字符串的长度 730106 如何获得一个字符串数字的长度 740107 如何获得字符串数字或字母的长度 740108 如何获得字符串某个数字的位置 750109 获得字符串汉字的个数 760110 获得字符串指定后几位字符 760111 计算字符串子字符串出现的次数 760112 获得字符串大写字母的个数 770113 获得某字符在字符串最后出现的位置 780114 如何找出字符串某一字符的所有位置 784.3 常用字符及字符串处理技术 790115 如何判断是否为数字 790116 如何在字符串查找指定字符 790117 如何在字符串用一子串替换另一子串 800118 将新字符串添加到已有字符串 800119 如何在字符串添加多个空格 810120 如何根据标点符号分行 810121 如何将字符串颠倒输出 820122 如何设置小数的保留位数 820123 如何对字符串进行组合或分解 820124 判断字符串某一字符是否大写 830125 按要求生成指定位数编号 830126 确定两字符串是否相等 840127 判断两字符串指定子串是否相等 840128 判断字符串是否为日期格式 850129 清除字符串指定的字符 850130 复制字符串指定的字符 850131 巧截字符串的数字 860132 如何存储变长字符串 860133 在进行字符串比较时忽略大小写 870134 如何去除字符串尾空格 870135 如何去掉字符串所有空格 880136 如何进行文本加密与解密 880137 如何区别0、空字符串、Null、Empty和Nothing 890138 从字符串分离文件路径、文件及扩展名 890139 如何批量替换某一类字符串 89第5章 数据处理 915.1 数字处理技巧 920140 如何对计算结果四舍五放入 920141 如何将商品金额小写转换成大写 920142 如何根据生日自动计算员工年龄 930143 如何设置货币值使用的小数位数 930144 如何自定义货币值的小数点 940145 如何自定义货币值小数点左边数字分组字符 940146 如何自定义货币值小数点左边每一组的位数 950147 如何自定义百分比值小数的位数 950148 如何自定义百分比小数点 960149 如何自定义百分比小数点左边数字分组字符 960150 如何自定义百分比小数点左边每一组的位数 970151 如何自定义百分比符号 970152 如何自定义数字小数点右边的保留位数 980153 如何自定义数字小数点左边分组位数 980154 格式化输入数据为货币格式 990155 如何计算两个整数的乘积 990156 如何将二进制数转换为十进制数 1000157 如何将二进制数转换为八进制数 1000158 如何将二进制数转换为十六进制数 1000159 如何实现0~9之间随机整数 1010160 如何实现0~1之间随机数 1010161 如何返回数字的绝对值 1015.2 控件数据处理技巧 1020162 如何实现C#用键完成TAB的功能 1020163 如何限制文本框密码输入长度 1020164 数据输入为空提示 1030165 如何设置文本框光标到末尾 1030166 输入法调整技巧 1030167 锁定文本框内的文本 1030168 使用Message.Show输出用户信息 1045.3 图片数据处理技巧 1040169 如何将图片存入数据库 1040170 如何将图片从数据库读取出来 1040171 如何只允许输入指定图片格式 1050172 如何设置录入图片统一图片大小 1055.4 数组处理技巧 1050173 如何转换数组类型 1050174 如何复制数组一系列元素的元素 1060175 如何检索指定条件数组的元素 1070176 如何动态改变数组长度 1080177 如何反转数组元素的顺序 1080178 如何排序数组的元素的顺序 1090179 如何创建动态数组 1105.5 NET应用技巧 1100180 如何使用ASP.NET技术对口令加密 1100181 如何设定ASP.NET全局变量 1110182 如何设定全局联接数据库对象 1110183 如何在ASP.NET获得客户端IP地址 1110184 如何在ASP.NET获取文件的扩展名 1110185 如何在ASP.NET用URL在页面之间传值 1120186 如何使用IsPostBack实现ASP.NET页面加载 1120187 如何利用输出缓存技术缓存ASP.NET页面 1120188 如何在ASP.NET显示当前IE浏览器头信息 1135.6 其他应用技巧 1140189 如何判断年份是否为闰年 1140190 如何根据年份判断十二生肖 1140191 如何根据IP地址获取本机域名 1150192 如何获取“我的文档”系统文件夹路径 1150193 如何获取应用程序当前执行的路径 1160194 如何获取当前操作系统的信息 1160195 如何实现基本数据类型随意转换 1160196 如何生成全局唯一标识符(GUID) 118第6章 资料验证技术 1196.1 网络验证应用技巧 1200197 如何使用正则表达式验证E-mail格式 1200198 如何使用正则表达式验证IP地址 1200199 如何使用正则表达式验证URL 1206.2 常用数字验证技巧 1210200 如何使用正则表达式验证电话号码 1210201 如何使用正则表达式验证输入密码条件 1210202 如何使用正则表达式验证邮政编号 1210203 如何使用正则表达式验证手机号 1220204 如何使用正则表达式验证身份证号 1220205 如何使用正则表达式验证两位小数 1220206 如何使用正则表达式验证一年的12个月份 1230207 如何使用正则表达式验证一个月的31天 1230208 如何使用正则表达式验证数字输入 1230209 如何使用正则表达式验证密码长度 1240210 如何使用正则表达式验证非零的正整数 1240211 如何使用正则表达式验证非零的负整数 1246.3 常用字符验证技巧 1250212 如何使用正则表达式验证大写字母 1250213 如何使用正则表达式验证小写字母 1250214 使用正则表达式检查字符串重复出现的词 1250215 如何使用正则表达式替换字符串 1260216 如何使用正则表达式拆分字符串 1270217 如何使用正则表达式验证输入字母 1270218 如何使用正则表达式验证文汉字输入 1280219 如何使用正则表达式验证输入字符串 128第7章 日期和时间 1297.1 日期与时间的获取 1300220 获得系统当前日期 1300221 获得系统当前时间 1300222 同时获得系统当前日期和时间 1300223 如何获取当前日期是星期几 1300224 如何获取当前年的天数 1310225 如何获取当前月的天数 1310226 如何取得当前日期的前一天 1320227 使用TimeSpan对象获取时间间隔 1337.2 日期的格式化及其时间的比较 1330228 将日期格式化为指定格式 1330229 如何将短日期格式化为长日期格式 1340230 如何将数字日期转化为文格式 1340231 如何对系统时间和数字进行比较 1350232 如何比较时间 1350233 获取两个日期之间的时间差并进行比较 1367.3 日期方法与函数的应用 1360234 使用DateDiff方法获取日期时间的间隔数 1360235 在SQL语句使用DATEADD函数向指定日期添加一段时间间隔 1370236 在SQL语句使用DATEDIFF函数获得两个日期的间隔 1370237 如何使用Sleep方法延迟时间 1370238 如何确定程序的运行时间 1380239 如何使用ParseExact方法将字符串转化为日期格式 1380240 如何使用ToString方法格式化日期 1390241 如何使用Convert方法转换日期显示格式 1397.4 系统时间与日期的设置 1400242 如何设置系统的日期 1400243 如何设置系统的时间 1400244 如何设置系统的日期和时间 1417.5 日期与时间的应用 1420245 如何将数据控件的日期以编程的方式转化为指定格式 1420246 将格式化日期的方法绑定到数据控件 1420247 直接格式化绑定到数据控件GridView的日期列 1430248 在数据控件GridView的RowDataBound事件对绑定到GridView控件的日期列进行格式化 1430249 如何实现倒计时功能 1430250 如何创建一个数字时钟 144第8章 Windows窗体设计 1458.1 Windows窗体基本操作 1460251 控制窗体加载时所在的位置 1460252 控制窗体最大化、最小化 1460253 清空窗体的图片 1460254 如何使程序窗体总在最前 1470255 如何将菜单置于窗体的左侧 1470256 将其他窗体作为当前窗体的子窗体 1470257 如何根据控件大小自动显示滚动条 1480258 如何显示About窗体 1480259 利用Show方法显示被调用窗体 1490260 Load事件将窗体加载到内存 1490261 窗体的卸载与隐藏 1490262 设置窗体的状态 1490263 如何设置窗体在桌面上的位置 1500264 如何在关闭窗体前显示确认对话框 1500265 如何去掉窗体的标题栏 1510266 如何禁止在任务栏显示窗体标题 1520267 如何禁止缩放窗体的边框 1520268 如何设置窗体标题栏文字右对齐 1520269 如何显示窗体的属性信息 1530270 如何隐藏窗体标题栏的按钮 1538.2 Windows窗体高级操作 1530271 设置闪烁的标题栏 1530272 如何在托盘写入应用程序图标 1540273 如何以全屏方式显示程序窗体 1540274 如何从上次关闭位置启动窗体 1540275 如何通过拖动工作区来移动窗体 1550276 如何渐变显示窗体背景颜色 1550277 如何排列MDI窗体的子窗体 1560278 如何拖动无标题栏窗体 1578.3 特殊类型的窗体 1580279 创建一个无ICON的窗体 1580280 如何制作飘动的窗体 1580281 使用拆分窗口 1590282 用C#实现启动欢迎界面 1590283 如何实现半透明渐显窗体 1600284 基于ListView的导航界面 1600285 类似OutLook的导航界面 1620286 图形化的导航界面 1620287 如何实现类似QQ的程序界面 1620288 如何实现类似Windows XP的程序界面 1640289 制作字形窗体 1640290 制作图形窗体 1640291 随机更换背景的窗体 1658.4 菜单、工具栏和状态栏的设计 1660292 带图标的菜单 1660293 带历史信息的菜单 1660294 可以拉伸的菜单 1670295 带背景的工具栏 1680296 浮动工具栏 1680297 带下拉菜单的工具栏 1690298 在状态栏显示复选框 1690299 带进度条的状态栏 1690300 带图标的状态栏 1708.5 其他 1700301 界面设计要素 1700302 界面设计在程序开发的重要性 1710303 如何设置窗体的键响应按钮 1720304 如何设置窗体的键响应按钮 1720305 窗体间数据的访问 172第9章 Windows窗体控件 1759.1 TextBox控件应用技巧 1760306 文本框只能输入数字 1760307 如何设置TextBox控件输入多行文本 1760308 如何锁定文本框 1760309 如何控制TextBox控件的插入点 1760310 如何创建密码文本框 1770311 如何创建只读文本框 1770312 如何在文本框字符串放置引号 1770313 如何在TextBox控件查看多个行 1770314 如何TextBox控件显示回车符 1789.2 RichTextBox控件应用技巧 1780315 删除RichTextBox控件的部分文字 1780316 RichTextBox与TextBox控件有何不同 1790317 如何使用RichTextBox控件显示文件 1790318 如何使用RichTextBox控件保存文件 1800319 如何在RichTextBox控件查找字符 1810320 如何在RichTextBox控件插入图片 1810321 如何为RichTextBox控件添加快捷菜单 1820322 在RichTextBox控件替换文本文字 1839.3 Button控件应用技巧 1830323 C#轻松打造绚丽按钮 1830324 如何使Button控件大小自动适应文本长度 1840325 如何设置窗体一个默认单击按钮 1840326 如何设置窗体一个默认取消按钮 1840327 如何给按钮控件创建快捷键 1850328 如何触发Button按钮的Click事件 1850329 使用控件的Tag属性传递信息 1850330 如何在Windows窗体上停靠控件 1860331 如何动态创建Button控件 1869.4 DataGridView控件应用技巧 1870332 如何对DataGridView控件进行数据绑定 1870333 如何在DataGridView控件设置数据的格式 1870334 如何在DataGridView控件基于文本的单元格启用换行 1870335 如何设置DataGridView控件单元格的文本对齐方式 1870336 如何在DataGridView控件验证数据输入 1880337 DataGridView控件输入数据时发生的错误 1880338 如何设置DataGridView控件网格线的样式 1890339 如何设置DataGridView控件的边框样式 1890340 如何设置DataGridView控件字体样式 1900341 如何设置DataGridView控件颜色样式 1900342 获取DataGridView控件单元格、行和列坐标 1900343 如何获取DataGridView控件的当前单元格 1910344 如何禁止DataGridView控件添加和删除行 1910345 DataGridView控件选单元格时整个行背景变色 1910346 如何复制DataGridView控件单元格的数据 1910347 如何在DataGridView控件实现下拉列表 1929.5 对话框控件应用技巧 1920348 如何利用FontDialog控件设置字体 1920349 如何利用ColorDialog控件设置字颜色 1930350 如何利用OpenFileDialog控件打开文件 1930351 如何获得弹出对话框的相关返回值 1940352 使用FolderBrowserDialog控件选择文件夹 1959.6 ListBox控件应用技巧 1950353 如何快速选ListBox控件全部条目 1950354 如何排序ListBox控件的数据 1960355 如何实现ListBox控件的多项选择功能 1960356 如何在ListBox控件查找指定的项 1960357 实现ListBox控件与ListBox控件交换数据 1979.7 ListView控件应用技巧 1980358 如何实现ListView控件实现动态加载数据 1980359 如何向ListView控件添加搜索功能 1990360 如何将数据的表内容填充到ListView控件 2000361 如何使ListView控件拥有编辑功能 2010362 如何实现ListView控件显示图标与列表 2010363 如何获取ListView控件的选择结果 2020364 如何将图片加载ListView控件 2029.8 TreeView控件应用技巧 2030365 如何在TreeView控件结点显示图片 2030366 如何在TreeView控件用鼠标右键选节点 2030367 区分TreeView控件选各节点方式 2040368 如何实现TreeView控件节点拖放操作 2040369 如何实现带复选框的TtreeView控件 2050370 如何实现TreeView控件遍历磁盘目录 2060371 如何将数据库字段填充到TreeView控件 2069.9 ComboBox控件应用技巧 2070372 如何使ComboBox下拉列表显示图片 2070373 ComboBox只能从下拉列表框选择数据 2080374 如何实现带查询功能的ComboBox控件 2080375 如何实现文件目录名称填充ComboBox控件 2090376 如何将数组绑定到ComboBox控件 2100377 如何将数据库字段绑定到ComboBox控件 2109.10 组件应用技巧 2110378 如何使用ProgressBar控件显示操作的进度 2110379 如何使用ToolTip控件显示提示信息 2110380 如何使用FlowLayoutPanel控件布局窗体 2120381 如何使用SplitContainer控件分隔窗体 2130382 如何使用Process组件打开系统进程 2140383 FileSystemWatcher监视文件夹内文件的更改 2149.11 其他常用件控件应用技巧 2150384 如何在状态栏显示时间 2150385 如何在状态栏加载图片 2150386 如何设置DateTimePicker控件显示为空文 2150387 如何判断ToolStrip控件Button控钮的单击 2150388 如何实现Panle自动调整大小充满窗体 2160389 如何实现CheckedListBox控件选重所有项 2160390 如何实现CheckBox控件的选择状态 2160391 如何使Lable控件显示出多行文字 2170392 如何使用LinkLabel控件实现超级链接 2170393 如何设置MaskedTextBox控件输入验证 2180394 如何使用NotifyIcon控件创建任务托盘 2190395 如何控制PictureBox控件显示图片风格 219第10章 Web页面设计 22110.1 网页外观设计 2220396 将CSS样式表应用到页面 2220397 在页面的源码直接定义样式表 2220398 动态加载主题到页面 2230399 利用Table布局Web页面 2230400 FrameSet框架的应用 2240401 IFrame框架的应用 2240402 页面尺寸自动适应1024×768像素和800×600分辨率 22510.2 网页性能设计 2250403 用meta标签来增强网页性能 2250404 什么情况下使用缓冲会提高速度 2260405 使用OutputCache指令实现页面缓存 2260406 设置网页缓存的位置 2270407 使用Cache类实现应用程序数据缓存 2270408 缓存网页的不同版本 22710.3 Web页的绑定 2280409 如何绑定变量 2280410 如何绑定集合 2280411 如何绑定表达式 2290412 如何绑定方法结果 2300413 巧用DataBinder.Eval()方法进行数据绑定 2300414 如何将DropDownList控件绑定到GridView控件 23110.4 开发Web页的常用功能 2310415 使用QueryString变量在页面之间传值 2310416 页面定时刷新如何实现 2320417 显示只有数字的验证码图片 2320418 显示数字和英文字母组合的验证码图片 2320419 页面定时刷新后跳转到其他页 2330420 打开新的窗口并传送参数 2330421 动态显示用户头像 2330422 利用Pannel控件显示和隐藏一组控件 2330423 如何在GridView控件上添加删除确认 2340424 如何为GridView控件添加编号列 2340425 FindControl方法的应用 2340426 如何实现单击表格行打开另一页并传递参数 2350427 如何实现双击表格行超级链接到另一页并传递参数 2350428 如何实现单击表格行改变颜色 2350429 鼠标移动改变表格行的颜色 2350430 如何在Web页使用表格控件 23610.5 Web.Config文件的配置 2370431 通过Encoding的设置实现页面无乱码 2370432 限制上传文件大小与时间 2370433 配置验证级别 23710.6 开发Web页其他功能 2380434 如何使Pannel实现横向滚动纵向自动扩展 2380435 属性MaintainScrollPositionOnPostBack实现网页定位 2380436 自动隐藏式菜单 2380437 关闭弹出窗口刷新父窗口 2390438 弹出网页模式对话框 2400439 弹出全屏显示网页 2410440 为什么要生成静态页 2420441 用快捷键+实现屏蔽 2420442 如何在Web页使用广告控件 2420443 滚动显示博客公告 243第11章 HTML客户端控件与服务器控件 24511.1 数据控件应用技巧 2460444 如何将数组绑定到GridView数据控件 2460445 使用GridView Web服务器控件绑定数据源 2460446 使用GridView Web服务器控件自定义外观风格 2470447 使用GridView Web服务器控件的简单排序 2470448 如何在GridView Web服务器控件分页 2480449 使用GridView Web服务器控件编辑数据 2490450 使用GridView Web服务器控件删除数据 2510451 如何使用GridView Web服务器控件选择数据 2520452 单击GridView控件按钮刷新保持原来的位置 2530453 向GridView Web控件添加CheckBox控件 2530454 如何使用GridView Web控件实现超级链接 2540455 在GridView Web控件高亮显示鼠标所在行 2560456 实现DataList Web服务器控件数据绑定功能 2560457 如何实现DataList Web服务器控件分页功能 2580458 实现查看DataList控件数据的详细信息 2590459 如何在DataList控件创建多个列 2600460 如何实现DetailsView 控件分页功能 2610461 将DataSet类对象绑定到Repeater数据控件 26211.2 导航控件应用技巧 2630462 TreeView、SiteMapDataSource控件和SiteMap文件实现导航 2630463 如何在TreeView控件添加连接线 2640464 以编程方式向TreeView控件添加节点 2640465 如何在TreeView控件显示CheckBox控件 2650466 如何判断TreeView控件被勾选的节点 2650467 用SiteMapPath控件绑定SiteMap文件实现导航 2660468 如何设置SiteMapPath控件路径分隔符 2660469 如何设置SiteMapPath控件路径方向 2670470 如何设置SiteMapPath控件父节点显示个数 2670471 如何设置SiteMapPath控件提示字符 2680472 如何用Menu控件绑定SiteMap文件实现导航 2680473 如何设置Menu控件显示静态菜单 2690474 如何以编程方式创建Menu控件 27011.3 标准控件应用技巧 2710475 使用HyperLink服务器控件实现页面间传值 2710476 如何使用Input(Reset)实现文本框清空功能 2710477 如何取消DropDownLidt控件的激发验证 2720478 使用FileUpload服务器控件实现文件上传 2720479 使用LinkButton服务器控件实现超级链接 2730480 实现DropDownList服务器控件的数据绑定 2730481 如何改变DropDownList服务器控件的项 2740482 指定ListBox服务器控件的项的目的移位顺序 2750483 响应ListBox服务器控件的改变事件 2760484 如何使用CheckBox服务器控件 2760485 如何使用CheckBoxList服务器控件 2770486 使用RadioButtonList服务器控件巧用单项选择 2780487 使用BulletedList控件显示项目符号和编号 2790488 如何使用HiddenField控件 2800489 如何使用Literal控件显示静态文本 2810490 如何使用AdRotator控件制作广告 2810491 如何使用Wizard Web服务器控件制作导航页 2820492 使用XML服务器控件转换XML文档 2830493 使用MultiView与View控件制作导航页面 2860494 使用PlaceHolder控件实现动态添加控件 2890495 如何实现带滚动条的Panel面板 2900496 使用Substitution控件在缓存页面插入内容 290第12章 内置对象 29312.1 ASP.NET基本对象 2940497 使用Session对象在页面之间传值 2940498 如何使用Session验证用户登录 2940499 配置Session的生命周期 2940500 如何遍历Session对象 2950501 使用Application对象在页面之间传值 2950502 存取Application变量内容 2950503 如何锁定Application对象 2960504 如何使用Application实现站点访问量统计 2960505 如何删除Application变量内容 2960506 使用ViewState对象在同一个页面传值 29712.2 Response与Request对象 2970507 如何解决Response.Redirect方法传递汉字时出现的错误 2970508 使用Response.BinaryWrite方法输出二进制图像 2970509 Response对象将文本文件的内容写回客户端浏览器 2980510 如何使用Request接收页面间传值 2980511 使用Request对象的Browser属性获取客户端浏览器信息 2980512 获取客户端和服务器端IP地址 2990513 使用Request对象获取客户端的表单信息 3000514 使用Request对象的PhysicalApplicationPath属性获取服务器的绝对路径 3000515 使用Request对象的CurrentExecutionFilePath属性获取当前页面的路径 3000516 如何获取ASP.NET所有Request的属性 3000517 缓存区的应用 30112.3 Cookie对象 3020518 使用Cookie的优缺点 3020519 使用Cookie对象在页面之间传值 3020520 如何使用Cookie验证用户登录 3030521 Cookie可以存储哪些值 3030522 使用Cookie对象保存和读取客户端信息 3030523 如何加密Cookie的数据 3040524 创建及存取多个键值的Cookie对象 3040525 如何遍历Cookie集合 3040526 设定Cookie变量的生命周期 3050527 如何删除客户端的Cookies 3050528 如何删除多值Cookie的某个值 3050529 如何使用Cookie处理网上重复投票 3050530 如何使用户第2次访问我的网站不用提交信息 30612.4 Server对象 3070531 使用Server.Transfer方法在页面之间传值 3070532 使用Server.MapPath方法获取服务器的物理地址 3080533 使用Server.UrlEncode方法对字符串进行编码 3080534 使用Server.UrlDecode方法对字符串进行解码 3080535 利用Server对象进行HTML编码输出 3080536 利用Server对象进行HTML解码输出 309第13章 图形图像技术 31113.1 图像预览及转换 3120537 如何设计缩略图功能的图片浏览器 3120538 如何浏览大图片 3120539 如何局部放大图片 3130540 如何实现剪切图片 31313.2 图形缩放与变换 3150541 如何缩放图片 3150542 如何转换图像文件格式 31513.3 图像效果 3160543 如何以底片效果显示图像 3160544 如何以浮雕效果显示图像 3170545 如何以黑白效果显示图像 3180546 如何以柔化效果显示图像 3190547 如何以锐化效果显示图像 3200548 如何以雾化效果显示图像 3210549 如何以光照效果显示图像 3220550 如何以百叶窗效果显示图像 3230551 如何以马赛克效果显示图像 3250552 如何以任意角度旋转图像 3260553 如何以椭圆形显示图像 3270554 如何以不同的透明度显示图像 3280555 如何以不同分辨率显示图像 3280556 如何以不同翻转方式显示图像 3290557 如何以油画效果显示图像 3300558 如何以扭曲效果显示图像 3310559 如何以分块效果显示图像 3320560 如何以四周扩散方式显示图像 3330561 如何以从上向下拉伸方式显示图像 3340562 如何以从左向右拉伸方式显示图像 3350563 如何以上下反转方式显示图像 3350564 如何以上下对接方式显示图像 3360565 如何以左右反转方式显示图像 3370566 如何以左右对接方式显示图像 3380567 如何以淡入淡出效果显示图像 3390568 如何以积木效果显示图像 34113.4 图像字体 3420569 如何以渐变色效果显示文字 3420570 如何以倾斜效果显示文字 3430571 如何以阴影效果显示文字 3430572 如何以倒影效果显示文字 3440573 如何以投影效果显示文字 3440574 如何以浮雕效果显示文字 3450575 如何以印版效果显示文字 3460576 如何为文字填充图片纹理 3460577 如何创建可旋转文字 34713.5 图像识别及图像工具 3470578 如何获取图像的像素值 3470579 如何设置图像的像素值 3480580 如何校正图像显示颜色 3490581 如何使用阈值校正图像显示颜色 3510582 如何获得图像信息 3520583 如何制作简单的画图工具 3530584 如何将图片以Image类型存储到数据库 3560585 如何从数据库读取Image类型的字段 35713.6 图像应用及其他 3580586 如何在Web页面上显示图像 3580587 绘制渐变背景图像 3590588 确定鼠标是否在图形范围内 3590589 如何绘制柱形图 3600590 如何绘制饼形图 3620591 如何绘制折线图 3640592 如何绘制图形验证码 3660593 如何在桌面上全屏显示图像 3670594 如何利用Image制作小动画 3680595 如何使用鼠标拖动图片 3680596 如何获取当前鼠标的形状 369第14章 动画与多媒体 37114.1 声音控制 3720597 如何播放WAV声音文件 3720598 如何播放默认的Beep事件声音 3720599 如何播放默认的Hand事件声音 3720600 如何播放默认的Asterisk事件声音 3720601 如何播放默认的Question事件声音 3730602 如何播放默认的Exclamation事件声音 3730603 如何设置计算机喇叭发出的声音 3730604 如何同步加载并播放声音文件 3740605 如何异步加载并播放声音文件 37414.2 多媒体及其他 3750606 C#实现动画效果 3750607 C#设计屏幕保护程序 3750608 如何实现滚动字幕 3760609 如何播放AVI动画文件 3760610 如何播放Flash 3770611 用C#实现家庭影集 3780612 C#实现电影特效 3790613 如何实现Word艺术字 3790614 检查是否安装声卡 3800615 带有记忆功能的MP3 3800616 打开和关闭光驱 3810617 如何收听网络电台 3820618 如何通过剪贴板复制粘贴图像 3820619 如何转换图像文件的保存格式 3830620 如何制作自动播放的MP3播放器 3840621 学校体操定时音乐播放 3850622 如何从ARGB分量值创建Color结构 3850623 如何动画显示窗体 3860624 如何获取系统的图像编码器信息 3870625 如何获取系统的图像解码器信息 388第15章 键盘与鼠标 38915.1 鼠标操作技巧 3900626 鼠标双击窗体时模拟键盘Tab键操作 3900627 定义鼠标指针形状 3900628 自定义鼠标的图片 3910629 鼠标拖放复制文本 3910630 如何使用鼠标单击添加控件 3920631 如何获得鼠标在窗体上的位置 3920632 如何交换鼠标左右键功能 3920633 如何隐藏和显示鼠标 3930634 如何获取光标闪烁的频率 3940635 如何获得屏幕上鼠标的坐标 3940636 如何限制鼠标在某一区域工作 3940637 如何利用鼠标绘图 3950638 如何获取鼠标双击时间间隔 3960639 如何获取鼠标键数 3960640 如何显示鼠标的等待光标 3970641 如何禁用鼠标左键 3970642 如何模拟鼠标操作 3980643 如何实现鼠标穿透窗体 3990644 如何记录鼠标行为 39915.2 键盘操作技巧应用 4000645 如何禁用输入法编辑器 4000646 如何打开和关闭输入法编辑器 4000647 回车转换成Tab键 4000648 如何获取组合键 4010649 如何获取功能键 4010650 如何判断NumLock键和CapsLock键是否锁定 4010651 如何屏蔽+键关闭窗体 4020652 如何实现按下键关闭窗体 4020653 如何避免按键产生“嘀”声 4030654 如何设置键盘热键 403第16章 文件文件管理及数据流 40516.1 获取文件基本信息 4060655 获取文件创建的日期和时间 4060656 如何检索路径文件和扩展名 4060657 如何获得文件的大小 4070658 如何修改文件属性 4070659 如何监视文件系统变化情况 4080660 如何获取文件的系统启动方式 4080661 如何获取文件禁止使用的字符 4090662 如何获取路径名禁止使用的字符 4100663 如何获取指定目录的上级目录 41016.2 文件基本操作 4110664 判断文件是否存在 4110665 创建一个文件用于写入UTF-8编码的文本 4110666 OpenRead方法打开现有文件并读取 4120667 打开现有UTF-8编码文本文件并进行读取 4120668 OpenWrite方法打开现有文件并进行写入 4130669 如何读取文件的第一行数据 4130670 如何向文件写入数据 4130671 如何读取文件所有数据 4140672 如何创建临时文件 4140673 如何实现文件替换 4150674 使用递归法删除文件所有文件 4150675 如何更改文件扩展名 4160676 如何实现复制文件 4160677 如何修改文件 4160678 如何删除文件 4170679 如何上传文件 4170680 如何下载文件 4180681 如何拖放文件 4190682 如何搜索文件 41916.3 文件夹基本操作 4200683 如何创建文件夹 4200684 如何移动文件夹 4200685 如何修改文件夹名称 4210686 如何遍历文件夹 4210687 如何删除文件夹 42216.4 数据流操作 4220688 如何读写内存数据流 4220689 如何创建二进制文件 4230690 如何读取二进制文件 4230691 如何使用缓冲流 42416.5 加密、解密及解压缩文件 4250692 加密和解密文件 4250693 如何使用对称算法加密文件 4250694 如何使用对称算法解密文件 4260695 如何使用GZip压缩文件 4270696 如何使用GZip解压文件 4280697 如何使用WinRAR压缩文件 4290698 如何使用WinRAR解压文件 42916.6 其他 4300699 设置文件的访问模式 4300700 如何在C#应用程序使用INI文件 4300701 如何操作帮助文件 4310702 如何操作Word文件 4320703 如何操作Excel文件 4330704 如何将文本文件转换成网页文件 4340705 如何产生随机文件夹名或文件 4350706 如何将长文件转换成短文件 4360707 如何用程序创建XML文档并写入内容 4360708 如何通过DataSet对象读取XML文件 4380709 如何动态创建XML文件节点 4390710 如何实现XML文件数据类型的转换 4390711 将图片保存到XML文件 4400712 如何比较两个文件的内容是否相同 4400713 如何以缩略图形式上传图片文件 4410714 如何解析只有一种格式的文本文件 4420715 如何解析含有多种格式的文本文件 443第17章 Windows开发技术 44517.1 获取计算机系统信息 4460716 如何获取系统时间 4460717 如何获取系统目录 4460718 如何获取计算机名称 4460719 如何获取当前程序运行目录 4460720 如何获得操作系统版本号 44617.2 获取计算机硬件信息 4460721 如何获取CPU编号 4460722 如何获取显示设备的PNPDeviceID 4470723 如何获取声音设备的PNPDeviceID 4470724 如何获取硬盘编号 4470725 如何获取CPU的版本信息 4480726 如何获取CPU的产品名称信息 4480727 如何获取CPU的制造商名称 4480728 如何获取主板制造商 4490729 如何获取主板编号 4490730 如何获取主板型号 4490731 如何获取磁盘空间 4500732 如何获取磁盘剩余空间 4500733 如何确定屏幕的分辨率 4510734 如何获得磁盘的卷标 4520735 如何获得磁盘的文件系统类型 45217.3 获取特殊文件夹路径 4530736 如何获取ProgramFiles目录全路径 4530737 如何获取桌面目录全路径 4530738 如何获取开始菜单目录全路径 4540739 如何获取用户程序组目录全路径 4540740 如何获取文档模板目录全路径 4550741 如何获取收藏夹目录全路径 4550742 如何获取共享组件目录全路径 4560743 如何获取我的图片目录全路径 4560744 如何获取Internet历史记录全路径 4570745 如何获取Internet临时文件目录全路径 4570746 如何设置可用样式 45717.4 获得Windows当前用户 4580747 如何获取当前用户 4580748 如何判断当前用户是否是普通用户 4580749 如何判断当前用户是否是超级用户 4580750 如何判断当前用户是否是系统管理员 4590751 如何判断当前用户是否是系统操作员 4590752 如何判断当前用户是否是备份操作员 4600753 如何判断当前用户是否是打印操作员 4600754 如何判断当前用户是否是复制程序员 4610755 如何判断当前用户是否是账户操作员 46117.5 Windows日志 4620756 如何获取系统日志信息 4620757 如何获取安全日志信息 4620758 如何获取应用程序日志信息 4630759 如何创建并写入自定义日志信息 4640760 如何向系统日志写入自定义数据 4640761 如何向应用程序日志写入自定义信息 46517.6 计算机控制 4650762 列举系统所有窗口 4650763 C#实现键盘钩子 4650764 如何关闭计算机 4660765 如何抓屏 4660766 如何休眠计算机 4670767 如何禁止使用Windows任务管理器 4680768 如何为文件新增右键菜单项 4680769 如何设置系统仅能运行的程序 4690770 如何获取本地计算机上所有的进程 4690771 如何启动一个进程 4700772 怎样杀死一个进程 4700773 如何获取远程计算机上所有的进程 47017.7 其他相关技术 4700774 如何在注册表保存窗体的大小和位置 4700775 如何实现程序间注册表内传递变量 4710776 在使用OpenFileDialog的相对路径问题 4710777 如何设置启动时自动执行程序 4710778 C#编程实现Windows XP风格的界面 4710779 用C#实现文件查找功能 4730780 如何序列化对象 4730781 如何实现特殊形状的窗体 4740782 如何移动正在使用的文件 4740783 如何实现类似QQ的程序界面 4750784 如何实现动画显示窗体 4760785 如何显示和隐藏任务栏 4770786 如何实现OutLook界面 4780787 如何在C#回车换行 4780788 如何获取进程的命令行 4790789 如何按行读取文本并显示行数 4790790 如何在Form嵌入Excel 4790791 如何使用互斥量禁止程序运行两个实例 4800792 如何使用进程名禁止程序运行两个实例 4800793 如何获取控制台应用程序的显示结果 4810794 如何用@代替路径的转义字符 482第18章 程序应用控制 48318.1 提取信息 4840795 判断驱动器类型并获取其属性 4840796 如何得到本地机器的IP 4840797 如何得到本地运行的EXE的路径 4850798 得到计算机所有正在运行的进程 4850799 获得Windows的启动模式 4850800 获取鼠标的按钮个数及鼠标安装状态 4850801 检测计算机是否存在网络连接 4860802 如何判断计算机的联机状态 4860803 获取计算机屏幕分辨率 4860804 获取计算机当前登录的用户名称 48618.2 系统控制 4860805 远程关闭或重新启动计算机 4860806 创建应用程序快捷方式 4870807 启动Windows系统服务 4880808 在C#应用程序控制输入法 4880809 打开“区域和语言选项”对话框并指定选项卡 4890810 如何执行命令行命令? 4890811 如何修改计算机的默认打印机 4900812 如何实现行业软件系统注销功能 4900813 如何将计算机设置为休眠状态 4900814 在Windows系统建立事件日志 4910815 如何使PC喇叭发音 49118.3 程序控制 4910816 使用回车键控制鼠标焦点 4910817 如何调用可执行应用程序 4920818 TextBox上禁用鼠标右鍵 4920819 如何实现屏幕截图 4920820 如何将截取的图片保存为指定图片格式 4930821 如何复制程序本身 4930822 分段显示电话号码颜色 4930823 软件版本号是如何组成的 4930824 单击“关闭”按钮或按+键时最小化窗口 4940825 屏蔽RichTextBox控件+快捷键 49518.4 其他 4950826 将DataGridView控件的数据导入Excel 4950827 无法获取自定义环境变量的值 4960828 将组件放到COM+服务器上去 4960829 调用非托管的DLL文件 4970830 如何将GridView控件数据导入Word 4970831 如何将GridView控件数据导入Excel 4970832 单片机如何实现在线调试 4980833 单片机如何实现内存优化管理 4980834 单片机实现文件系统管理 4980835 杀死进程 4980836 如何下载某网站上的图片资源 498第19章 SQL查询相关技术 50119.1 常用SQL查询技术 5020837 如何在查询正确使用单引号“’” 5020838 SQLSELECT语句的执行顺序 5020839 在查询时查询数据为指定长度的数据 5020840 如何利用WHERE参数过滤数据 5030841 如何正确地理解和运用SQL的判式 5030842 如何正确地理解和使用SQL的关键字 50319.2 比较、逻辑运算符查询 5040843 如何使用算术运算符号进行比较查询 5040844 如何使用比较运算符号进行比较查询 5040845 如何使用AND逻辑运算符查询 5050846 如何使用OR逻辑运算符查询 5060847 如何联合使用AND和OR运算符查询 5060848 如何在查询正确使用逻辑操作符 5070849 利用通配符进行查询 50719.3 SQL关键字查询 5080850 如何使用ESCAPE关键字规定转义字符 5080851 如何使用BETWEEN进行范围查询 5080852 如何使用NOT BETWEEN进行范围查询 5090853 如何使用GROUP BY子句查询 5090854 如何使用HAVING语句过滤分组数据 5100855 如何使用ALL关键字查询 5100856 如何使用CUBE关键字查询 51119.4 表结构与性能 5110857 检测信息是否存在 5110858 @@CPU_BUSY获取CPU的工作时间 5110859 如何获取磁盘读写次数 5120860 获取SQL Server服务器名 5120861 获取数据库标识号 5120862 判断用户是否访问数据的权限 5120863 显示表列信息 5120864 显示表任意列名称 5130865 提高SQL性能加快执行速度 5130866 控制批处理内语句的执行 5130867 执行查询但是显示列信息 5140868 获取连接或试图连接的次数 5140869 获取当前数据库的语言名 51419.5 时间与谓词 5140870 时间函数的使用 5140871 设置数据库时间表显形式 5150872 格式化日期显示格式 5150873 如何正确理解SQL的NULL值 5160874 如何使用IsNull()函数来处理空值 5160875 如何使用Nullif()函数来处理空值 5160876 查询空值(NULL)的技巧 5170877 利用关键字DISTINCT去除重复记录 5170878 巧用TOP子句获取信息 5180879 巧用CONTAINS谓词检索信息 5180880 通过ISNULL替换信息 5190881 比较COMPUTE和GROUP BY 5190882 如何对指定时间段进行查询 5190883 对某期间的数据进行查询的几种方法 5190884 NOT与谓词进行组合条件的查询 52019.6 聚合函数 5200885 聚合函数SUM的使用 5200886 聚合函数AVG的使用 5210887 如何使用聚合函数MAX 5210888 如何使用聚合函数MIN 5220889 如何使用聚合函数COUNT 5220890 如何使用聚合函数First或Last 52319.7 子查询与连接查询 5230891 union与连接之间的区别 5230892 如何应用IN查询表的记录信息 5240893 使用一个单行的子查询来更新列 5240894 使用IN引入子查询限定查询范围 5240895 在UPDATE语句应用子查询 5250896 如何应用子查询 5250897 EXISTS与子查询联合应用 5250898 在FROM子句的子查询 5250899 在DELETE语句应用子查询 5260900 子查询与聚合函数的应用 5260901 有效使用内连接 5260902 如何使用LEFT OUTER JOIN查询 5260903 如何使用RIGHT OUTER JOIN查询 5270904 利用CASE语句查询结果 52719.8 交叉表 5280905 Access利用TRASFORM分析数据 5280906 Access利用TRASFORM动态分析数据 5290907 SQL Server实现静态交叉表 5290908 SQL Server实现动态交叉表 53119.9 常用数据操作 5320909 如何对字符串进行查询 5320910 如何进行单条数据的添加 5330911 如何进行批量数据的添加 5330912 如何对数据进行修改 5340913 如何对数据进行删除 5340914 对数据库数据进行局部删除 53419.10 高级应用 5350915 如何使用临时表 5350916 如何查询表的列名 5350917 在查询如何防止输入指定符串 5360918 查询指定长度的数据 5360919 获取当前数据库的详细信息 5370920 在查询过程灵活定义与使用别名 53819.11 视图、存储过程和触发器的使用 5380921 如何正确认识视图 5380922 如何获取数据库的全部用户视图 5390923 如何通过视图修改数据 5390924 如何正确理解存储过程 5400925 如何获取数据库的全部存储过程 5400926 如何正确认识触发器 5410927 Update触发器在系统日志的应用 5420928 触发器的嵌套使用 5420929 获取数据库的触发器 54319.12 其他 5440930 在查询程序使用变量 5440931 对查询结果进行排序 5440932 批量获取结果集信息 5450933 对查询结果生成表 5450934 实现数据类型转换 5460935 获取当前数据库的登录用户名 5460936 如何正确理解数据库键字 5460937 将结果转换为XML形式 5470938 追加查询结果到已存在的表 5470939 利用对多个表的字段创建新记录集 5470940 利用EXECUTE执行SQL语句 548第20章 数据库技术 54920.1 Access数据库的使用 5500941 如何为Access数据库设置密码 5500942 如何创建加密的Access数据库 5500943 建立Access数据库连接 5510944 与加密后的Access数据库建立连接 5510945 如何提取Access数据库的数据表名 5510946 随机读取Access数据库记录 5520947 将Access数据库导入到Excel(ASP.NET) 5520948 在.NET 2.0框架下动态创建Access数据库 5530949 在.NET 2.0框架下动态创建Access数据表 5530950 如何备份Access数据库 55420.2 SQL数据库的使用 5540951 建立SQL Server数据库连接 5540952 如何使用ODBC访问SQL Server数据库 5550953 读取SQL Server数据表结构 5560954 在C#分离SQL Server数据库 5570955 C#附加SQL Server数据库 5580956 C#附加单文件SQL Server数据库 5590957 备份SQL Server数据库 5590958 还原SQL Server数据库 5600959 开启SQL Server数据库服务 5610960 断开SQL Server数据库服务 5620961 如何判断SQL Server数据库连接状态 5620962 获取连接SQL Server数据库的名称 5630963 获取SQL Server的连接统计数据 5630964 如何调用SQL Server存储过程 5630965 如何生成SQL数据库脚本 5640966 SQL Server 2000无法安装的解决办法 56520.3 其他 5650967 如何判断记录是否为NULL 5650968 建立Oracle数据库连接 5660969 如何在数据表设置主键 5660970 DataSet读取XML文件数据作为数据源 5670971 如何读取Fox的DBF文件 5670972 通用方法实现数据增、删、改功能 5670973 通用方法获取查询结果DataSet数据集 5680974 同时查询多条SQL语句 5680975 如何判断是否查询到结果 5680976 将图片以二进制格式存储到数据库(asp.net) 5690977 从DataReader对象读取数据的技巧 5690978 随机显示数据库记录 5690979 通过DataTable获得数据表的主键 5690980 将Access数据库转化为SQL Server数据库 5700981 将SQL Server数据库转化为Access数据库 5710982 如何避免数据库死锁现象 5720983 如何调用带输入参数的存储过程 5720984 如何获取存储过程返回的结果集 5730985 取得数据表某个单元格的值 5730986 在ASP.NET2.0下将数据绑定DropDownList 5730987 在ADO.NET实现数据库的事务处理 5740988 将任意文件保存到数据库 5740989 将存储在数据库文件提取出来 5750990 合并具有相同数据表结构的查询结果 5750991 使用DataTable进行数据检索 5750992 使用DataView对数据进行检索和排序 5760993 使用DataSet建立DataTable明细表 576第21章 打印与报表技术 57921.1 报表设计技术 5800994 如何快速创建水晶报表 5800995 如何编写带图片的报表 5820996 如何使图片成为整个报表的背景 5830997 如何设置水晶报表节的背景图片 5830998 如何设置水晶报表节的背景色 5840999 如何设置水晶报表的页面 5841000 如何在报表添加节 5841001 如何在报表移动节的顺序 5851002 如何在报表合并节 5851003 如何在报表册除节 5851004 如何在报表显示与隐藏节 5861005 如何设置多列样式报表 5861006 如何设置报表节的高度 5871007 如何设置报表的摘要信息 5871008 如何设置报表的打印日期与时间 58721.2 报表格式化类对象技巧 5881009 如何在报表使用文本对象 5881010 如何移动对象操作 5881011 如何对齐多个对象 5891012 如何使用公式字段 5891013 如何在报表使用线 5901014 如何在报表使用方框 59021.3 报表数据排序与分组技巧 5911015 如何排序报表数据 5911016 如何报表数据分组 5911017 如何报表筛选数据 5921018 如何对分组报表的页码进行设置 59221.4 报表的应用技巧 5931019 如何在水晶报表使用交叉表 5931020 如何在水晶报表使用子报表 5941021 如何动态显示子报表 5961022 如何删除子报表 5971023 如何在报表计算百分比 59721.5 Windows打印控件应用技巧 5991024 如何使用PrintDocument控件打印窗体数据 5991025 如何使用PrintPreviewContronl控件预览 5991026 使用PrintPreviewDialog对话框 6001027 如何使用PrintDialog对话框打印 6011028 如何使用PageSetupDialog对话框设置页面 6011029 如何使用PrintDocument控件打印文本文件 602第22章 C#高级应用开发 60522.1 线程的使用 6061030 如何开始一个线程 6061031 如何结束一个线程 6061032 如何使线程休眠 6061033 如何挂起一个线程 6061034 如何判断线程的状态 6061035 如何实现线程的同步 6071036 如何避免死锁 60722.2 .NET 2.0的新特性 6071037 如何使用泛型 6071038 如何使用匿名方法 6081039 如何使用迭代器 6091040 如何使用分部类 61022.3 C#WebService 6101041 建立SQL Server返回数据集WebService 6101042 利用WebService传送图片 61122.4 文件监视 6111043 如何监视文件的创建 6111044 如何监视文件的改变 6121045 如何监视文件的重命名 6121046 如何监视文件的删除 61322.5 C#高级应用 6131047 如何将聊天程序做成Windows服务 6131048 COM+服务解决同时访问大量数据并发性 6151049 COM+服务实现银行转账系统 6171050 如何用Remoting技术传送文件 6191051 大规模数据访问时缓解服务器压力 620第23章 硬件及相关开发技术 62323.1 语音卡、IC卡、神龙卡的使用 6241052 利用语音卡拨

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧