1. lua語言,怎麼讀取,txt,文本中的中文字。在輸出,怎麼寫
如果你的腳本編碼是 gb2312的(默認notepad就是,但是有些第三方的文本編輯器默認是utf-8),那直接讀寫就行啦專。屬(除非你的操作系統是英文版!)
local nf = io.open('new.txt')
for line in io.lines('oldfile.txt') do
nf:write(line)
end
nf.close()
如果你需要轉碼(gbk <->utf-8),那就需要使用 lua iconv這個庫
2. 求個能用的LUA讀取或者寫入記事本內容的代碼,
--main.lua
--讀
file = io.open("1.txt",'r')
t = file:read("*all")
print(t)
file:close()
--寫
file2 = io.open("2.txt",'w')
file2:write(t)
file2:close()
我博客的文專章屬
http://www.cnblogs.com/makegame/archive/2013/01/18/2867064.html
3. lua 如何 讀取文本的每一行,輸入到指定的變數里
local file = assert( io.open( "F:/filename.txt" , "r" ) );
local result = {};
for line in file:lines() do
result[#result+1] = line;
end
file:close() --看情況關閉與否
至於你說的賦給變數 就從result裡面取出來就ok了,專key就是行號屬。
4. lua 怎麼讀取txt文件最後一行內容
【1】最簡單的 就是不考慮文本大小,一次性讀入,然後正則匹配
localtext=[[
lua怎麼讀取txt文件最後一行內容?
1讓io.lines走到最後然後再讀取可以么?
2或者怎麼用find方法找出符合條件的最後一個字元串後面的內容?
3就是怎麼找到正則表達式最後一個匹配到的結果?
]]
localpath=[[d:1.txt]]
--[==[
assert(notio.open(path,"r"),"Tempfilealreadyexists!")
--寫測試文件
localfile=io.open(path,"w+")
file:write(text)
file:close()
--]==]
localfile=io.open(path,"r+");
localtext=file:read("*all");
localregex="([^ ]+)$"--匹配最後一行,最後一行為空行,則找不到
localregex="([^ ]+)[ ]*$"--匹配最後一行有效文本$表示匹配字元串結尾位置
forlineinstring.gmatch(text,"([^ ]+)[ ]*$")do
print(line)
end
file:close();
【2】如果文件超大,內存不夠一次性讀入文件,效率低點可以 按行遍歷,找到行,在檢查條件等等
考慮效率 應該 利用文件指針,先計算文件大小,然後分析出 讀入文件塊的大小,比如說 按8K讀入,然後從文件尾向前推8K,一次性讀入該字塊,然後搜索換行符,如果找不到 繼續遞推讀入直到找到換行,如果有換行,就轉換成第一步 正則匹配
【附錄】
--文件指針操作
localcur_pos=file:seek()
file:seek("end")
file:seek("set",pos)
--由於單行讀取遍歷
localfile=io.open(path,"r+");
forlineinfile:lines()do
last_line=line
end
5. 使用Lua寫二進制數據文件,該怎麼處理
1、假設有一個很多行文本的文件,想從中讀取一行,並列印到屏幕上。可以使用 io.open() 命令打開文件並讀取。
命令的語法是 io.open(filename, mode)。此處將使用 r 作為 mode 的值,意指讀取(read)模式。作為參考,下面是所有可用模式的列表:
引用:
r - 讀取模式w - 寫入模式(覆蓋現有內容)
a - 附加模式(附加在現有內容之後)
b - 二進制模式
r+ - 讀取更新模式(現有數據保留)
w+ - 寫入更新模式(現有數據擦除)
a+ - 附加更新模式(現有數據保留,只在文件末尾附加)
第一件要做的事情就是打開文件並存為一個變數。看下面。
代碼:
file = io.open("testRead.txt", "r")
*n - 讀取一個數字並返回它。例:file.read("*n")
*a - 從當前位置讀取整個文件。例:file.read("*a")
*l - (默認) - 讀取下一行,在文件尾 (EOF) 處返回 nil。例:file.read("*l")
number - 返回一個指定字元個數的字元串,或在 EOF 時返回 nil。
2、常式:
out=io.open("text.dat","wb")
for i=0,255 do
local x=string.char(i)
out:write(x)
end
out:close()
6. lua語言怎麼讀取文本的數據後在刪除文本裡面的數據
讀文件就用正常的方法就好
刪文件用命令行操作符就行
os.execute("del xxxx.txt")
當然 要記得跟上你的路徑
7. lua 對文本文件操作的問題
您好,這樣的:寫的一個關於遍歷文件的程序段 記錄一下咯
--[[檢查所有.txt文件
比如A.txt中第一行規定有20列,但是在X行中多輸入一個Tab,則輸出:A表的X行填寫不規范,行末有多餘填寫
]]
getinfo = io.popen('dir ..//file /b /s')
all = getinfo:read('*all')
local filenameList = io.open("filename.txt", "wb")
filenameList:write("Path/n")
filenameList:close()
filenameList = io.open("filename.txt", "a")
filenameList:write(all)
io.close(filenameList)
io.close(getinfo)
local filenameList = tab.Open([[../filename.txt]], "Path", false)
for index, Row in ipairs(filenameList) do
local pathlist = Row["Path"]
local rowString = string.find(pathlist, ".txt")
if rowString ~= nil and rowString ~="" then
moon.CheckRowlength(pathlist, pathlist)
end
end
io.popen('dir /b /s')是windows下的,通過執行命令行dir獲得
io.popen('ls')是linux下的
8. 怎樣使用lua讀取文件夾內所有文件
3年半了都沒人回答你,我來幫你關閉吧
9. lua語言 如何讀取一個文件中的內容(裡面是應用路徑),然後打開對應的文件。
import java.io.*;
public class test implements Runnable{
private File file = null;
public test(File file){
this.file = file;
}
public void run(){
//此裡面執行對txt文件的操作
}
public static void main(String[] a){
File f = new File("你的文件夾路徑");
//返回該文件夾下所有文件的名稱列表版
String[] name = f.list();
for(int i=0;i<name.length;i++){
//比較名稱後四位是否權是.txt如果是則開啟新的線程來處理文件
if(name[i].substring(name[i].length()-4,name[i].length()-1).equals(".txt")){
File fl = new File(name[i]);
test tst = new test(fl);
Thread t = new Thread(tst);
t.start();
}
}
}
}
10. LUA文件讀取問題,大神來幫幫忙看看有沒有解決方法
直接使用 file:seek函數跳轉到指定位元組的位置讀取。
#!/usr/bin/lua
package='package'
localF
localhead_offset=512
localerr
localnewfile=io.open('a.out','w')
F,err=io.open(package,'r')
iferrthen
print("openfilefailed!:",err)
else
--單位元組處理
--localbyte
--F:seek('set',head_offset)
--byte=F:read(1)
--whilebytedo
--newfile:write(byte)
--byte=F:read(1)
--end
--bytes=F:read("*a")
--newfile:write(bytes)
--整個文件處理
localbytes
F:seek('set',head_offset)
bytes=F:read("*a")
newfile:write(bytes)
F:close()
newfile:close()
end
這時生成的 a.out 文件 就是去除頭部的文件了。