校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > lua日志文件處理代碼

lua日志文件處理代碼

熱門標簽:衡水外呼線路解決 艾比利外呼系統 杞縣地圖標注app 海口智能語音電銷機器人好用嗎 電話機器人每天搜索多少次 外呼系統一天耗費多少流量 陜西便宜電銷機器人軟件 昆明電話外呼系統好么 免費門店地圖標注注冊入駐

目前我找到的文件夾的搜索工具,最多可以完成把搜索到的單行的內容,進行輸出出來,或者進行一些簡單的處理,但是不夠靈活。

因此就用lua自己寫了個,可以完成自己定義搜索處理函數,進行一些數據的處理,省去了將搜索結果放到excel中再處理的過程。

-- search_log.lua

tbResult = {};
tbCmdResult = {};

local szTmpFolderPath = os.getenv("temp");
if not szTmpFolderPath then
 os.execute("md c:\\temp")
 szTmpFolderPath = "c:\\temp";
end

local tbSpecialWorld =
{
 ["("] = "%(", [")"] = "%)", ["."] = "%.", ["%"] = "%%",
 ["+"] = "%+", ["-"] = "%-", ["*"] = "%*", ["?"] = "%?",
 ["["] = "%[", ["]"] = "%]", ["^"] = "%^", ["$"] = "%$",
};
function FormatCmd(szCmd)
 return string.gsub(szCmd, ".", function(s) return tbSpecialWorld[s] or s; end)
end

function FormatPath(szPath)
 string.gsub(szPath, "[\\/]$", "");
 return string.gsub(szPath, "/", "\\");
end

function CheckFile(szFilePath)
 local file = io.open(szFilePath, "rb");
 if not file then
   return;
 end
 file:close();
 return true;
end

function OpenFile(szFilePath)
 if not CheckFile(szFilePath) then
   return;
 end

 local tbFile = {};
 for line in io.lines(szFilePath) do
   table.insert(tbFile, line);
 end

 return tbFile;
end

function SearchFile(szFilePath, szCmd, fnCmd2Line, fnFileName)
 local tbFile = OpenFile(szFilePath);
 if not tbFile then
   return;
 end

 tbResult[szFilePath] = tbResult[szFilePath] or {};
 local szCmdResult = "";
 for nLine, szLine in ipairs(tbFile) do
   if string.match(szLine, szCmd) then
     szCmdResult = fnCmd2Line(szLine);
     if szCmdResult and szCmdResult ~= "" then
       table.insert(tbCmdResult, szCmdResult);
     end
     table.insert(tbResult[szFilePath], nLine .. ":" .. szLine);
   end
 end

 return 1;
end

function Cmd2Line(szLine)
 return;
end

function CheckName(szFileName)
 return true;
end

function SearchDir(szFolderPath, szCmd, fnCmd2Line, fnCheckName, nIdx)
 if not szCmd or szCmd == "" then
   return;
 end

 local fnCmd2Line = fnCmd2Line or Cmd2Line;
 local fnCheckName = fnCheckName or CheckName;
 local nIdx = nIdx or 0;

 local szTmpFileName = szTmpFolderPath .. "\\SearchDirTemp" .. nIdx .. ".tmp";
 os.execute("dir /b ".. szFolderPath .." >" .. szTmpFileName);

 local tbFile = OpenFile(szTmpFileName);
 if not tbFile or #tbFile == 0 then
   return;
 end

 local szPath = "";
 for _, szFileName in ipairs(tbFile) do
   szPath = szFolderPath .. "\\" .. szFileName;
   if not CheckFile(szPath) then
     SearchDir(szPath, szCmd, fnCmd2Line, nIdx + 1);
    else
      if CheckName(szFileName) then
        SearchFile(szPath, szCmd, fnCmd2Line);
      end
    end
  end
end

function Write2File(szInfo, szFilePath)
  local file = io.open(szFilePath, "w");
  if not file then
    print(szInfo);
    print("Write2File ERR ?? not file " .. szFilePath);
    return;
  end

  file:write(szInfo);
  file:close();
end

function DoSearchDir(szFolderPath, szCmd, tbParam)
  if not szFolderPath or szFolderPath == "" or not szCmd or szCmd == "" then
    return;
  end
 
  tbParam = tbParam or {};

  szFolderPath = FormatPath(szFolderPath);
  if tbParam.bIsMatch then
    szCmd = FormatCmd(szCmd);
  end
  local nTime = os.time();
  SearchDir(szFolderPath, szCmd, tbParam.fnCmd2Line or Cmd2Line, tbParam.fnCheckName or CheckName, 0);
  nTime = os.time() - nTime;
  print("搜索用時:" .. nTime);

  local szResultPath = tbParam.szResultPath or (szTmpFolderPath .. "\\result.tab.tmp");
  local szResult = "";
  for szFilePath, tbInfo in pairs(tbResult) do
    szResult = szResult .. szFilePath .. "\n";
    for _, szLine in pairs(tbInfo) do
      szResult = szResult .. szLine .. "\n";
    end
  end
  Write2File(szResult, szResultPath);

  local szCmdResult = "";
  for _, szLine in pairs(tbCmdResult) do
    szCmdResult = szCmdResult .. szLine .. "\n";
  end
  Write2File(szCmdResult, tbParam.szCmdResultPath or (szTmpFolderPath .. "\\cmd_result.tab.tmp"));
end

--tbParam =
--{
--  bIsMatch = false;  -- 是否使用正則方式搜索
--  fnCmd2Line = function () end; -- 自定義搜索行內容處理函數
--  fnCheckName = function () end; -- 文件名限定函數
--  szResultPath = "e:\\result.tab"; -- 文件搜索內容輸出路徑
--  szCmdResultPath = "e:\\cmd_result.tab"; -- 自定義處理函數返回內容儲存路徑
--}

使用代碼可以如下(貌似支持網絡路徑的):

dofile("e:\\search_log.lua");
tbTmpInfo = {};
function CheckInfo(szLine)
 local szPlayerName, nPlayerId, nCount = string.match(szLine, "^.*szType = final\t[^\t]+\t%d+\t([^\t]+)\t(%d+)\t(%d+).*$");
 nPlayerId = tonumber(nPlayerId);
 nCount = tonumber(nCount);
 if nCount > tbTmpInfo[nPlayerId] then
   tbTmpInfo[nPlayerId] = nCount;
    return "" .. nPlayerId .. "\t" .. nCount;
  end
  return;
end
tbParam =
{
  bIsMatch = false;
  fnCmd2Line = CheckInfo;
  fnCheckName = function () return true; end;
  szResultPath = "e:\\result.tab";
  szCmdResultPath = "e:\\cmd_result.tab";
}
DoSearchDir("d:\\logs", "szType = final", tbParam);
for _, szInfo in pairs(tbTmpInfo) do
  print(szInfo);
end

唯一不滿意的地方貌似是搜索速度有點慢,以后有空再調整吧,現在這個暫時夠用了,至少比原來方便多了~~

您可能感興趣的文章:
  • Lua中簡單的錯誤處理實例
  • Lua中的異常處理pcall、xpcall、debug使用實例
  • Lua函數與字符串處理簡明總結
  • Lua極簡入門指南(三): loadfile和錯誤處理
  • Lua讀取和寫入文件處理例子
  • 淺析Lua編程中的異常處理

標簽:南京 西寧 臨滄 昌都 宿遷 泰安 海口 營口

巨人網絡通訊聲明:本文標題《lua日志文件處理代碼》,本文關鍵詞  lua,日志,文件,處理,代碼,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《lua日志文件處理代碼》相關的同類信息!
  • 本頁收集關于lua日志文件處理代碼的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    7777精品伊人久久久大香线蕉 | 99精品欧美一区二区蜜桃免费| 亚洲永久精品国产| 欧美极品aⅴ影院| 国产欧美一区二区三区在线老狼| 欧美猛男超大videosgay| 一本一道久久a久久精品| av亚洲精华国产精华| 国产大陆精品国产| 国模冰冰炮一区二区| 精品影视av免费| 看电视剧不卡顿的网站| 麻豆专区一区二区三区四区五区| 日本欧美在线观看| 久久se这里有精品| 国产激情一区二区三区四区| 国产成人亚洲综合a∨婷婷 | 久久久久久久久久久久久久久99| 欧美精品一区二区在线播放| 精品国产99国产精品| 久久综合九色综合97婷婷 | 91麻豆精品视频| 国产成人精品午夜视频免费| 成人妖精视频yjsp地址| 成人免费黄色大片| 色综合欧美在线视频区| 欧美日韩国产小视频| 日韩色视频在线观看| 国产亚洲欧美日韩在线一区| 亚洲天堂av一区| 三级在线观看一区二区| 国产一区二区按摩在线观看| av中文字幕不卡| 欧美精品粉嫩高潮一区二区| 精品国产一区二区三区久久久蜜月 | 三级影片在线观看欧美日韩一区二区| 亚洲成av人影院| 激情综合色综合久久综合| 成人黄色综合网站| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日韩在线播放一区| 精品国产91乱码一区二区三区| 国产精品久久久久影院老司| 三级成人在线视频| 99久久久无码国产精品| 欧美成人vr18sexvr| 亚洲欧美另类图片小说| 看国产成人h片视频| 一本久久精品一区二区| 欧美成人官网二区| 亚洲午夜av在线| 国产麻豆成人精品| 欧美日韩精品一区二区三区蜜桃| 久久久久久久电影| 日韩**一区毛片| 91丨porny丨国产| 久久综合色鬼综合色| 亚洲123区在线观看| 成人av网站在线| 日韩欧美在线不卡| 亚洲成在人线免费| 9色porny自拍视频一区二区| 精品国产麻豆免费人成网站| 亚洲无线码一区二区三区| 91麻豆精东视频| 亚洲欧洲精品成人久久奇米网| 国产一区 二区 三区一级| 欧美一区二区三区视频在线 | 亚洲成人高清在线| 色香色香欲天天天影视综合网| 久久精品免视看| 国模套图日韩精品一区二区| 日韩一区二区三区电影在线观看 | 在线不卡免费欧美| 亚洲国产视频直播| 99精品视频一区| 亚洲国产高清aⅴ视频| 精品制服美女丁香| 日韩美女主播在线视频一区二区三区 | 精品国产三级电影在线观看| 久久精品国产久精国产| 欧美sm美女调教| 久久精品国产久精国产| 精品成人免费观看| 精品亚洲免费视频| 久久精品欧美一区二区三区麻豆| 国产毛片精品国产一区二区三区| 精品伦理精品一区| 国产麻豆成人传媒免费观看| 久久精品水蜜桃av综合天堂| 粉嫩av一区二区三区粉嫩 | 国产精品污网站| 91视视频在线观看入口直接观看www| 国产精品妹子av| 色婷婷av一区二区三区大白胸| 亚洲黄色免费网站| 7777精品伊人久久久大香线蕉经典版下载 | 亚洲bdsm女犯bdsm网站| 91精品国产综合久久蜜臀| 日韩精品色哟哟| 国产亚洲欧美日韩在线一区| www.爱久久.com| 亚洲国产日韩一级| 日韩限制级电影在线观看| 国产乱人伦偷精品视频不卡| 日韩一区日韩二区| 欧美日韩成人激情| 国产乱码精品一品二品| 亚洲欧美偷拍另类a∨色屁股| 欧美三级电影一区| 激情久久五月天| 亚洲人精品午夜| 日韩欧美国产一区二区在线播放 | 色妞www精品视频| 三级亚洲高清视频| 国产精品热久久久久夜色精品三区| 欧美中文字幕一区二区三区| 久久99九九99精品| 一区二区三区国产| 久久久精品欧美丰满| 欧美日韩国产一级| 国产电影精品久久禁18| 亚洲不卡一区二区三区| 国产欧美日韩精品一区| 欧美日韩国产综合久久| 99视频精品全部免费在线| 人人精品人人爱| 亚洲免费资源在线播放| 久久午夜羞羞影院免费观看| 欧美少妇xxx| 97se亚洲国产综合自在线| 毛片av中文字幕一区二区| 亚洲午夜精品在线| 成人免费在线观看入口| 久久综合网色—综合色88| 欧美日韩黄色一区二区| 91亚洲精品久久久蜜桃网站| 黑人巨大精品欧美一区| 丝袜诱惑制服诱惑色一区在线观看 | 秋霞电影网一区二区| 一区二区三区av电影 | 久久久久国产成人精品亚洲午夜| 5月丁香婷婷综合| 91色综合久久久久婷婷| 成人免费视频一区| 韩日精品视频一区| 日本成人在线看| 日韩和欧美一区二区| 亚洲一区二区偷拍精品| 一级日本不卡的影视| 亚洲欧洲成人av每日更新| 欧美激情一区二区三区| 国产欧美日韩在线视频| 久久久91精品国产一区二区精品| 欧美成人精精品一区二区频| 欧美va亚洲va| 精品对白一区国产伦| 久久视频一区二区| 精品女同一区二区| 精品国产污污免费网站入口| 精品福利一二区| 久久亚洲精品国产精品紫薇| 国产日韩欧美制服另类| 国产欧美日本一区二区三区| 中文字幕国产一区二区| 亚洲欧洲99久久| 一区二区三区四区精品在线视频| 亚洲精品少妇30p| 天天色综合成人网| 久久精品噜噜噜成人av农村| 精品亚洲国产成人av制服丝袜| 国产高清一区日本| www.日韩av| 欧美日韩免费在线视频| 欧美一区二区视频网站| 久久伊人中文字幕| 国产精品美女久久久久久2018 | 亚洲精品久久久蜜桃| 夜夜精品视频一区二区| 日韩中文字幕1| 国产一区二区三区在线看麻豆| 国产+成+人+亚洲欧洲自线| www.亚洲免费av| 欧美丝袜自拍制服另类| 欧美大片拔萝卜| 国产精品欧美久久久久无广告 | 欧美另类变人与禽xxxxx| 欧美一区二区视频在线观看2022| 久久久久久久久久看片| 亚洲男人都懂的| 精品在线免费视频| 色综合一个色综合| 日韩欧美亚洲国产另类| 欧美激情在线观看视频免费| 亚洲一区二区三区四区在线免费观看 | 日韩视频免费观看高清完整版在线观看 | 欧美日韩卡一卡二| 国产天堂亚洲国产碰碰| 亚洲国产精品久久艾草纯爱| 国产麻豆91精品|