你好,欢迎来到织梦之家,你可以免费观看大量视频教程以及大量模板下载!

文档切割器在matlabDEDE模板下载上的实现(附件txt切割措施代码)-织梦之家(dedehome.com)

时间:2017-09-11 18:00 来源:织梦之家作者:织梦之家 点击:
文档切割器在matlab上的实现(附件txt切割措施代码)_小灰条记_Grey_新浪博客,小灰条记_Grey,

大学时候喜欢看电子书,为了更好的筹划本身看书的进度我喜欢把电子书举办支解。凡是是把一本书支解成若干个txt名目的小块儿,每个小块儿的巨细是10KB阁下。

最初的时候我选择的是手动复制粘贴,在word中先查察一下字数,看一下大抵需要几多也word文档,然后举办复制粘贴。再到厥后,从网络上下载了别人的txt切割器。算法各异,可是有的东西效率明明很低。可是我依然服气别人,因为那个时候我啥都不会。直到此刻我依然服气,因为我仍然不会做一个那样的软件,因为从来就没有实验过。

逐步地,DEDECMS织梦官网,打仗了C语言,打仗了关于文件的操纵。溘然间有了本身去写一个措施完成这个成果的想法。当初笨的可以,花了不知道几多天才完成这个玩意儿。算法是最简朴的,谁都能够想到的算法,一如本日的M措施代码。

事情之后,从事了软件集成的事情,有时候批处理惩罚、剧本等各类对象都得上阵。近几个月常常跟matlab打交道,又是各类文件处理惩罚代码。事情之中猛然间有种想法,回味一下大学时候的糊口,把这个切割器的小成果再实现一次。只不外,这次不是用C语言,而是在matlab上通过M剧本。

这次较量顺利,剧本用了不到一小时的时间写完并简朴测试乐成。算法依然是老掉牙的蠢人式算法,后头会附上代码。此刻先说一下这个剧本怎么用。

1.把剧本cutter.m跟要切割的电子书放到matlab的事情路径之下;

2.运行剧本,OK。

需要留意的是这个路径之中只能有一个txt文档,否则会呈现错误。

实际演示一下:

我的事情路径是F:\My Baby\cutter,切割的电子书为随遇而安。我在淘宝的淘宝念书上买过这本书,此刻是从网上下载了一个txt名目书,传说中的盗版?或者吧!看图:

image

运行剧本cutter.m,选择Run File

image

发明文件夹中多了切割的字文件,DEDEcms织梦视频教程,这就是我们要的功效,在左侧路径下可以看到。

image

好啦,以下是我的代码,代码较量简朴,不添加注释了。

clear;
clc;
files_cell = ls;
size_files = size(files_cell);
long = size_files(2);
wide = size_files(1);
word_number_block = 5000;
file_name = '';
text_block = '';
k = 0;
for i = 1:wide
    for j = 1:long
        if long ~= j
            file_name = strcat(file_name,files_cell(i,j));
        else
            book_name_test = file_name;
            file_name = '';
            txt_match = regexp(book_name_test,'.txt','match');
            if ~isempty(txt_match)
                book_name_txt = regexp(book_name_test,'.txt','split');
                book_name = char(book_name_txt{1,1});
                break;
            end
        end
    end   
end
book_name_read = strcat(book_name,'.txt');
text = fileread(book_name_read);
number_word = length(text);
blocks_number_cal = number_word/word_number_block;
blocks_number_test = fix(number_word/word_number_block);
if blocks_number_test == blocks_number_cal
    blocks_number_real = blocks_number_test;
elseif blocks_number_test < blocks_number_cal
    blocks_number_real = blocks_number_test + 1;
end
for i = 1:blocks_number_real
    block_name = strcat(book_name,int2str(i));
    block_name_write = strcat(block_name,'.txt');
    fid = fopen(block_name_write,'w');
    for j = (word_number_block*(i-1)+1):(word_number_block*(i-1)+5001)
        k = k+1;
        if k <= number_word
            fprintf(fid,'%s',text(k));
        else
            break;
        end
        if word_number_block*(i-1)+5001 == j
            fclose(fid);
        end
    end
end

fclose('all');

至于切割其他名目的文档,把代码中匹配.txt名目语句中的txt改成相应名目的扩展名就行了。word_number_block数值的修改可以用于调解每个支解块儿的字数。

感谢支持织梦之家,你的支持,我们的无限动力!!!
    “DEDECMS教程”欢迎分享!:

    相关标签:

    顶一下
    (0)
    0%
    踩一下
    (0)
    0%

    欢迎您报错,或提出宝贵建议,我们将第一时间处理,为大家营造一个良好网上交流平台,感谢支持织梦之家!

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    验证码: 点击我更换图片