Ruby
リストビューだけでは不便なのでメニューも追加です。 メニュー画面require 'tk' menubar = TkMenu.new Tk.root.configure(menu:menubar) file = TkMenu.new(menubar, tearoff: false) help = TkMenu.new(menubar, tearoff: false) menubar.add_cascade(labe…
RubyでWhoisアプリの画面Rubyでwhoisアプリを作ってみました。 ソースはわかりやすいように短くしています。 10行ぐらいで作れました。 ocraでexe化も成功です。 #rubyでwhoisアプリ require 'whois' require 'tk' #whois関数 def whois_proc(a) b = Whois::…
Ruby3でocraを使うとエラーが表示されるようになりました。いろいろ実験して、実行ファイルが作れるようになりました。 もっと、良い方法があると思います。■エラー内容 in `_invoke': can't invoke "font" command: application has been destroyed (Runtim…
RubyでSQLITE3 require 'sqlite3' #データベースの作成 db = SQLite3::Database.new 'test.db' #idとnameを持つusersテーブルを作成 sql = <<-SQL create table users( id integer primary key, name text ); SQL #usersテーブルを作成 db.execute(sql) #テ…
Rubyには、mechanizeというライブラリを使うと スクレイピングが簡単にできそうです。 gem install mechanize■基本 ホームページデータの取得 require 'mechanize' sitedata = Mechanize.new page = sitedata.get("https://www.example.com") puts page.body…
Rubyでホームページの取得方法は open-uriを使う方法が簡単です。 他にはnet/httpを使うと、高度な設定が可能です。例1 open-uri require "open-uri" open("https://www.example.com/" do |f| print f.read end例2 open-uri require 'open-uri' io = OpenURI…
Rubyでnokogiriの利用方法です。Nokogiriは、Rubyでよく使われている構文解析ライブラリです。 注意としてUTF-8以外の場合は注意が必要例1 require 'nokogiri' require 'pp' require 'open-uri' url = 'https://www.aaaaa.com' htdata = Nokogiri::HTML(URI.…
rubyのopen-uriでエラーが出ました。initialize': Invalid argument @ rb_sysopen - https://www.aaa.com (Errno::EINVAL)確認すると、 Rubyの3からは openではなく、URI.openを使うようです。 require 'open-uri' url = 'https://www.aaa.com' #aaa = open…
■CSVファイルの読み込みTSV版 require 'csv' CSV.open("sample.tsv'.col_sep:"\t",headers:true) do |csv| csv.read do |row| row.each do |header,value| puts "#{header}:#{value}" end puts '-----' end end■CSVファイルの読み込み2 require 'csv' data …
Rubyで値の変更メモ #ASCIIコードを文字に変換 a = 65 a.char #=>"A" #数字を文字に変換 a.to_s #=> "65" #数字を16進数に変換 a.to_s(16) #=> "a" a.to_s.hex() #=> "16" 10を16にしたら意味が違う・・・ #その他変換 "11111111".to_i(2) #=>255 "255".to_i…
Rubyを勉強していて、理解ができなかったのが、ブロックという考え方です。ループ処理ならわかるのですが、処理の単位ということでしょう。■eachメソッドの例 (1..10).each do |v| puts v end doからendをブロックとして表す。 この処理は{}でも表せます。 (…
Rubyでファイルの読み込みRubyの読み込みはブロックの読み込みが一般的なようです。 ブロックは、{}で囲んだ方法です。 特徴は、open,closeが不要です。■1行ずつ読み込み File.open("sample.txt","r") do |f| while line = f.gets puts(line) end end■1行ず…
Rubyで別のRubyを呼び出すmain.rb puts “start” IO.popen(“ruby sub.rb”) do |f| f.each do |line| print line end end puts “finish”sub.rb STDOUT.sync = true #文字列を全て受け取る puts “sub start” sleep 4 puts “sub end”実行結果 start sub start su…
Rubyでメール送信 require “net/smtp” require “time” smtp_server = “localhost” from = “user@mail.example.com” to = “user@mail.subdomain.com” Net::SMTP.start(smtp_server) do |smtp| From: #{from} To: #{to} Date: #{Time.now.rfc2822} Subject: te…
Rubyでファイル一覧を取得する基本です。■ファイル一覧 Dir.glob('*') do | item | puts item end ■ファイル一覧(拡張子を指定) Dir.glob('*.jpg') do |item| puts item end■ファイル一覧(下位ディレクトリを含める) Dir.glob('**/*') do |tem| puts ite…
Rubyで配列を扱います。■配列の作り方 a = Array.new a = Array.new(5) 5個のnil a = Array.new(5,0) 5個の0lang = %w(Ruby Python C++) lang = %i(“Ruby”,”Perl”,”Python”)■文字列のsplitメソッドを使う a = “This is a Ruby” b = a.split(‘,’)■要素の置換 …
Rubyのメモですが、おかしい気がします。Rubyのコメント■1行のコメント #a = 1■まとまったコメント =begin コメントアウトされた内容 =end■変数の種類 ・ローカル変数 通常使用する変数、小文字から始まる ・グローバル変数 $で始まる ・インスタンス変数 @…
Rubyのfiddleを使って、DLLを使ってみました。 思わぬところではまりました。 最初にC++でメインとDLLを作り確認しました。 そのDLLをRubyで呼び出しましたが、エラーになります。 ・エラー内容1 in `import_function': cannot find the function: dllfunc(…
Ruby3で、OCRAで実行ファイルはできました。 しかし、次のエラーです。 libgmp-10.dllが見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。 これは、以前の対応と同じです。 ocra sa…
Ruby3.1で、OCRAを実行すると、エラーが出てきました。 ■状況 C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/ocra-1.3.11/bin/ocra:1188:in `initialize': No such file or directory @ rb_sysopen - *****/fiber.so (Errno::ENOENT) fiber.soファイルが見つから…
RubyとPythonのtkでリストビューを作ってみました。 RubyもPythonも本当によく似ています。 ■Rubyの例 # coding: utf-8require 'tk' $tree = Tk::Tile::Treeview.new() #列インデックスの作成$tree['columns'] = ['1','2','3'] #各列の設定$tree.column_conf…
rubyでfiddleを使用して、windows11のメモ帳を操作して見ました。 windows10までのメモ帳は値の変更が必要です。 require "fiddle/import"require 'fiddle/types' module WIN32API extend Fiddle::Importer dlload 'C:\\Windows\\System32\\user32.dll' incl…
ocraで作成したexeファイルを実行しようとしたところ、 エラーが出ました。 「ruby_builtin_dlls\libssp-0.dllが見つからないため、コードの実行を続行できません。プログラムを再インストールすると、この問題が解決する可能性があります。」 調べると、コ…
洋書ですがRubyのおもしろそうな本が出ていました。 BLACKHAT Pythonは知っていましたがRubyです。 おもしろいです。 Amazon | Black Hat Ruby: Offensive Ruby programming for Hackers and Pentesters | Hassanyah, Sabri Saleh | Professional
久しぶりにRubyを使っていましたが、sqlite3でエラーです。 昨年つまづいたのに、もう忘れていました。 手順です。 1 Ruby+msysをインストール 2 ウイルスバスターでディレクトリを除外 3 ファイルの編集(不要かも) msys2のmsys64/etc/pacman.confの #Xfer…
久しぶりにRubyをインストールしたところ、エラーでインストールできません。 以前、あんなに簡単に入ったのに困りました。 インストールしたのは、RubyInstall+MSYS2です。 Rubyだけを入れた場合は、gemでsqlite3を入れると証明書関係のエラーが出るのでMS…
久しぶりにrubyを使っていて、アップデートしようとしたらエラーです。 調べても原因がわかりません。 ERROR: While executing gem ... (Errno::EADDRNOTAVAIL) The requested address is not valid in its context. - connect(2) for "0.0.0.0" port 53 ■結…
Rubyで、ロードしていないWindowsのレジストリファイルを確認するソースです。これなら、Linuxからでも動作できます。 入手先 Volatile Minds: Reading offline registry hives in pure ruby
RubyでExcel操作です。 また、調べることがあります。 # -*- Encoding:UTF-8 -*- require 'win32ole' class Excel end excel = WIN32OLE.new('Excel.Application') WIN32OLE.const_load(excel, Excel) #Excelファイルをダイアログで開く場合 #book_file = ex…
罫線に成功です。 # -*- Encoding:UTF-8 -*-ire 'win32ole'require 'win32ole'class Excelendexcel = WIN32OLE.new('Excel.Application')WIN32OLE.const_load(excel, Excel) # 新規ブックを作成book = excel.workbooks.add#画面に状況を表示させる。excel.vi…