Lua读取和写入文件处理例子

一、文件读存:

代码如下:

-- 似乎不支持大文件(不能超过9k?)
function FileSaveLoad()
      local file = io.open("c:\\in.lua", "r");
      assert(file);
      local data = file:read("*a"); -- 读取所有内容
      file:close();
      file = io.open("c:\\out.lua", "w");
      assert(file);
      file:write(data);
      file:close();
end
FileSaveLoad();

二、非循环表格处理:

代码如下:

HERO = 1;
MONSTER = 2;
BUILDING = 3;
SUMUNIT = 4;
cha = {};
cha[1] =
{
      basic =
      {
      Name = "农民",    --NPC名字
      cha_type = HERO,  --NPC模型
      },
      combat =
      {
       acquire = 600.00,  --主动攻击范围
       basic_def = 10,   --基础防御
      },
};

function SaveTableContent(file, obj)
      local szType = type(obj);
      print(szType);
      if szType == "number" then
            file:write(obj);
      elseif szType == "string" then
            file:write(string.format("%q", obj));
      elseif szType == "table" then
            --把table的内容格式化写入文件
            file:write("{\n");
            for i, v in pairs(obj) do
                  file:write("[");
                  SaveTableContent(file, i);
                  file:write("]=\n");
                  SaveTableContent(file, v);
                  file:write(", \n");
             end
            file:write("}\n");
      else
      error("can't serialize a "..szType);
      end
end

function SaveTable()
      local file = io.open("e:\\00_00_00_海外组_学习\\写入.txt", "w");
      assert(file);
      file:write("cha = {}\n");
      file:write("cha[1] = \n");
      SaveTableContent(file, cha[1]);
      file:write("}\n");
      file:close();
end

SaveTable();

(0)

相关推荐

  • Lua极简入门指南(三): loadfile和错误处理

    编译 Lua 虽然是解释性语言,但 Lua 源码总是被编译为中间形式后再执行. dofile 用于载入并执行一个 Lua 文件,相比之下,loadfile 用于载入一个 Lua 文件,但并不执行,确切的说 loadfile 编译了一个 chunk,并返回此被编译的 chunk(被作为一个函数): 复制代码 代码如下: c = loadfile('./test.lua') c() dofile 可以被实现为: 复制代码 代码如下: function dofile(filename)     loc

  • Lua函数与字符串处理简明总结

    函数的定义是以function关键字开始的,后面函数的名称,然后是要传递给函数的参数,如果没有参数传给函数,仍然需要用()来表示一个空的参数列表,以end关键字结尾. 复制代码 代码如下: function 函数名()  ...  ...  ... end 1. 单一参数 复制代码 代码如下: function F_1(var)  print("My website is: "  var) end 参数var传递给了函数,并在函数中使用,同时,函数中的参数是局部变量,在函数调用结束后被

  • Lua中的异常处理pcall、xpcall、debug使用实例

    如果需要在Lua中处理错误,必须使用函数pcall(protected call)来包装需要执行的代码. pcall接收一个函数和要传递个后者的参数,并执行,执行结果:有错误.无错误:返回值true或者或false, errorinfo 复制代码 代码如下: if pcall(function_name, -.) then -- no error else -- some error end 简单示例 复制代码 代码如下: > =pcall(function(i) print(i) end, 3

  • 浅析Lua编程中的异常处理

     需要进行错误处理 错误处理是必要的,因为真实世界中的操作通常需要使用复杂的操作,包括文件操作,数据库事务和web服务调用.没人关心错误的业务,涉及保密信息或金钱交易时造成大的损失. 在任何编程,总是有错误处理的要求.错误可以是两种类型,其中包括, 语法错误 运行时错误 语法错误 因使用不当造成的各种程序组件,如运算符和表达式中出现语法错误.一个简单的例子中的语法错误如下所示. 复制代码 代码如下: a == 2 如你所知,有使用单一等于和双等于之间的差异.使用一个替代其他可导致错误.等于是指分

  • Lua中简单的错误处理实例

    昨天遇到另外一位独立游戏开发者,所以多聊了一会,然后-然后就没有看书了.(小若:借口!借口!)   今天来聊聊错误处理吧,不过毕竟这只是前面的章节,书上的内容似乎有点一笔带过的味道. 没关系,简单更好~ 1.红色警报--error 我们应该能经常看到类似以下的错误信息: 复制代码 代码如下: [LUA-print] LUA ERROR: [string "src/main.lua"]:108: [string "src/main.lua"]:89: attempt

  • lua日志文件处理代码

    目前我找到的文件夹的搜索工具,最多可以完成把搜索到的单行的内容,进行输出出来,或者进行一些简单的处理,但是不够灵活. 因此就用lua自己写了个,可以完成自己定义搜索处理函数,进行一些数据的处理,省去了将搜索结果放到excel中再处理的过程. -- search_log.lua tbResult = {}; tbCmdResult = {}; local szTmpFolderPath = os.getenv("temp"); if not szTmpFolderPath then os

  • Lua读取和写入文件处理例子

    一.文件读存: 复制代码 代码如下: -- 似乎不支持大文件(不能超过9k?) function FileSaveLoad()       local file = io.open("c:\\in.lua", "r");       assert(file);       local data = file:read("*a"); -- 读取所有内容       file:close();       file = io.open("c

  • Java读取、写入文件如何解决乱码问题

    读取文件流时,经常会遇到乱码的现象,造成乱码的原因当然不可能是一个,这里主要介绍因为文件编码格式而导致的乱码的问题.首先,明确一点,文本文件与二进制文件的概念与差异. 文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码.ANSI编码等等.二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码.) 因此可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8).而二进制文件可看成是变长编码的,因为是值编码嘛,多少

  • python 同时读取多个文件的例子

    Python中打开文本使用的是with语句,比如打开一个文件并读取每一行 with open(filename) as fp: for line in fp: # do something 为了同时读取多个文件,可以使用下面的代码 with open(filename1) as fp1, open(filename2) as fp2, open(filename3) as fp3: for l1 in fp1: l2 = fp2.readline() l3 = fp3.readline() #

  • PHP Swoole异步读取、写入文件操作示例

    本文实例讲述了PHP Swoole异步读取.写入文件操作.分享给大家供大家参考,具体如下: 异步读取文件:swoole_async_readfile 异步写入文件:swoole_async_writefile [示例] 读取文件 readfile.php: <?php $res = swoole_async_readfile(__DIR__."/1.txt", function($filename, $content) { echo "文件名:{$filename} 内

  • Node.js readline 逐行读取、写入文件内容的示例

    本文介绍了运用readline逐行读取的两种实现,分享给大家,具体如下: 什么是Readline Readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流.使用require("readline")可以引用模块. 效果图如下: 左边1.log 为源文件 右边1.readline.log为复制后的文件 下边为命令行输出 实现方式一: var readline = require('readline'); var fs = require

  • Java读取其下所有文件夹与文件路径的方法

    Java读取其下所有文件夹与文件的路径,具体内容如下 如果在f:\aa文件夹中,有如下图的文件夹与文件: 那么,在Java中,则如此读取f:/aa下的所有文件路径: 1.首先由于用到了文件与容器类下的ArrayList,所以在开头要引入如下包: import java.io.*; import java.util.*; 2.方法如下,其中File dirFile除了盘符,比如f:,以外,能够接受一切合法的路径.由于盘符下含有一些系统文件,拒绝访问,因为读取盘符,可能会出现空指针异常. //这里是

  • JavaScript实现写入文件到本地的方法【基于FileSaver.js插件】

    本文实例讲述了JavaScript实现写入文件到本地的方法.分享给大家供大家参考,具体如下: 工作中有时需要通过 JavaScript 保存文件到本地,我们都知道 JavaScript 基于安全的考虑,是不允许直接操作本地文件的. IE 可以通过 VB 插件的方式进行,而 Chrome 和 firefox 都不支持 JavaScript 向本地写入文件,所以 VB 插件的方式存在兼容性问题. 那有没有适合的方法呢?答案是肯定的,我们可以通过 FileSaver.js 这个小插件实现我们的需求.下

  • php笔记之:有规律大文件的读取与写入的分析

    这几天在做一个东西.研究PHP读取行数较多的文件(大概上百万行).考虑到效率问题.进行了简单的研究.总结如下 第一条.file()函数的效率问题. file()函数的效率很底下 如果是有规律的文件.比如每行一条相应数据.那么尽量不要是用file()函数 可以使用file_get_contents()然后用explode切割.这样效率会快三分之一 举个例子: 文件样式如下: 11111\n 22222\n 33333\n 44444\n 55555\n .....\n nnnnnnnnnnn\n

  • c++读取和写入TXT文件的整理方法

    如下所示: #include "stdafx.h" #include <iostream> //无论读写都要包含<fstream>头文件 #include <fstream> #include <iomanip> using namespace std; int main() { //ifstream从文件流向内存的ifstream表示文件输入流,意味着文件读操作 ifstream myfile("c://a.txt"

  • 创建Shapefile文件并写入数据的例子

    基本思路 使用GDAL创建Shapefile数据的基本步骤如下: 使用osgeo.ogr.Driver的CreateDataSource()方法创建osgeo.ogr.DataSource矢量数据集 使用osgeo.ogr.DataSource的CreateLayer()方法创建一个图层 使用osgeo.ogr.FieldDefn()定义Shapefile文件的属性字段 创建osgeo.ogr.Feature对象,设置每个属性字段的值,使用Feature对象的SetGeometry()定义几何属

随机推荐