作者KengiBon (蜀中無大將)
看板C_and_CPP
標題[問題] c語言 檔案內容比對與合併
時間Wed Apr 29 14:57:05 2009
想請問程設的大大一個問題
(本人是C語言初學者)
拜託大大給小弟解惑一下
(不一定要給我程式解答 但希望能給我一個方向 感恩!!)
想把一個A檔案(a.txt)中的第一個欄位(NUM)與B檔案(b.txt)的NUM欄位依序比對
比對成功 則在A檔案中之最後一欄位(MODE)後增加一B檔案中的欄位(12hr)內容
A檔案內容如下:
-----------------------------------------------------
| NUM | CHART | DATETM | MODE |
-----------------------------------------------------
| 1 | 123 | 上午 10:45:00 | EPIDURAL MODE |
-----------------------------------------------------
| 2 | 25 | 下午 02:55:00 | PCA MODE |
-----------------------------------------------------
| 3 | 10017587 | 下午 11:23:10 | PCA MODE |
(以下省略)
B檔案內容如下:(PS:與A檔案中欄位長不全相同)
-----------------------------------------------
| NUM | CHART | 12hr |
-----------------------------------------------
| 1 | 123 | 20 |
-----------------------------------------------
| 2 | 25 | 12.5 |
-----------------------------------------------
| 3 | 10017587 | 125 |
(以下省略)
以上
我也找過一些資料
但大都是介紹C++的方法
(但是不清楚能否用於C中 因為我主要是要寫C的程式)^^"
若有甚麼太蠢或是表達不好的地方 還請各位大大能見諒
謝謝各位!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.171.202
1F:推 LPH66:提示: strchr 用在標題那列上可以得知一些事情 04/29 15:18
2F:→ LPH66:這些事情可以幫助你找出每筆資料 04/29 15:18
3F:→ LPH66:(當然不一定用一次) 04/29 15:18
4F:推 chrisdar:Bfile-> double a[num]=12hr;Afile-> append a[num]; 04/29 15:26
5F:推 evernever:先找出欄位的定義吧 看是用逗號,空白,還是Tab 04/29 16:02
6F:→ evernever:能分辨欄位後 在比較A.Num & B.Num 04/29 16:06
7F:→ KengiBon:L大大是說用strchr找兩檔案是否都有NUM欄位嗎?? 04/29 16:10
8F:→ KengiBon:chr大大的程式可以寫清楚一些嗎?(抱歉我不太懂^^") 04/29 16:12
9F:→ KengiBon:eve大大 我只知道欄位就是用|隔開而已耶(不然應是空白吧) 04/29 16:15
10F:推 chrisdar:我想請問您 NUM 的值域與空洞程度 04/29 16:35
11F:→ chrisdar:0,1,2,3,5,7,9,10 值域=0~10 空洞程度3/11 04/29 16:36
12F:推 chrisdar:如果空洞程度很低 就比較適合 用查表法 04/29 16:39
13F:→ chrisdar:如果 值域範圍也很低的話 那是最好不過了 04/29 16:40
14F:→ KengiBon:值域應該是1~3360 空洞應該只有幾個忘記寫的項目 10吧^^ 04/29 16:40
15F:→ KengiBon:查表法是? 04/29 16:40
16F:→ chrisdar:先讀 B檔案 拿到 NUM,12hr 這兩個欄位值 先假設您會 04/29 16:42
17F:→ chrisdar:開個陣列 double arr[3360+1] 之後 如果讀檔 04/29 16:43
18F:→ chrisdar:假設您拿到 num = 19, 12hr = 99.50 就把 arr[19]=99.50 04/29 16:44
19F:→ chrisdar:表建好後 去讀A檔 拿到num=19 就知道後面要補 arr[19] 04/29 16:45
20F:→ chrisdar:以上 04/29 16:45
21F:→ chrisdar:缺點是 如果查不到就是0 紀錄上應該是0 分不清楚 04/29 16:47
22F:→ chrisdar:找個適當的初始值填充那個陣列吧 EX:-1.0 04/29 16:48
23F:→ KengiBon:想請問 怎麼讓arr[19]拿到num=19的12hr的值 我不會抓^^" 04/29 17:49