wafuの技術

技術習得の努力メモです。

2023-01-01から1年間の記事一覧

Ruby TK にメニューの追加

リストビューだけでは不便なのでメニューも追加です。 メニュー画面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アプリの画面Rubyでwhoisアプリを作ってみました。 ソースはわかりやすいように短くしています。 10行ぐらいで作れました。 ocraでexe化も成功です。 #rubyでwhoisアプリ require 'whois' require 'tk' #whois関数 def whois_proc(a) b = Whois::…

Ruby3でtk+ocraの成功

Ruby3でocraを使うとエラーが表示されるようになりました。いろいろ実験して、実行ファイルが作れるようになりました。 もっと、良い方法があると思います。■エラー内容 in `_invoke': can't invoke "font" command: application has been destroyed (Runtim…

RubyでSQLITE3

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でWebページのスクレイピング(mechanize)

Rubyには、mechanizeというライブラリを使うと スクレイピングが簡単にできそうです。 gem install mechanize■基本 ホームページデータの取得 require 'mechanize' sitedata = Mechanize.new page = sitedata.get("https://www.example.com") puts page.body…

Rubyでホームページの取得(1)

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の利用

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のエラー

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…

C++ 部分文字列の取得

C++

C++で部分文字列の取得 #include <string> #include <iostream> using namespace std; void main(void) { string str1("Hello World"); cout << "右から3文字:" << str1.substr(0,3) << endl; cout << "3文字から6文字まで:" << str1.substr(3,6) << endl; cout << "6文字以降:</iostream></string>…

RubyでCSV

■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で文字変換(編集中)

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のブロック構文とdo

Rubyを勉強していて、理解ができなかったのが、ブロックという考え方です。ループ処理ならわかるのですが、処理の単位ということでしょう。■eachメソッドの例 (1..10).each do |v| puts v end doからendをブロックとして表す。 この処理は{}でも表せます。 (…

Rubyでファイル処理(1)

Rubyでファイルの読み込みRubyの読み込みはブロックの読み込みが一般的なようです。 ブロックは、{}で囲んだ方法です。 特徴は、open,closeが不要です。■1行ずつ読み込み File.open("sample.txt","r") do |f| while line = f.gets puts(line) end end■1行ず…

Rubyで別のRubyを呼び出す

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でメール送信

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でファイル一覧の取得

Rubyでファイル一覧を取得する基本です。■ファイル一覧 Dir.glob('*') do | item | puts item end ■ファイル一覧(拡張子を指定) Dir.glob('*.jpg') do |item| puts item end■ファイル一覧(下位ディレクトリを含める) Dir.glob('**/*') do |tem| puts ite…

UbuntuのIPアドレスの設定

UbuntuのIPアドレスを変更する方法です。 ■UbuntuのIPアドレスの設定等 IPアドレスの一時変更 >sudo ip addr add 192.168.2.50/24ゲートウェイの設定 >sudo ip route add default via 192.168.2.1動的DNSの一時中止 >systemctl stop systemd-resolved 恒久的…

Rubyの配列

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のメモですが、おかしい気がします。Rubyのコメント■1行のコメント #a = 1■まとまったコメント =begin コメントアウトされた内容 =end■変数の種類 ・ローカル変数 通常使用する変数、小文字から始まる ・グローバル変数 $で始まる ・インスタンス変数 @…

Realforce修理(追記)

最初に疑問 Realfoceのキーが次第に重くなっていると感じるのは私だけ? 以前にも書きましたが、Realforceのキータッチが重くなった気がしています。 おそらく、経年劣化でラバーカップが硬化したようです。 どこかのサイトでHHKBの対処法で行っているのが、…

Rubyでfiddle(2) オリジナルのDLLを使う

Rubyのfiddleを使って、DLLを使ってみました。 思わぬところではまりました。 最初にC++でメインとDLLを作り確認しました。 そのDLLをRubyで呼び出しましたが、エラーになります。 ・エラー内容1 in `import_function': cannot find the function: dllfunc(…

VIの使い方 メモ

viの使い方 間違っているかも知れません。 ■上下左右の移動 h 左 s 下 k 上 l 右 ■移動 w 一番右へジャンプ b 一番左へジャンプ 0 行の先頭へジャンプ(^やhomeキー) $ 行の末尾にジャンプ(Endキー) H 画面の一番上の行にジャンプ M 画面の中央の行へジャ…