LINGO与外部文件的接口.ppt_第1页
LINGO与外部文件的接口.ppt_第2页
LINGO与外部文件的接口.ppt_第3页
LINGO与外部文件的接口.ppt_第4页
LINGO与外部文件的接口.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通过文件输入输出数据,通过文件输入输出数据可以将LINGO程序和程序处理的数据分离开来。 “程序和数据的分离”是结构化程序设计、面向对象编程的基本要求。 实际问题通常需要处理大规模的实际数据,而这些数据通常都是在其它应用系统中生成的,或者已经存放在其它应用系统中的某个文件或数据库中。 LINGO计算的结果需要以文件方式提供给其它应用系统使用。,通过WINDOWS剪贴板传递数据 通过文本文件传递数据 通过电子表格文件传递数据 LINGO命令脚本文件,内容提要,1. 通过WINDOWS剪贴板传递数据,粘贴命令 ( Edit|Paste ) 特殊粘贴命令(Edit|Paste Special ),粘贴命令 ( Edit|Paste ),将WORD文件或其他外部文件中的数据拷贝到Windows剪贴板 在LINGO程序中直接粘贴到需要的地方,步骤:,注意:,粘贴的数据保持了WORD表格的风格,且LINGO能够正常识别甚至编辑其字体等。 由于LINGO对集合的属性是按列赋值的,所以在外部文件中的数据与实际需要复制的数据可能发生行列颠倒的情况,需进行调整。 类似的方法也可以将LINGO程序中的数据复制到其他外部文件中。,特殊粘贴命令(Edit|Paste Special ),选择特殊粘贴命令,则会出现“选择性粘贴”对话框,请你选择粘贴格式。,粘贴一个WORD对象,双击时可以打开WORD进行编辑,将剪贴板中的内容以图形格式插入到LINGO模型中,效果与直接使用“Ctrl+V”的效果是一样的,粘贴的是格式化的文本,选择了“显示为图标”选项,则只显示一个“文档”图标而不显示剪贴板中的具体内容;,选择“粘贴链接” 时会建立与原文件的链接,当数据文件改变时,LINGO中这部分的内容也会随之改变,粘贴纯文本文件,不保留文本的格式信息,特殊粘贴命令(Edit|Paste Special ),在这种粘贴方式中,只有选择 “多信息文本(RTF)”或“未格式化文本” ,才能正确输入数据; 其他两种方式:WORD文档和图形,LINGO在运行时完全将它们忽略掉; 选择“粘贴链接”建立链接关系后,可以随时用“EDIT|LINKS”命令修改这个连接的属性。 如果数据不是放在WORD文件,而是EXCEL电子表格文件或者其他应用程序的文件,操作和结果与上面介绍的过程完全类似。,注意:,2. 通过文本文件传递数据,通过文本文件输入数据 FILE(filename) 通过文本文件输出数据 TEXT(filename),通过文本文件输入数据,FILE函数通常可以在集合段和数据段使用,但不允许嵌套使用。 调用格式:FILE(filename) filename为存放数据的文件名(可以包含完整的路径名,或表示在当前目录下寻找这个文件) 数据文件中记录之间必须用“”分开,有多个城市需采购一定的物品,每个城市只允许在自己所在城市采购,城市I 的最低需求量为need(i),最大供应量supply(i),单件采购成本是cost(i),如何采购成本最小?,model: sets: cities/file(caigou.txt)/:file(caigou.txt); endsets min=sum(cities:ordered*cost); for(cities(i):ordered(i)need(i); ordered(i)supply(i); !也可写成for(cities(i):bnd(need(i),ordered(i),supply(i); data: cost=file(caigou.txt); need=file(caigou.txt); supply=file(caigou.txt); enddata end,caigou.txt文本内容: shanghai,beijing,tianjin,nanjin cost,need,supply,ordered 12,28,15,20 1600,1800,1200,1000 1700,1900,1300,1100,TEXT函数通常只在数据段使用 调用格式:TEXT(filename) 它用于数据段中将解答结果送到文本文件filename中, 当省略filename时,结果送到标准的输出设备(通常就是屏幕) Filename可以使用相对路径或绝对路径,若文件已经存在,则覆盖原文件,model: sets: cities/file(caigou.txt)/:file(caigou.txt); endsets min=sum(cities:ordered*cost); for(cities(i):ordered(i)need(i); ordered(i)supply(i); data: cost=file(caigou.txt); need=file(caigou.txt); supply=file(caigou.txt); text(caigoudang.txt)=write(4*- ,value,10*- ,dual,10* ,decrease,8* ,increase,newline(2); text(caigoudang.txt)=write(variables:,newline(2); text(caigoudang.txt)=ordered,dual(ordered),ranged(ordered),rangeu(ordered); text(caigoudang.txt)=write(newline(1),Final status for caigou:,status(),4* ,if(status(),Global optimal,Maybe not global optimal); enddata end,3. 通过电子表格文件传递数据,在LINGO中使用电子表格文件的数据 将LINGO模型嵌入、链接到电子表格文件中,在LINGO中使用电子表格文件的数据,实际应用中,可能有大量数据是存放在各种电子表格中的(如EXCEL表格)。 LINGO系统与EXCEL文件传递数据的函数的一般用法是通过OLE函数。 调用格式: OLE(spreadsheet_file , range_name_list) 输入数据 :“属性(或变量)=OLE(.)” 输出数据 :“OLE(.)=属性(或变量)”,电子表格文件名,数据的单元范围,model: sets: cities/ole(D:caigou.xls,cities)/:cost,need,supply,ordered; endsets min=sum(cities:ordered*cost); for(cities(i):ordered(i)need(i); ordered(i)supply(i); data: cost,need,supply=ole(D:caigou.xls); ole(D:caigou.xls,ordered)=ordered; enddata end,Global optimal solution found. Objective value: 107600.0 Total solver iterations: 0 Export Summary Report - Transfer Method: OLE BASED Workbook: D:caigou.xls Ranges Specified: 1 ordered Ranges Found: 1 Range Size Mismatches: 0 Values Transferred: 4,4. LINGO命令脚本文件,LINGO命令脚本文件是一个普通的文本文件,但是文件中的内容是由一系列LINGO命令构成的命令序列。 使用命令脚本文件,你可以同时运行一系列的LINGO批处理命令。 命令脚本文件可用任何文本编辑器生成,也可以用LINGO新建文件(*.ltf文件)进行编辑。,例如: 一家快餐公司有多家分店,每家分店都要确定每天所雇用的服务员的人数。每家分店的优化模型的结构本质上是一样的,只是具体数据不同。 我们可以把每个分店的人员需求数据存入各自的一个数据文件中,并建立一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论