- 浏览: 301186 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
masuweng:
如何给新人机会 -
masuweng:
多sql结果集按列合并新结果报表实现方案 -
Ahe:
赞
坚持长跑方能赢 -
masuweng:
好好好
程序员如何更好的了解自己所做的事情 -
小楠人:
laoguan123 写道楼主好,使用过一些excel导入导出 ...
excell导入导出
module Net class FTP def mput(pattern, &block) Dir[pattern].each{ |file| put(file, &block) } end def mget(pattern, remote_path = ".", local_path = ".", &block) # remote_path = is_cw ? remote_path + "/" + pattern : remote_path files = remote_path.blank? ? list(pattern) : list(remote_path + "/" + pattern) # files = is_cw ? list(remote_path) : nlst(remote_path) localfiles = [] files.each{ |file| filename = filename(file) file_extname = filename.split(".").last localfile = local_path + "/" + File.basename(filename) ext_name = ["txt","xml", "dat"] # 标准的文本文件结尾 ext_name << "end" 备份文件采集.end 结尾,实际上是TXT文件 if(ext_name.include?(file_extname.downcase)||file_extname.downcase.match(/\d{4}-\d{1,2}-\d{1,2}$/)) gettextfile(remote_path + "/" + filename, localfile, &block) # gettextfile( filename, localfile, &block) else getbinaryfile(remote_path + filename, localfile, &block) end sleep(1) localfiles << localfile } return localfiles end def filename(o_filename) if(o_filename.start_with?("l")) s = o_filename.split(" ") s[s.length - 3] else o_filename.split(" ").last end end end end
rake定时文件
desc 'Import Hubei radius CDR' namespace :hb do task :import_radius => :environment do date = ENV['date'] date ||= (DateTime.now - 1.day).strftime("%Y-%m-%d") FileUtils.mkpath("#{RAILS_ROOT}/tmp/radius") FileUtils.mkpath("#{RAILS_ROOT}/tmp/sqlldr") radius_config = YAML.load_file("#{RAILS_ROOT}/config/value_analysis.yml").symbolize_keys! time_start = Time.now sqlldr_file = File.new("#{RAILS_ROOT}/tmp/sqlldr/#{date}-radius.ctl", "w") begin write_header(sqlldr_file) date_pattern = date.to_date.strftime("%Y%m%d") sqlldr_lines = [] Net::FTP.open(radius_config[:radius_host], radius_config[:radius_username], radius_config[:radius_password]) { |ftp| ftp.passive = true ftp.debug_mode = true ftp.resume = true ftp.mget("*" + date_pattern + "*.txt", radius_config[:radius_path] + "/#{date_pattern}", "#{RAILS_ROOT}/tmp/radius") do |line| sqlldr_line = [] unless line.nil? cell_def.each do |d| key = d.keys.first value = d.values.first fields_value = line.split("|") if fields_value.length > 5 if ['net_type','auth_type'].include?(key.to_s) sqlldr_line << value elsif value.is_a? Fixnum sqlldr_line << fields_value[value] elsif value[:format].nil? sqlldr_line << fields_value[value[:index]] else sqlldr_line << value[:format].call(fields_value[value[:index]]) end end end sqlldr_lines << sqlldr_line.join(",") end end } sqlldr_file << sqlldr_lines.join("\n") puts "total_time for writing sqlldr_file:#{Time.now - time_start}" sleep 10 time_start = Time.now sqlldr_com = "sqlldr userid=#{$CFG['username']}/#{$CFG['password']}@#{$CFG['service']},control=#{RAILS_ROOT}/tmp/sqlldr/#{date}-radius.ctl,log=#{RAILS_ROOT}/log/#{date}.log,direct=true" puts sqlldr_com system sqlldr_com puts "total_time for importing data:#{Time.now - time_start}" time_start = Time.now puts "calling deal wlan auth perf task procedure" sleep 0.02 Report.deal_auth_deal_perf_task(date) puts "total_time for execute procedure:#{Time.now - time_start}" ensure sqlldr_file.close end end def cell_def [ {:login => 2}, {:start_time => { :index => 30, :head => "START_TIME Date 'yyyymmddHH24miss'" }}, {:sta_mac => { :index => 20, :format => Proc.new {|mac| format_mac(mac) } }}, {:end_time => { :index => 31, :head => "END_TIME Date 'yyyymmddHH24miss'" }}, {:period_time => { :index => 32, :format => Proc.new {|time_len| time_len.to_i / 60 } }}, {:bytes_in => { :index => 12, :format => Proc.new {|bytes| bytes.to_i * 1000 } } }, {:bytes_out => { :index => 11, :format => Proc.new {|bytes| bytes.to_i * 1000 } } }, {:svlan_id => 48}, {:net_type => 1}, {:auth_type => 1} ] end def format_mac(mac) "#{mac[0..1]}:#{mac[2..3]}:#{mac[4..5]}:#{mac[6..7]}:#{mac[8..9]}:#{mac[10..11]}".upcase end def write_header(sqlldr_file) sqlldr_file << "OPTIONS(ERRORS=100000)\nLoad DATA\nINFILE *\nTRUNCATE INTO TABLE WLAN_AUTH_IMPORT_TEMP\nFields terminated by \",\"\nTRAILING NULLCOLS\n" head = [] cell_def.each do |d| key = d.keys.first value = d.values.first if value.is_a? Fixnum or value[:head].nil? head << key.to_s.upcase else head << value[:head] end end sqlldr_file << "(#{head.join(",")})\nBEGINDATA\n" end end
发表评论
-
git仓库创建
2020-09-04 15:33 709推送现有文件夹 cd existing_folder git ... -
puma高并发
2020-08-19 09:31 475nginx突发大量502报错 top看一下,cpu的占用并不高 ... -
searchkick
2019-04-10 11:30 0# 通用查询块(条件) def general_ ... -
导入线下excell业务数据按权重匹配线上数据
2019-03-07 11:00 893业务场景:(系统间还没有接口对调,订单号暂时需要线下处理) 线 ... -
两对象同时映射一对一和一对多
2019-02-20 10:14 839class Kpi::Team < Applicat ... -
ruby一些类加载方式
2018-12-21 10:12 565require_dependency 'order/sco ... -
基于ruby的gem remotipart的异步上传文件
2018-12-21 10:11 532针对某一对象保存实例化之前,异步上传图片保存。 gem ' ... -
基于html2canvas的长图分享
2018-12-21 10:11 1160<span class="ui label ... -
rails处理上传读取excell&生成excell
2018-12-20 14:15 971gem 'spreadsheet' gem 'roo', ... -
基于ruby Mechanize的爬虫
2018-12-20 13:09 672def self.sang_carwler ... -
一些常用加密方式
2018-12-20 13:02 730sign = OpenSSL::Digest::SHA256. ... -
ruby 调用restful接口示例
2018-12-20 12:02 926链接参数中添加token def self.query_p ... -
rails错误日志记录
2018-12-19 14:41 759Rails中对日志的处理采用的是“消息-订阅”机制,各部分组件 ... -
railsAPI接收Base64文件
2018-12-18 11:05 1038tmp_dir = " ... -
ruby 调用savon接口示例
2018-12-18 10:51 1019例子一 module Api module Aob ... -
关于国际商城现货展示与购物车的费用设计
2018-11-15 18:34 442关于国际商城现货展示 ... -
基于多线程的全局变量
2018-10-31 19:50 1162def current_nation def ... -
hash最小值过滤算法
2018-10-31 09:52 1086[["数量","包装" ... -
阿里云裸机部署rails运用
2018-10-08 20:33 1387登录阿里云后首先 sudo apt-get update a ... -
打包订单单据发给货代
2018-09-11 15:43 1179pdf&excell&png # rend ...
相关推荐
1. **文件上传**:`UploadController`中的`create`方法接收上传的文件,并调用`SaveFile`模型的`save`方法将文件数据存储到数据库中。`SaveFile`模型的`save`方法读取文件的二进制流,并将其连同文件名一起保存到...
通过这个"ror留言板程序",开发者可以学习到Ruby on Rails的基础知识,如路由设置、控制器操作、模型关联、视图渲染,以及如何利用数据库进行数据交互。此外,还可以了解到测试驱动开发(TDD)的概念,以及如何组织...
首先,RoR性能优化涉及到多个层面,包括应用程序的部署、服务器配置以及代码优化。在部署方面,操作系统的选择至关重要。RoR通常在Unix类操作系统上运行最佳,如RHEL、CentOS、Ubuntu和SuSE Linux。对于AMD Opteron ...
它还负责将URL映射到控制器方法,是构建Web应用程序的基石。 接着,`activerecord`是Rails中的ORM(对象关系映射)库,使得开发者可以使用Ruby语言操作数据库。`activerecord-1.15.5.gem`包含了与数据库交互所需的...
"ror实例"可能指的是在学习或实践中,通过创建一个具体的Rails应用程序来理解和掌握RoR的工作原理和最佳实践。 在Ruby on Rails中,重要知识点包括: 1. **Gemfile与Gemfile.lock**:项目中的Gemfile用于指定项目...
在IT行业中,Ruby on Rails(简称ROR)是一款基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用开发过程,提高开发效率。本文将深入探讨如何配置ROR开发环境,以及...
1. **路由(Routing)**:RoR的路由系统将URL映射到控制器的行动上,通过`config/routes.rb`文件进行配置。理解路由规则有助于构建可扩展和灵活的Web应用。 2. **控制器(Controllers)**:控制器负责处理请求,...
学习RoR中文资料,应首先从Ruby语言入手,掌握其基本语法和面向对象特性,然后深入理解Rails框架的核心概念和工作原理,通过实践项目来巩固知识。同时,不断关注社区动态,了解最新的Gem和最佳实践,以便不断提升...
NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696
**初探ROR** Ruby on Rails(简称ROR)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在促进...通过学习和实践,你将能够利用ROR构建出功能强大、易于维护的Web应用程序。
**神经网络Ror ResNet模型详解** 在深度学习领域,ResNet(残差网络)模型是具有里程碑意义的创新,由He et al.在2015年提出。该模型解决了深度神经网络训练中的梯度消失问题,允许构建非常深的网络结构。而“Ror”...
标题 "excel lib ror ruby" 暗示我们要讨论的是在Ruby on Rails(简称RoR)框架中使用库来处理Excel文件的相关知识。RoR是一个流行的开源Web开发框架,而Ruby语言本身支持与Microsoft Excel文件交互,这在数据导入...
标签“源码”表明压缩包中包含有实际的代码文件,可能是Rails项目的目录结构,包括`Gemfile`(管理依赖)、`config`目录(配置文件)、`app`目录(包含模型、控制器和视图)、`db`目录(数据库相关,如迁移文件)等...
8. **文件操作和I/O流**:处理文件输入输出是任何程序的基础,源码可能会展示如何读写文件,如何进行文件流操作等。 9. **动态链接库(DLL)和API调用**:利用Windows API可以扩展FOXPRO的功能,源码可能涉及到如何...
在Rails中,新项目可以通过运行 `rails new project_name` 命令来创建,这会生成一个完整的项目结构,包括默认的目录和文件。 总的来说,"我的ror的第一天" 主题涵盖的内容广泛,包括Rails的安装、源码管理、开发...
- **哲学思想与MVC模式**:阐述了RoR的设计哲学,强调代码简洁性与可读性,通过模型-视图-控制器(Model-View-Controller, MVC)模式实现应用程序结构的清晰划分。 - **创建第一个应用**:演示如何利用Rails提供的...
用户可以使用这个文件来重建或填充一个RoR应用所依赖的数据库,特别是当应用涉及到中文数据时,这个文件可能已经包含了正确的编码设置,以确保中文字符能被正确处理。 “jascaffold”则可能是另一个RoR插件,它提供...
ASP.NET项目移植到Ruby on Rails (ROR)的实践中,DB转移是一个关键步骤。这个过程涉及到将现有的ASP.NET应用程序的数据模型、数据库结构以及业务逻辑迁移到ROR框架中。在这个过程中,我们需要理解两个不同框架之间的...