| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3243 人关注过本帖, 1 人收藏
标题:CSV合并的问题
只看楼主 加入收藏
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用TonyDeng在2015-3-9 22:41:40的发言:

看25樓的補充,我用的就是第二次的數據。


恩,是啊,一整個橫列都是同一型態就沒錯了,直列型態一定不會一樣,
因為有分DC和AC的測項,有些是電壓資料有些是電流資料有些是頻率資料,
也有些是機台運行中內存裡暫存器的值被導出來,可以想像是可在運行中偵錯的意思。

不要選我當版主
2015-03-09 22:50
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用TonyDeng在2015-3-9 22:45:35的发言:

我把Excel看到的圖補在25樓了,你看看。我之前說麻煩在列的分佈和次序、以及記錄數不一致,就是指這種錯位的預感。這麽一錯位,我們是不知道從哪個文檔開始錯的,又是把哪個拼上去的,拼到哪也是不知道的。不能這樣拼的吧?


順序的問題我在輸出CSV前就已經先處裡好了,只要拼起來,大致看一下(因為我大概看得懂),就知道有沒有問題了。

不要選我當版主
2015-03-09 22:52
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看25樓的截圖:543行L列,値爲128,經檢查,那是0002.csv的543行第1列,對應文檔這一列是P,但AAAA.csv中這一列卻是F。錯位了!

授人以渔,不授人以鱼。
2015-03-09 22:56
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用TonyDeng在2015-3-9 22:36:55的发言:

不要理23樓的問題,回到22樓。在0001中,最後一行是803行,也就是說,在這個文檔中拼出來的數據,在對應的列中,打803行後面,應是空的,而你的AAAA,在803後面(對應的列)是有數據的,那應該是把別的文檔錯位列拼到這裏來的吧?

你留意一下,我剛用Excel看的AAAA.csv:從529行開始,L列的數據,從浮點數變成了整數,這是對的?


而且也要看同一橫排左邊的TYPE,P的話大概往右看整排都會是浮點數或整數,F的話就不一定了,128和0和空白各代表不同意義。並不是拼錯。

不要選我當版主
2015-03-09 22:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
嗯,你確認33樓所說不是錯誤,就可以按這樣處理的方法寫程序了。


[ 本帖最后由 TonyDeng 于 2015-3-9 23:06 编辑 ]

授人以渔,不授人以鱼。
2015-03-09 22:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我現在基本明白你的意圖了,但要處理正確才行。考慮到將來的數據量,用數據庫處理是最好的。如果非要用C/C++做,要弄點處理技巧,(最終數據)肯定不能全放在內存中,必須逐行寫。我現在又要外出,想想怎麽做,回來再試寫一下。

授人以渔,不授人以鱼。
2015-03-09 23:14
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
被你嚇到~特地開WIN7用EXCEL來看~沒對錯阿?
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

不要選我當版主
2015-03-09 23:20
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用TonyDeng在2015-3-9 23:14:33的发言:

我現在基本明白你的意圖了,但要處理正確才行。考慮到將來的數據量,用數據庫處理是最好的。如果非要用C/C++做,要弄點處理技巧,(最終數據)肯定不能全放在內存中,必須逐行寫。我現在又要外出,想想怎麽做,回來再試寫一下。


.....這麼晚還外出~真辛苦~

這隻程式是第三版了~第一版是用VB寫的~實在太慢~
第二版是全部在內存中處理後一次輸出的~出現內存資料被異常覆蓋問題~
第三版我改成Contact幾次就出幾個CSV檔案~大幅降低內存使用量~
以時間換取空間~使用類似暫存檔案方式組合出一個完整檔案~

數據庫...因為不會用~所以只好用C囉....

不要選我當版主
2015-03-09 23:25
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
正在寫你這個程序。原先想用最簡單的數據庫VFP語言寫,考慮到你可能不熟悉那種語言,就不用了。由於我不想處理太複雜的C/C++語法,改用.net框架,本來用C++/CLR也可以的,不過那些符號看起來比較古怪,不如直接用C#,兩者實際上是一樣的,後者的語法符號比較符合原來的C/C++習慣。如果你用過,應該熟悉那種機制。

另,你後來開帖的問題我看到了,解決方案是不要同時打開那麽多文件,分而治之,否則你將來面向那麽大量的文件,這樣做不是辦法。具體的做法,會在我寫這個程序的代碼中看到。

再另,前面説的錯位問題,我再三核對過,絕對是錯了的,但你既然說處理方法是那樣,也有後續措施,我就不動它了,按你原來的方案做。


[ 本帖最后由 TonyDeng 于 2015-3-10 20:33 编辑 ]

授人以渔,不授人以鱼。
2015-03-10 20:31
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
現在才看到,可惜我已經下班了,不然直接把檔案資料轉成EXCEL貼上來,應該會比較清楚一點,
嚴格說CSV要是有錯位狀況的話,最終在EXCEL檔內可以很清楚看得到,不過你既然一直說異常,
就一直讓我心裡毛毛的。今天我又補上0000的最大值和最小值和平均值的欄位計算資料,
之前都是空的因為還沒弄上去,其他還有平均標準差和良率的計算,那公式蠻複雜的,再考慮是否改用VBA去做。

的話感覺和C差不多(用轉工程的情況下),不像VB和差別天差地遠。
另一帖其實我只是想確認是我程式的問題,還是那只是原本編譯器上的既有先天限制。

唯一確定的是Windows系統下料夾中的檔案數量有其上限,太多會導致開啟資料夾異常。
不過這又是更後面再來考慮的了。

不要選我當版主
2015-03-10 21:06
快速回复:CSV合并的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.065411 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved