上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
sthuang66
註冊時間: 2014-04-27 文章: 178
第 1 樓
|
發表於: 星期五 一月 02, 2015 3:27 am 文章主題: 請教用vfp精靈操作import的步驟可以化成prg嗎? |
|
|
我有好多筆csv的檔案要轉成DBF
vfp9精靈Import步驟如下
1.File type 選 text file , 然後按 Locate , 載入檔案
2.確認資料格式,
2-1Data format 選 Delimited
2-2 Field Name in row : 欄位名稱在那一行, 如果檔案沒有欄位名稱選0,
2-3 Begin import at row : 確定自那行開始匯入資料
2-4 field delimiters : 確認欄位的區隔符號, 如果是 [,] 選 Comma...
3.定義欄位的名稱, 格式 , 長度....
4.最後選 finish
請教各位高手以上步驟可以寫成PRG嗎?我已經爬完論壇的文!好像都沒有很好的答案 |
|
回頂端 |
|
 |
bx1166
註冊時間: 2011-12-06 文章: 273
第 2 樓
|
發表於: 星期五 一月 02, 2015 4:46 pm 文章主題: |
|
|
Use urdbf.dbf
Append from urcode.csv type sdf deli with ","
試試看,當文字檔案處理即可。 |
|
回頂端 |
|
 |
sthuang66
註冊時間: 2014-04-27 文章: 178
第 3 樓
|
發表於: 星期五 一月 02, 2015 7:08 pm 文章主題: |
|
|
假設我的檔案是10309.csv,其中第一列是將來dbf的欄位名!第二列之後才是資料
--------------------------------------------------------------
Select urdbf.dbf
Append from urcode.csv type sdf deli with ","
---------------------------------------------------------------
有點不懂上面高手的說明 |
|
回頂端 |
|
 |
bx1166
註冊時間: 2011-12-06 文章: 273
第 4 樓
|
發表於: 星期五 一月 02, 2015 9:19 pm 文章主題: |
|
|
如果第一行是要用來當dbf欄位名,那就有麻煩些,如果每次產生的欄位都不一樣,
就我所想得到的,全部用文字來處理,需要計算的欄位,再用函數轉換來計算。
而第一筆資料就用來顯示欄位名。
真的需要重複一再操作的話,就應該大家用固定的格式,寫程式才能夠簡單。
Csv以固定的格式出現,這第一行就不要出現欄位名,處理起來就比較簡單,
先建立dbf,如csv欄位一樣順序,as example.dbf
Mfile=str(year(date()))+str(month(date()))+str(day(date()))+'.dbf'
**產生新檔案名稱
Use example.dbf
Copy stru to &mfile
Use &mfile
Append from 10390.csv type sdf deli with ',' |
|
回頂端 |
|
 |
sthuang66
註冊時間: 2014-04-27 文章: 178
第 5 樓
|
發表於: 星期六 一月 03, 2015 9:08 pm 文章主題: |
|
|
感謝bx1166的回答!您的方法我已經試過沒有問題!
其實我的作業是有好幾個EXCEL檔案,其中每個檔的欄位都是一樣的只是資料比數不同
只是其中欄位太多有32個,我只要6個!
第一個用createobject去操作EXCEL直接瘦身!這一部分花了很多時間因為不是很懂VBA語法
不過也完成了
第二是把xls檔格式轉成CSV!然後手動用精靈把它改成DBF格式!因為精靈在轉換時可以選擇第一列為欄位名
接著用select就篩出我要的欄位!
接著要分析部分可以用VFP或是輸出成EXCEL格式處理
所以我才發問手動部分是否可以寫成PRG!!因為我的xls檔案中第一列是轉成DBF時的欄位名!煩的是第一列要當欄名的有32個
下create命令再Append就稍微麻煩一點
還是謝謝bx1166指導!我又多學一招 |
|
回頂端 |
|
 |
bx1166
註冊時間: 2011-12-06 文章: 273
第 6 樓
|
發表於: 星期六 一月 03, 2015 9:16 pm 文章主題: |
|
|
第一行如果是欄位的名稱,弄成dbf欄位並不難,問題是怎麼讓程式傳達欄位種類以及長度,
所以才麻煩。先建立樣本就應該可以大大的簡化過程。 |
|
回頂端 |
|
 |
lygcw9603
註冊時間: 2011-12-25 文章: 130
第 7 樓
|
發表於: 星期六 一月 03, 2015 10:08 pm 文章主題: |
|
|
自己手,丰衣足食。 |
|
回頂端 |
|
 |
bx1166
註冊時間: 2011-12-06 文章: 273
第 8 樓
|
發表於: 星期日 一月 04, 2015 10:46 am 文章主題: |
|
|
如果原csv有36個欄位,只要提出6個,example.dbf可以弄成36個欄位,
改成
Use example.dbf
Zap
Append from xxx.csv type sdf deli with ','
Copy to &mfile field f1,f2,f3,f4,f5,f6 &&your field lists here |
|
回頂端 |
|
 |
|