当前位置: 首页 > news >正文

非凡免费建网站平台成都企业管理咨询公司

非凡免费建网站平台,成都企业管理咨询公司,江苏财经职业技术学院会计系示范校建设专题网站,做设计那个素材网站最好一个在C#中集成Python的例子。在C#中可以执行Python脚本#xff0c;在Python中也可以调用C#宿主中的功能#xff08;clr.AddReference(Business)#xff09;。 文件说明 Debug为执行目录 Mgr.exe为执行文件 Py\init.py为python初始化脚本 Py\Lib.zip为python需要的模块在Python中也可以调用C#宿主中的功能clr.AddReference(Business)。  文件说明 Debug为执行目录 Mgr.exe为执行文件 Py\init.py为python初始化脚本 Py\Lib.zip为python需要的模块可以在init.py中import Data为数据库目录 mgr.db为mgr.exe使用的数据库 操作说明 系统设置 可以在这里修改运行的参数 打开一个账户 用户的规则设置 交易 代码说明 Python的说明 在Python中可以调用C#宿主中的功能clr.AddReference(Business)。  import clr import io import os import stringclr.AddReference(System) clr.AddReference(System.Data) clr.AddReference(Business)from System import * from System.Data import * from Business import *def get_account_money_by_dt(account_id,date):dbPub.db_name_mgrInitMoneyPub.select_str(db,select InitMoney from account where account_idaccount_id)cashPub.select_str(db,select sum(amount_real) from tran where account_idaccount_id and tran_datedate)stock_amountfloat.Parse(0)table_stockPub.select(db,select code_type,code,sum(tran_count_real) as c from tran where account_idaccount_id and code and tran_datedate group by code_type,code)for dr in table_stock.Rows:code_typeDBUtils.get_str(dr, code_type);codeDBUtils.get_str(dr, code);countDBUtils.get_str(dr, c);pricePub.select_str(code_type\\code,select close from data_day where dtdate order by dt desc limit 1)if price:stock_amountstock_amountfloat.Parse(price)*float.Parse(count)if cash:cash0if InitMoney:InitMoney0return (float.Parse(InitMoney)float.Parse(cash)stock_amount).ToString(0.00) C#的说明 加载Python环境 instance new Py();             instance.init_py_lib(); public void init_py_lib(){engine IronPython.Hosting.Python.CreateEngine();scope engine.CreateScope();engine.Runtime.IO.SetOutput(Output,Encoding.Unicode);engine.SetTrace(on_trace);StringBuilder sb new StringBuilder();sb.AppendLine(import sys );sb.AppendLine(sys.path.append(.\py\Lib.zip) );sb.AppendLine(sys.path.append(.\scripts) );ScriptSource source engine.CreateScriptSourceFromString(sb.ToString());source.Execute(scope);string init_py Pub.exe_dir \py\init.py;if (System.IO.File.Exists(init_py)){ScriptSource source_init engine.CreateScriptSourceFromFile(init_py);source_init.Execute(scope);}} 执行脚本 public Boolean Execute(string script, out string msg, out IronPyErrors err, ExecRequest request){msg ;err new IronPyErrors();StringBuilder sb request.log;sb.AppendLine(开始 DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) );sb.AppendLine(------);try{last_trace_lineno ;last_trace_result ;ScriptSource source engine.CreateScriptSourceFromString(script); CompiledCode cc source.Compile(err); if (err.Items.Count 0){err.ToStringBuilder(sb);msg 编译错误;sb.Append(msg);return false;}scope.SetVariable(request, request);Py.instance.Output.SetLength(0);string sql_err DataAccess.DataConn.clear_err();cc.Execute(scope); Py.instance.Output.Flush();string print_s Encoding.Unicode.GetString(Py.instance.Output.ToArray());sql_err DataAccess.DataConn.clear_err();if (sql_err ! )sb.AppendLine(sql_err);sb.AppendLine(print_s);sb.AppendLine(------);msg 运行完成 DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) ;sb.Append(msg);return true;}catch (Exception e){if (last_trace_lineno ! )msg trace line: last_trace_lineno;if (last_trace_result ! )msg msg trace: last_trace_result;msg msg e.Message;sb.Append(msg);}return false;} using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using Microsoft.Scripting; using Microsoft.Scripting.Hosting; using IronPython; using IronPython.Runtime; using IronPython.Modules; using IronPython.Compiler; using IronPython.Runtime.Exceptions; using IronPython.Hosting; using Business;namespace Mgr {public class Py{public static Py instance null;public static void init(){if (instance ! null)return;instance new Py();instance.init_py_lib();}public ScriptEngine engine null;public ScriptScope scope null;public static string get_key(string name){return name.Trim().ToLower();}public static Dictionarystring , ScriptSource ScriptDict new Dictionarystring , ScriptSource();public string set_script(string id ,string script){if (id )id Guid.NewGuid().ToString();id get_key(id);ScriptSource source engine.CreateScriptSourceFromString(script);ScriptDict[id] source;return id;}public string last_trace_lineno ;public string last_trace_result ;public TracebackDelegate on_trace(TraceBackFrame frame, string result, object payload){last_trace_lineno frame.f_lineno.ToString();last_trace_result result;return on_trace;}public Boolean Compile(string script,out string msg, out CompiledCode cc, out IronPyErrors err){msg ;err new IronPyErrors();cc null;try{ScriptSource source engine.CreateScriptSourceFromString(script); cc source.Compile(err);msg 编译完成;return true;}catch (Exception e){msg e.Message;}return false;}public Boolean Execute_cc(CompiledCode cc, out string msg, ExecRequest request){msg ;StringBuilder sb request.log;sb.AppendLine(开始 DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss));sb.AppendLine(------);try{last_trace_lineno ;last_trace_result ;scope.SetVariable(request, request);Py.instance.Output.SetLength(0);string sql_err DataAccess.DataConn.clear_err();cc.Execute(scope);Py.instance.Output.Flush();string print_s Encoding.Unicode.GetString(Py.instance.Output.ToArray());sql_err DataAccess.DataConn.clear_err();if (sql_err ! )sb.AppendLine(sql_err);sb.AppendLine(print_s);sb.AppendLine(------);msg 运行完成 DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss);sb.Append(msg);return true;}catch (Exception e){if (last_trace_lineno ! )msg trace line: last_trace_lineno;if (last_trace_result ! )msg msg trace: last_trace_result;msg msg e.Message;sb.Append(msg);}return false;}public Boolean Execute(string script, out string msg, out IronPyErrors err, ExecRequest request){msg ;err new IronPyErrors();StringBuilder sb request.log;sb.AppendLine(开始 DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) );sb.AppendLine(------);try{last_trace_lineno ;last_trace_result ;ScriptSource source engine.CreateScriptSourceFromString(script); CompiledCode cc source.Compile(err); if (err.Items.Count 0){err.ToStringBuilder(sb);msg 编译错误;sb.Append(msg);return false;}scope.SetVariable(request, request);Py.instance.Output.SetLength(0);string sql_err DataAccess.DataConn.clear_err();cc.Execute(scope); Py.instance.Output.Flush();string print_s Encoding.Unicode.GetString(Py.instance.Output.ToArray());sql_err DataAccess.DataConn.clear_err();if (sql_err ! )sb.AppendLine(sql_err);sb.AppendLine(print_s);sb.AppendLine(------);msg 运行完成 DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss) ;sb.Append(msg);return true;}catch (Exception e){if (last_trace_lineno ! )msg trace line: last_trace_lineno;if (last_trace_result ! )msg msg trace: last_trace_result;msg msg e.Message;sb.Append(msg);}return false;}public MemoryStream Output new MemoryStream();public void init_py_lib(){engine IronPython.Hosting.Python.CreateEngine();scope engine.CreateScope();engine.Runtime.IO.SetOutput(Output,Encoding.Unicode);engine.SetTrace(on_trace);StringBuilder sb new StringBuilder();sb.AppendLine(import sys );sb.AppendLine(sys.path.append(.\py\Lib.zip) );sb.AppendLine(sys.path.append(.\scripts) );ScriptSource source engine.CreateScriptSourceFromString(sb.ToString());source.Execute(scope);string init_py Pub.exe_dir \py\init.py;if (System.IO.File.Exists(init_py)){ScriptSource source_init engine.CreateScriptSourceFromFile(init_py);source_init.Execute(scope);}}}public class IronPyErrorsItem{public string Message { get; set; }public int ErrorCode { get; set; }public Severity sev { get; set; }public SourceSpan Span { get; set; }public string get_info(){string line ;line Span.Start.Line.ToString() 行 Span.Start.Column.ToString() 列;line line ( sev.ToString() ErrorCode.ToString()): ;line line Message;return line;}}public class IronPyErrors : ErrorListener{public ListIronPyErrorsItem Items new ListIronPyErrorsItem();public void ToStringBuilder(StringBuilder sb){foreach (IronPyErrorsItem i in Items){sb.AppendLine(i.get_info());}}public override void ErrorReported(ScriptSource source, string message, Microsoft.Scripting.SourceSpan span, int errorCode, Microsoft.Scripting.Severity severity){IronPyErrorsItem i new IronPyErrorsItem{Message message,ErrorCode errorCode,sev severity,Span span};Items.Add(i);} } }
http://www.w-s-a.com/news/652323/

相关文章:

  • 淮南网站建设服务东莞营销型手机网站建设
  • 常德做网站专业公司河南高端网站建设
  • 网站服务器建设的三种方法会展设计ppt
  • 如何把自己做的网站放到内网seo优化网络
  • 北京网站建设net2006厦门优化公司
  • 制作网页前为什么要建立站点菏泽百度网站建设
  • 做影视网站引流网页美工设计课程教案
  • 响应式网站开发流程图网站优化seo教程
  • 做汽车团购网站百度官网平台
  • 网站增加关键字建设旅游网站的功能定位
  • 怎么搭建源码网站义乌网络
  • 定远规划建设局网站wordpress云主机安装
  • 慈溪市网站开发软件开发文档国家标准
  • 本地佛山顺德网站设计公司的网站如何建设
  • 网站建设前十名网站建设 招标书
  • 手机网站标准百度搜索关键词排名优化推广
  • 中国空间站科幻作文1000字wordpress运行库
  • 徐州做网站的wordpress可视化编辑器排行
  • 官方网站英语上海公司注册核名查询
  • 东莞网站建设推广云南昆明最新消息
  • 上网站乱码网页设计与网站建设案例教程
  • 宣讲网站建设wordpress多媒体主题
  • 如何成立网站互联网开发是做什么的
  • 网站首页的尺寸做多大网页图片排版
  • 龙岩天宫山索道多少钱河南网站排名优化哪家好
  • 北京做网站设计程序员和网站开发
  • 个人 做自媒体 建网站图片制作成视频的手机软件
  • h5 建站网站 移动端重庆潼南网站建设价格
  • 商企在线营销型网站怎么做时光网站
  • 网站建设方案论文1500竞价托管哪家便宜