對你來說是小菜,我就快掛了!請指教!
我的間題你一定搞的定@。@
就是如何把文本文件(.txt)導入dw數據窗口中???????????????
问题点数:20、回复次数:6Top
1 楼wangxichen() 喜之郎 : )回复于 2004-09-02 21:16:40 得分 3
文件操作函数:
先用fileopen()打开函数,
用fileread()读取文件,
操作完成后,fileclose()关闭文件。
函数具体功能和语法可以查看帮助Top
2 楼xiaorong83(小月)回复于 2004-09-02 21:19:49 得分 0
多謝上面那位仁兄,不過我要全代碼。哪位仁兄=大俠幫幫我吧??!!在線等!!!Top
3 楼xuexy1980_xxy1980(勇豹)回复于 2004-09-02 21:21:46 得分 0
你看一下 文件操作函数!Top
4 楼hxbhxbhxb(Paul)回复于 2004-09-02 21:23:42 得分 2
dw_1.importfile(...)Top
5 楼wangxichen() 喜之郎 : )回复于 2004-09-02 21:39:50 得分 5
使用ImportFile()函数。该函数用法为:
datawindowname.ImportFile(filename{,startrow{,endrow &
{,startcolumn{,endcolumn{,dwstartcolumn}}}}})
ImportFile()函数要求数据窗列的数据类型和列的排列顺序必须
与文本文件中的数据相匹配。
在存储文本文件时要注意接收数据库对表的格式要求,比如在Syb
ase中,表格的列与列间是采用Tab键区分的,所以如果要用ImportFile
()函数将文件内容写入Sybase表中,就要将相应文本文件的列与列间
加入Tab键——这在文件形成时即可加入。
下面的代码将文件infor.txt写入数据窗dw-infor,并将与dw-inf
or对应的数据库表更新:
int impt
if (FileLength("c:\data\infor.txt") > 0) then
impt = dw-infor.ImportFile("c:\data\infor.txt")
if impt > 0 then
dw-infor.settrans(sqlca);
update(dw-infor);
commit;
if sqlca.sqlcode = -1 then
messagebox("SQL ERROR",sqlca.sqlerrtext)
end if
else
messagebox("注意","文件infor.txt写入失败!")
end if
end if
此外,ImportFile()函数还支持从文本文件的指定开始行列到结
束行列读取并写入数据;并且支持.dbf(dBase)文件的读写Top
6 楼liliang800207(redcloud)回复于 2004-09-02 21:41:12 得分 10
看你的文件格式是什么样的!
=========================================f_import_file(datawindow adw_name,string as_filename,char ac_separator)
adw_name:数据窗口
as_filename:导入文件名
ac_separator:分割符,TAB除外
/*...................*/
long ll_start_pos=1
string ls_mystring
int li_filenum
char lc_tab
string ls_tempfile
int li_rtn
li_filenum=fileopen(as_filename,StreamMode!,read!)
if isnull(li_filenum) or li_filenum<0 then return -2
//将文件内容读入字符串
if FileRead(li_filenum,ls_mystring)<0 then return -2
//关闭文件
FileClose(li_filenum)
lc_tab=char(9) //TAB分割符
//找到第一个分割符
ll_start_pos=Pos(ls_mystring,ac_separator,ll_start_pos)
if ll_start_pos<=0 then
MessageBox('提示信息','文件内没有"'+ac_separator+'"分割符')
return -10
end if
//循环替换分割符
do while ll_start_pos>0
//替换分割符
ls_mystring=Replace(ls_mystring,ll_start_pos,1,lc_tab)
//找下一个分割符
ll_start_pos=Pos(ls_mystring,ac_separator,ll_start_pos+1)
loop
//在当前目录下生成临时文件
ls_tempfile=GetCurrentDirectory()+"\importfile_tmp.txt"
li_filenum=FileOpen(ls_tempfile,&
StreamMode!,Write!,LockWrite!,Replace!)
FileWrite(li_filenum,ls_mystring)
FileClose(li_Filenum)
//将临时文件内容导入数据窗口
li_rtn=adw_name.ImportFile(ls_tempfile)
//删除临时文件
FileDelete(ls_tempfile)
return li_rtn
========================================
如是 tab键分隔 直接importfile即可Top




