lingo与外部文件间的数据交换.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lingo与外部文件间的数据交换

Lingo与外部文件的数据传递 一、Lingo从文本文件中读取数据 函数 @file(); 该函数用从外部文件中输入数据,可以放在模型中任何地方。该函数的语法格式为@file(’filename’)。这里filename是文件名,可以采用相对路径和绝对路径两种表示方式。 二、lingo将数据输出到文本文件 函数@text(‘filename ’); 该函数被用在数据部分用来把解输出至文本文件中,它可以输出集合成员和集合属性值。 这里filename是文件名,可以采用相对路径和 绝对路径两种表示方式。 @text函数仅能出现在模 型数据部分的一条语句的左边,右边是集名(用来 输出该集的所有成员名)或集属性名(用来输出该 集属性的值)。 三、lingo与Excel之间的数据交换 函数@ole(‘filename’); @OLE是从EXCEL中引入或输出数据的接口函数,它是基于传输的OLE技术。OLE传输直接在内存中传输数据,并不借助于中间文件。当使用@OLE时,LINGO先装载EXCEL,再通知EXCEL装载指定的电子数据表,最后从电子数据表中获得Ranges。OLE函数可在数据部分和初始部分引入数据。 @OLE可以同时读集成员和集属性,集成员最好用文本格式,集属性最好用数值格式。原始集每个集成员需要一个单元(cell),而对于n元的派生集每个集成员需要n个单元,这里第一行的n个单元对应派生集的第一个集成员,第二行的n个单元对应派生集的第二个集成员,依此类推。 注意: @OLE只能读一维或二维的Ranges(在单个的EXCEL工作表(sheet)中),但不能读间断的或三维的Ranges。Ranges是自左而右、自上而下来读。 * * MODEL: SETS: WH/W1..W6/:AI; VD/V1..V8/:DJ; L(WH,VD):C,X; ENDSETS DATA: AI=60,55,51,43,41,52; DJ=35,37,22,32,41,32,43,38; C= 6 2 6 7 4 2 5 9 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 1 6 5 5 5 2 2 8 2 4 3 ; ENDDATA MIN=@SUM(L(I,J):C(I,J)*X(I,J)); @FOR(WH(I):@SUM(VD(J):X(I,J))=AI(I)); @FOR(VD(J):@SUM(WH(I):X(I,J))=DJ(J)); END MODEL: SETS: WH/@file(my_data.txt)/:AI; VD/@file(my_data.txt)/:DJ; L(WH,VD):C,X; ENDSETS DATA: AI=@file(my_data.txt); DJ=@file(my_data.txt); C=@file(my_data.txt); ENDDATA MIN=@SUM(L(I,J):C(I,J)*X(I,J)); @FOR(WH(I):@SUM(VD(J):X(I,J))=AI(I)); @FOR(VD(J):@SUM(WH(I):X(I,J))=DJ(J)); END !建立文本文件保存,文件名my_data !wh成员; WH1 WH2 WH3 WH4 WH5 WH6 ~ !vd成员; V1 V2 V3 V4 V5 V6 V7 V8 ~ !库存; 60 55 51 43 41 52 ~ !需求量; 35 37 22 32 41 32 43 38 ~ !单位运输费用矩阵; 6 2 6 7 4 2 5 9 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3 把记录结束标记(~)之间的数据文件部分称为记录。如果数据 文件中没有记录结束标记,那么整个文件被看作单个记录。除了 记录结束标记外,模型的文本和数据同它们直接放在模型里是一 样的。 数据文件中的记录结束标记连同模型中@file函数调用是如何工作 的 ? 当在模型中第一次调用@file函数时,LINGO打开数据文件,然后 读取第一个记录;第二次调用@file函数时,LINGO读取第二个记 录等等。文件的最后一条记录可以没有记录结束标记,当遇到文 件结束标记时,LINGO会读取最后一条记录,然后关闭文件。如 果最后一条记录也有记录结束标记,那么直到LINGO求解完当前 模型后才关闭该文件。如果多个文件保持打开状态,可能就会导 致一些问题,因为这会使同时打开的文件总数超过允许同时打开 文件的上限16。 注意:在LINGO中不允许嵌套调用@file函数。

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档