作者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