1. 程式人生 > >Cocos2d-x資料篇05:CSV檔案解析

Cocos2d-x資料篇05:CSV檔案解析

http://cn.cocos2d-x.org/tutorial/show?id=2428

【前言】

在一個遊戲中,通常會有很多怪物、關卡、技能等資料,這些資料不可能在程式碼裡寫死,一般都會使用配置檔案儲存,使用時再載入到記憶體。

CSV檔案編輯起來十分簡單,所以常常用來配置遊戲的資料資訊。

本文要介紹的是:如何讀取CSV檔案格式的資料。

【CSVParser解析器下載】

【CSV簡介】

1、什麼是CSV?

CSV,即逗號分隔值(Comma-Separated Values)。有時也稱為字元分隔值,因為分隔字元也可以不是逗號,可以是分號;),其檔案以純文字形式儲存表格資料(數字和文字)。

這種檔案格式經常用來作為不同程式之間的資料互動的格式。

CSV格式資料的結構類似表格,不同的記錄佔用一行,一行中的欄位用“,”(逗號)分隔。

例如:

wKiom1Ti7XiR0Wo3AACOweh2Ok4964.jpg

2、編輯CSV檔案

在Mac OS系統上,可以使用 Numbers 來建立表格檔案,然後再儲存為csv格式的檔案即可。

在Windows系統上,可以使用 Excel 來編輯csv檔案。

當然你也可以使用其他csv編輯軟體。

(1)使用Numbers軟體,可以很方便的編輯表格資料。

wKiom1Ti6-6RiF-CAADJNTtOcJk720.jpg

(2)儲存為csv格式檔案。

wKioL1Ti7ebhC69vAAEnBQvoqmk171.jpg

(3)開啟匯出的csv檔案,可以發現每條資料佔一行,並且每一行的資料用逗號分割。

wKiom1Ti7XiR0Wo3AACOweh2Ok4964.jpg

3、CSV格式規則

(1)開頭是不留空  ,以行為單位。

(2)每條記錄佔一行,以逗號為分隔符。列為空也要表達其存在。

(3)可含或不含列名,如果含列名則居檔案第一行。

(4)一行資料不跨行,無空行。

(5)欄位中包含有逗號符,該欄位必須用雙引號括起來。

(6)欄位中包含有換行符,該欄位必須用雙引號括起來。

(7)欄位前後包含有空格,該欄位必須用雙引號括起來。( a b c ==> "a b c")

(8)欄位中的雙引號,用兩個雙引號表示。( 我說:"abc"。 ==> 我說:""abc""。 )

(9)欄位中如果有雙引號,該欄位必須用雙引號括起來。( 我說:"abc"。 ==> "我說:""abc""。" )

PS:中文的逗號、雙引號不需要用雙引號包起來。

可以看看如下的例子:

wKioL1Ti-sehF6onAAF9vnmiai0660.jpg

4、為什麼使用CSV?

(1)CSV檔案格式佔用空間比較小,是文字檔案。

(2)CSV檔案可以用記事本開啟,編輯修改方便。同時也可以用Excel開啟。

(3)遊戲專案中,策劃通常喜歡用 Excel 做數值和配置。 Excel可以直接另存為CSV檔案。

(4)配置也可以用xml。Excel同樣可以匯出xml檔案格式。xml不錯,但C++的標準庫沒有xml的讀取方法。通常C++專案讀xml需要依賴第三方庫。例如:TinyXml之類的。

【CSV解析】

這裡介紹一下C++版本的CSV解析。

注意:CSV檔案的編碼格式,如在手遊中一般使用 UTF-8 編碼格式。

以下CSV解析的程式碼,是在這篇博文(連結)的基礎上,進行的修改。

使用C/C++標準庫編寫的,不依賴Cocos2d-x裡面的任何一個類或函式

這樣的好處是,增強了CSV解析的通用性,即使在編寫控制檯應用程式,也可以正常使用。

1、CSVParser.h

(1)名稱空間:CSVParser

(2)Row類:一行的資料記錄。已過載 [] 運算子,可以通過“鍵值對”方式獲取資料值。

(3)Csv類:解析csv檔案。已過載 [] 運算子,可以像陣列一樣獲取資料值。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69

相關推薦

Cocos2d-x資料篇05CSV檔案解析

http://cn.cocos2d-x.org/tutorial/show?id=2428 【前言】 在一個遊戲中,通常會有很多怪物、關卡、技能等資料,這些資料不可能在程式碼裡寫死,一般都會使用配置檔案儲存,使用時再載入到記憶體。 CSV檔案編輯起來

【玩轉cocos2d-x之十二】plist解析工具Anti_TexturePacker

之前拿了一些別人的圖片素材,是用TexturePacker打包合成的,結果寫程式的時候不知道每個合成前小png圖的名字是什麼,只能一個一個從plist檔案中找,然後猜測對應的名字,再進行顯示,如果不對,

我學cocos2d-x (三) Node一切可視化對象的祖先

父類 顯示 fine rtu cocos2 static trac 坐標 ati 在cocos2d-x中一切可視化的對象都繼承自Node(如文字(label)、精靈(sprite)、場景(scene)、布局(layer))。這是一個純虛類。主要負責決定元素顯示的位置

C語言面向物件程式設計配置檔案解析(6)

在實際專案中,經常會把軟體的某些選項寫入配置檔案。 Windows 平臺上的 INI 檔案格式簡單易用,本篇文章利用《C語言面向物件程式設計(五):單鏈表實現》中實現的單鏈表,設計了一個“類” ini_parser 來讀寫 INI 格式的配置檔案。     

微服務 SpringBoot 2.0(二)配置檔案解析

properties我用了好多年,你卻讓我用yml,這是什麼鬼 —— Java面試必修 引言 上一篇介紹了Spring Boot的輕鬆入門專案構建,對Spring Boot的特性有了初步瞭解。但如果要想玩得很熟練的話就請看接下來的文章,這樣有助於後續我們快速

技術總結XML檔案解析

近期整理了以前的程式碼,將XML檔案的解析程式碼程式設計了一個工具。通過Document類得到一個NodeList,遍歷其得到標籤,通過標籤得到XML檔案的內容。利用抽象方法提供給使用者處理檔案的介面。程式碼如下: /* * @auther yc * 2018/10/1

使用nodejs解析xlsx、csv檔案轉換成JSON檔案詳細教程(含解決解析xlsx、csv檔案解析中文亂碼問題)

前言 最近工作中需要,領導給我一個csv檔案,讓我轉為JSON格式的檔案,決定使用nodejs來搞定,個人覺得這是用過的最簡單的方式;即使你沒用過node也可以通過本教程完成實現。你可能沒見過比這再詳細的教程文章了。可以收藏、轉載(轉載註明出處即可,不用與本人聯絡,大家分享學習,共同進步

C#開發小試手----小功能csv檔案儲存

需求:將頁面dataGridView裡的表格存入本地csv檔案 本例的dataGridView裡的資料由於已經存在DataTable中,故直接出用即可。 1.建立表頭 由於DataTable,未將表頭存入,故在此進行表頭的定義。 public void Cr

Spring Boot乾貨系列配置檔案解析

正文 Spring Boot使用了一個全域性的配置檔案application.properties,放在src/main/resources目錄下或者類路徑的/config下。Sping Boot的全域性配置檔案的作用是對一些預設配置的配置值進行修改。 接下來,讓我們一起來解開配置檔案的面紗

iOS-解析讀取CSV檔案,解析excel檔案

專案中可能會遇到資料庫中匯出CSV格式資料,類似於如下圖: 需要將csv資料匯入程序序中使用,或者寫入本地資料庫檔案中. *什麼是CSV? CSV,即逗號分隔值(Comma-Separ

Windows環境下製作cocos2d-x的release版本簽名檔案

1.keytool是j2ee裡面的一個工具 直接在命令列下,就可以使用 使用keytool,命令如下: keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -k

一個簡單的BitTorrent客戶端實現(二)種子檔案解析及資訊儲存

關於種子檔案 BT的種子檔案一般是以.torrent作為字尾的。關於種子檔案的編碼,這裡不再做任何介紹。本程式採用的測試種子檔案為ubuntu-14.04.3-desktop-i386.torrent,各位可以到http://mirrors.163.com/u

cocos2dx遊戲開發學習——CSV檔案解析

在cocos2dx專案中,我們經常會用到CSV檔案。這裡直接上程式碼。 ALCsvUtil.h /** * CSV 解析工具 */ #ifndef ALCsvUtil_h #define ALCsvUtil_h #include <vect

Cocos2d-x】之編譯so檔案出錯

現在用的是cocos2d-x3.6版本,這個版本新建的工程第一次在eclipse上跑的時候,會出現找不到Cocos2d-x在Android平臺的Java類,錯誤如圖: 這些類位於:<遊戲工程路

Cocos2D-X學習3建立一個新的場景

1、建立cocos專案 首先使用cocos-console建立一個專案工程,在命令列視窗下輸入cocos new  -p CocosProject01 -l cpp -d D:\cocos2d-x-3

Python模組配置檔案解析器configparser

python 讀寫配置檔案ConfigParser模組是python自帶的讀取配置檔案的模組,通過他可以方便的讀取配置檔案。注意,在python3中ConfigParser模組被改名為configparser了。寫個專案,用到資料庫,多個地方使用,不能硬編碼。很類似java的

cocos2d-x如何實現plist圖集檔案的呼叫

首先說說我們的普通的生成精靈的方式: CCSprite *mSprite = CCSprite::create(“name.png”); mSprite->setPosition(ccp(PositionX.PositionY)); this->addChild(mSprite,層級,標籤);

nodejscsv模組解析

 Nodejs最大的特點就是基於事件驅動和非同步併發操作。大多數人知道nodejs是用於網路後臺服務的新平臺,可以很方便的提供後臺服務;除了用於網路開發外,其實nodejs對於線下檔案併發處理也是很方便的,不同於C++、java,利用nodejs可以快速的搭建讀寫框架,實現檔

Spring Boot 2.x基礎教程實現檔案上傳

檔案上傳的功能實現是我們做Web應用時候最為常見的應用場景,比如:實現頭像的上傳,Excel檔案資料的匯入等功能,都需要我們先實現檔案的上傳,然後再做圖片的裁剪,excel資料的解析入庫等後續操作。 今天通過這篇文章,我們就來一起學習一下如何在Spring Boot中實現檔案的上傳。 ## 動手試試 *

Cocos2d-x 3.x中讀取csv資料檔案

遊戲開發中,資料檔案通常是儲存在xml,json,csv等格式的檔案中,這裡實現了CSV檔案的解析。 1.為什麼是CSV?    資料檔案為什麼儲存在CSV檔案中呢?    a,同樣的資料放到CSV中要比放在xml和json中要小。    b,CSV的解析也比較簡單。