2012-01-22 10 views
3

バイナリファイルからチャンクを読み込もうとしています。しかし、コード内に0x0Aがあるときはいつでも、Luaは0x0Dを挿入して改行してファイルを保護します。どうすればそれを防ぐことができますか?私は、バイナリファイルを書くためのいくつかのソースコードをチェックアウトし、同じio.write()関数を使用します。私はまだルアが新しいので、何かが恋しくなるかもしれません。ここに私のコードは次のとおりです。Lua:バイナリコードでのキャリッジリターンの防止

file=io.open(filepath,'rb') 
file:seek("set") 
file:seek("cur",startoffset) 
filecontent=file:read(endoffset-startoffset) 
io.output(test.tmp) 
io.write(filecontent) 

答えて

3

私はバイナリファイルを書き込むために、いくつかのソースコードをチェックアウトし、それらが同じio.write()を使用 - 私は機能を。

いいえ、そうではありません。彼らはfile:writeを使用します。違いがあります。 1つは与えられたファイルハンドルに作用します。もう1つは、 "default output file"で動作し、常にというテキストとして開かれます。それをクリアするための

local file = assert(io.open(filepath, "rb"), "Could not open file for reading.") 
local filecontent = file:read("*a") 
file:close() 
file = assert(io.open("temp.tmp", "wb"), "Could not open file for writing.") 
file:write(filecontent) 
file:close() 
+0

ありがとう:

何をしたいの正しいLuaのコードはこれです!今はすべて期待どおりに動作します:) – Zerobinary99

関連する問題