将输入文件按域分割的程序
2011-09-16 16:38
211 查看
use strict; use warnings; use FileHandle; #计算字符串的hash值 sub HashFun($){ my $str = shift; my $sum=0; for(my $iLetter = 0; $iLetter < length($str); $iLetter ++){ $sum += ord(substr($str, $iLetter, 1)); } return $sum; } #分割文件的函数,带三个参数:输入文件,输出文件夹,分割的份数 sub SplitFile($$){ my $inputfile=shift; my $outputfolder=shift; my $nParts=shift; unless(open IN_FILE, "<$inputfile"){ print "Could not open $inputfile!\n"; return 1; } my %fhHash; #用一个hash表保存文件句柄 #打开文件句柄 for(0 .. $nParts - 1){ my $fillzero = ( 0 x (2 - length($_))); my $filename = "${outputfolder}/${fillzero}" . $_; print "$filename\n"; open $fhHash{$_}, "+>$filename" or die; } my $line; while($line = <IN_FILE>){ my $str = substr($line, 0, 5); my $id = HashFun($str) % $nParts; $fhHash{$id}->print("$line"); } close(IN_FILE); #关闭文件句柄 for(0..$nParts){ close $fhHash{$_}; } return 0; }
相关文章推荐
- 1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新
- 1.编写一个简单的C语言程序:计算输入多个整数的平均值,并将此程序分割成多个小文件。 2.为第1题中的程序编写makefile文件,用make编译后改成返回最小值,再编译,观察有多少文件不需要重新
- 编写文件搜索小程序:1. 输入绝对路径以及搜索关键字,2. 搜索指定路径下(包括子文件夹)中名称包含关键字的所有文件并打印出,3. 将当前操作记录日志
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- 完成文件复制操作,在程序运行后提示输入源文件路径,然后再输入目标文件路径。
- 第八章编程练习第一题:设计一个程序,统计从输入到文件结尾为止的字符数
- JAVA写的文件分割与文件合并程序
- JAVA写的文件分割与文件合并程序
- 编程实现文件的复制功能,要求源文件名及目标文件名在程序运行后根据提示输入
- win7下的开始菜单中搜索程序和文件输入框打不开win7自带命令解决办法
- [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式
- Java 文件统计:编写程序,统计英文文本文件中的字符数目和单词数目。程序运行时,输入要统计的文件的名称,程序处理后输出字符数目和单词数目
- 完成文件复制操作,在程序运行后提示输入源文件路径,然后再输入目标文件路径。
- 从 stdin 读取输入的C程序示例 && python脚本调用可执行文件
- 编写一个程序,从标准输入一行一行地读取文本,并完成如下任务:如果文件中有两行或更多行相邻的文本内容相同,那么就打印其中一行,其余行不打印。
- 使用缓冲流读取试题文件,每次显示试题文件中的一道题目。读取到字符“*”时候暂停读取,等待用户从键盘输入答案。用户做完全部题目后,程序给出用户的得分。Test.txt如下:
- DOS窗口输入javac命令,返回“不是内部或外部命令,也不是可运行的程序 或批处理文件。”分析原因
- 编写一个程序,使其从标准输入读取字符,直到遇到文件结尾。对美个字符 程序需要检查并报告改字符是否是一个字母。如果是报告字母在字符表中的位置,否则返回-1
- C++中的文件输入/输出(1):你的第一个程序
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符。