2012-07-28 31 views
-3

我有一個從特定的遺留程序序列化的對象,幾乎沒有類型的文檔。從Ruby中反序列化一個未知的對象

我想數據提取到一個可讀結構到C#

我試着:

  • 打開文件中的一個十六進制編輯器和分析的內容;他們是亂碼,而不是很清楚
  • 沒有太多的描述,大概壓縮

我所知道的:

  • 什麼文件表示
  • 我可以加載(只要我還是要說變化t打破任何校驗和或任何東西)到遺留應用程序
  • 它已被串行化紅寶石
+2

'有沒有更好的方法來處理這個,然後我現在呢?'我無法理解你的*方法*來提出一個更好的方法。你有什麼嘗試?爲什麼耗時?數據是什麼?什麼是格式?沒有機會直接在C#中讀取? – 2012-07-28 20:55:55

+0

讓我更清楚一點。 我已經做了這個文件的各種副本,並嘗試逐個編輯值並在文件中找到它們的偏移量。但是,一些數據變得非常複雜;並有很多不同的變量。有問題的數據是RPG遊戲的數據文件。正如我所說的,格式是經過一些研究後的序列化Ruby結構或類 - 但除此之外,我不確定它是什麼。 我一直在嘗試重建Ruby中的類,所以我可以序列化它回來..然後將其保存到我想要的格式。不過,也許我可以直接讀取二進制流。 – 2012-07-28 21:04:40

+0

請參閱黃金法則[here](http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx) – 2012-07-28 21:27:26

回答

0

您不應該使用C#來反序列化文件。你應該unmarshal the data in a Ruby program。然後,您的Ruby程序可以用C#可以輕鬆讀取的語言中性格式(即json,xml等)發出它。

+0

所以我最好的選擇是找到這個Ruby類所暴露的所有字段,從它們中構建一個類,然後嘗試去除它。 – 2012-07-28 22:41:23

+0

@Vaughan,這是我的想法。如果您有權訪問正在創建文件的遊戲,則編組文件中表示的Ruby類可能實際上可供您使用。如果你能找到這些,工作變得更容易。 – 2012-07-29 00:06:12

相關問題