lingo入门教程之三 --- 文件数据处理
有時(shí)候我們想輸入的數(shù)據(jù)是在一個(gè)Excel表格或者其他什么形式中,或者說這里數(shù)據(jù)是實(shí)時(shí)變化的并不利于直接在程序中輸入,耳而應(yīng)該在程序之外將數(shù)據(jù)存儲(chǔ),實(shí)現(xiàn)數(shù)據(jù)與程序的分離存儲(chǔ),這個(gè)時(shí)候就涉及到程序與數(shù)據(jù)之間的傳遞
下面簡要介紹一個(gè)如何進(jìn)行數(shù)據(jù)與程序之間的傳遞
下面的講解都是基于如下的問題模型
有個(gè)城市都需要采購一定量的物品,但每個(gè)城市只允許在自身所在的城市采購,城市i的最低需求量為need(i),最大供應(yīng)量為supply(i),單件采購成本為cost(i),如何采購總成本最小?
模型:設(shè)order(i)為城市i的采購量,則問題的數(shù)學(xué)模型為
1.直接粘貼復(fù)制
開始的程序
model: sets: cities/!待輸入的數(shù)據(jù)個(gè)數(shù);/:cost,need,supply,order; endsets min=@sum(cities:cost*order); @for(cities:need<=order;order<=supply); data: cost,need,supply=!待輸入的數(shù)據(jù)值;; enddata end直接利用把存儲(chǔ)在Excel或者其他什么地方的數(shù)據(jù)復(fù)制粘貼過來,這里需要注意lingo里面的復(fù)制是按列進(jìn)行的(這里在前面已經(jīng)講過),不注意的話可能會(huì)發(fā)生數(shù)據(jù)賦值的錯(cuò)亂
粘貼的選項(xiàng)
可以依次試一下上面的不同粘貼格式的效果
下面是我直接在Excel中Ctrl+C與Ctrl+V實(shí)現(xiàn)的
model: sets: cities/ Seattle Detroit Chicago Denver /:cost,need,supply,order; endsets min=@sum(cities:cost*order); @for(cities:need<=order;order<=supply); data: cost,need,supply= 12 1600 1700 28 1800 1900 15 1200 1300 20 1000 1100 ; enddata end2.讀取ldt數(shù)據(jù)文件:@file(數(shù)據(jù)文件名); 這里默認(rèn)數(shù)據(jù)文件與程序文件在同一子目錄下面,否則找不到數(shù)據(jù)文件而報(bào)錯(cuò) model: sets: cities/@file(數(shù)據(jù)文件.ldt)/:@file(數(shù)據(jù)文件.ldt); endsets min=@sum(cities:cost*order); @for(cities:need<=order;order<=supply); data: cost=@file(數(shù)據(jù)文件.ldt); need=@file(數(shù)據(jù)文件.ldt); supply=@file(數(shù)據(jù)文件.ldt); enddata end
如果路徑不一致,也可以手動(dòng)添加,Edit --> insert new object...
應(yīng)當(dāng)注意此時(shí)的文件類型的ldt格式,
具體里面內(nèi)容:Seattle,Detroit,Chicago,Denver~cost,need,supply,order~12,28,15,20~1600,1800,1200,1000~1700,1900,1300,1100 注意中間的不同賦值用~間隔
3.存取Excel數(shù)據(jù)文件:@ole(文件名,元素名);
model: sets: cities/@ole('原始數(shù)據(jù)1.xls','cities')/:cost,need,supply,order; endsets min=@sum(cities:cost*order); @for(cities:need<=order;order<=supply); data: cost,need,supply=@ole('原始數(shù)據(jù)1.xls'); !讀取數(shù)據(jù)文件 @ole('原始數(shù)據(jù)1.xls','order')=order; !將計(jì)算結(jié)果存入表格中 enddata end對(duì)于路徑不一致的情況解決方式與上述一樣
總結(jié)
以上是生活随笔為你收集整理的lingo入门教程之三 --- 文件数据处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目验收文档模板(四)
- 下一篇: DLL注入——使用远程线程