プログラミング言語 Rubyについての、初心者向けスレです。質問・要望・雑談などをどうぞ
質問するときは、OSやRubyのバージョン、エラーメッセージを書いて下さい。
Ruby on Rails については、WEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 65
https://mevius.5ch.net/test/read.cgi/tech/1545421414/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
Ruby コミュニティ公式
https://www.ruby-lang.org/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Ruby 初心者スレッド Part 66
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2a2c-RM0q)
2020/01/04(土) 01:15:34.30ID:X7t3Qsuc0678デフォルトの名無しさん (ワッチョイ dd5f-XQXO)
2020/08/14(金) 19:08:46.36ID:MuRP3aMr0 puts M.gethoge
だと
S0�0k0a0o0�
だと
S0�0k0a0o0�
679デフォルトの名無しさん (ワッチョイ dd5f-XQXO)
2020/08/14(金) 19:10:43.30ID:MuRP3aMr0 >>677
undefined method `encoding' for #<Fiddle::Pointer:0x0000000002c42230> (NoMethodError)
undefined method `encoding' for #<Fiddle::Pointer:0x0000000002c42230> (NoMethodError)
680デフォルトの名無しさん (ワッチョイ 1e7d-yoZq)
2020/08/14(金) 19:16:58.97ID:cCFmHkiX0 p M.gethoge.to_s.encoding
681デフォルトの名無しさん (ワッチョイ dd5f-XQXO)
2020/08/14(金) 19:19:22.81ID:MuRP3aMr0 >>680
#<Encoding:ASCII-8BIT>
#<Encoding:ASCII-8BIT>
682デフォルトの名無しさん (ワッチョイ dd5f-XQXO)
2020/08/14(金) 19:21:07.40ID:MuRP3aMr0 #include <stdio.h>
char name[] = "こんにちは!";
extern "C" __declspec(dllexport) char* __stdcall gethoge() {
return name;
}
dll側です
char name[] = "こんにちは!";
extern "C" __declspec(dllexport) char* __stdcall gethoge() {
return name;
}
dll側です
683デフォルトの名無しさん (ワッチョイ 1e7d-yoZq)
2020/08/14(金) 19:28:01.98ID:cCFmHkiX0 puts M.gethoge.to_s.force_encoding( Encoding::CP932 )
684デフォルトの名無しさん (ワッチョイ dd5f-XQXO)
2020/08/14(金) 19:29:32.82ID:MuRP3aMr0685デフォルトの名無しさん (オッペケ Srf1-wvIG)
2020/08/14(金) 19:38:38.19ID:5nafUaAcr hoge.dllコンパイルしてたら解決してた
良かったね
良かったね
686デフォルトの名無しさん (ワッチョイ dd5f-XQXO)
2020/08/14(金) 19:58:30.98ID:MuRP3aMr0 >>685
ありがとうございました
ありがとうございました
687デフォルトの名無しさん (ワッチョイ e52c-178q)
2020/08/14(金) 22:28:15.31ID:SCMnTycc0 Windows で、Ruby を使うのは、CP932 で苦しむ。
ちょっとした処理でも、外部・CP932 → Ruby内部・UTF-8 → 外部・CP932
クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
ちょっとした処理でも、外部・CP932 → Ruby内部・UTF-8 → 外部・CP932
クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる
str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換
ary = str.each_line.map( &:strip ) # 連続する空白類を除去する
IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
688デフォルトの名無しさん (ワッチョイ 8201-FRDO)
2020/08/14(金) 23:58:52.64ID:sxmwfi0L0689デフォルトの名無しさん (ワッチョイ 9d6a-2ych)
2020/08/18(火) 19:07:20.91ID:7fbjefcm0 mechanizeのform送信を使って5chに書きこむことはできますか?
textareaにvalue値を入れ、submitし、承諾しますか?の画面まで行けたのですが、そこから同じようにsubmitしてもページ遷移が起こらずそのままみたいです
textareaにvalue値を入れ、submitし、承諾しますか?の画面まで行けたのですが、そこから同じようにsubmitしてもページ遷移が起こらずそのままみたいです
690デフォルトの名無しさん (オッペケ Srf1-wvIG)
2020/08/18(火) 19:31:46.44ID:AGh/qXAtr >>689
cookie
cookie
691デフォルトの名無しさん (ワッチョイ 9d6a-2ych)
2020/08/18(火) 19:53:02.69ID:7fbjefcm0 >>690
具体的にcoockieをどうすれば良いでしょうか?
具体的にcoockieをどうすれば良いでしょうか?
692デフォルトの名無しさん (エムゾネ FF62-jwrZ)
2020/08/18(火) 20:08:47.36ID:h5vNCvfYF hanamogera
tepodon
tepodon
693デフォルトの名無しさん (ワッチョイ 6285-UC6e)
2020/08/18(火) 21:43:20.22ID:HR/M/dGq0 >>687
>Windows で、Ruby を使うのは、CP932 で苦しむ。
>ちょっとした処理でも、外部・CP932 → Ruby内部・UTF-8 → 外部・CP932
Rubyを生半可に知ったつもりの人にありがちな勘違いだな
まず、多言語化に対応した多くのプログラミング言語は、
内部エンコーディングとしてUTF-8を採用している、ここまでは間違いではない
しかしながらRubyは内部エンコーディングとして特定のエンコーディングを採用せず、
文字列(String)オブジェクトの属性としてエンコーディング情報を保持する
方式を採用した
だから>>688氏が指摘しているように、エンコーディングをCP932で統一できるなら、
Rubyであれば 外部・CP932 → Ruby内部・CP932 → 外部・CP932 と
エンコーディングフリーなプログラミンングを実践できる
・Ruby 2.7.0 リファレンスマニュアル > 多言語化
ttps://docs.ruby-lang.org/ja/latest/doc/spec=2fm17n.html
・Rubyのエンコーディング
ttps://www.sl*d*share.net/tmtm/ruby-nseg30
・Rubyのエンコーディング
ttps://tmtms.h*t*n*blog.com/entry/20120812/ruby_encoding
ありふれた言語、たとえばPythonであれば内部エンコーディンングはUTF-8固定だから:
>Windows で、Python を使うのは、CP932 で苦しむ。
>ちょっとした処理でも、外部・CP932 → Python内部・UTF-8 → 外部・CP932
という指摘は正しい
>Windows で、Ruby を使うのは、CP932 で苦しむ。
>ちょっとした処理でも、外部・CP932 → Ruby内部・UTF-8 → 外部・CP932
Rubyを生半可に知ったつもりの人にありがちな勘違いだな
まず、多言語化に対応した多くのプログラミング言語は、
内部エンコーディングとしてUTF-8を採用している、ここまでは間違いではない
しかしながらRubyは内部エンコーディングとして特定のエンコーディングを採用せず、
文字列(String)オブジェクトの属性としてエンコーディング情報を保持する
方式を採用した
だから>>688氏が指摘しているように、エンコーディングをCP932で統一できるなら、
Rubyであれば 外部・CP932 → Ruby内部・CP932 → 外部・CP932 と
エンコーディングフリーなプログラミンングを実践できる
・Ruby 2.7.0 リファレンスマニュアル > 多言語化
ttps://docs.ruby-lang.org/ja/latest/doc/spec=2fm17n.html
・Rubyのエンコーディング
ttps://www.sl*d*share.net/tmtm/ruby-nseg30
・Rubyのエンコーディング
ttps://tmtms.h*t*n*blog.com/entry/20120812/ruby_encoding
ありふれた言語、たとえばPythonであれば内部エンコーディンングはUTF-8固定だから:
>Windows で、Python を使うのは、CP932 で苦しむ。
>ちょっとした処理でも、外部・CP932 → Python内部・UTF-8 → 外部・CP932
という指摘は正しい
694デフォルトの名無しさん (ワッチョイ 8201-FRDO)
2020/08/18(火) 22:19:28.71ID:KlQrPk6/0 CSI方式を採用した背景はこれ読むといいよ
https://jp.quora.com/Ruby-deha-naze-UCS-seiki-ka-wo-saiyou-shi-tei-nai-node-shou-ka/answers/141570426
↓こう書いとけばリテラルもI/OのデフォルトもCP932
#! /usr/bin/env ruby -E CP932:CP932
# encoding: CP932
https://jp.quora.com/Ruby-deha-naze-UCS-seiki-ka-wo-saiyou-shi-tei-nai-node-shou-ka/answers/141570426
↓こう書いとけばリテラルもI/OのデフォルトもCP932
#! /usr/bin/env ruby -E CP932:CP932
# encoding: CP932
695デフォルトの名無しさん (テテンテンテン MM4f-f6AD)
2020/08/19(水) 00:17:36.61ID:45CsPPnjM エンコーディングのコストなんてIOに比べりゃ無視できる
ぶっちゃけRubyのやり方は百害あって一利無し
ぶっちゃけRubyのやり方は百害あって一利無し
696デフォルトの名無しさん (ワッチョイ 7fa5-u2+K)
2020/08/19(水) 00:28:27.54ID:dM5o8vR90 windowsのファイルシステムのエンコーディングを中途半端なままにしたことで、
windowsユーザーへの嫌がらせになった以外に何の意味もなかった
windowsユーザーへの嫌がらせになった以外に何の意味もなかった
697デフォルトの名無しさん (ワッチョイ 7f47-fHWV)
2020/08/19(水) 01:42:46.33ID:Ch6IfZIA0698デフォルトの名無しさん (ワッチョイ 9f33-KILr)
2020/08/19(水) 01:52:26.05ID:zoQbwZV20699687 (ワッチョイ 1f2c-7CyN)
2020/08/19(水) 02:07:17.75ID:w/3evjlx0 UTF-8 以外は実績が無いから、文字列処理とか、怖くて使えないだろ。
誰も使っていないから
文字列を、正しく数値に変換できるのかとか
IO の境界で、変換する方が安全だと思う
誰も使っていないから
文字列を、正しく数値に変換できるのかとか
IO の境界で、変換する方が安全だと思う
700デフォルトの名無しさん (ワッチョイ 1f2c-7CyN)
2020/08/19(水) 02:33:17.91ID:w/3evjlx0 >>689
RubyでCookieの読み込みや保存を幸せにする(Mechanize&Selenium)
https://rooter.jp/web-crawling/ruby-cookie/
「ruby mechanize cookie」で検索すれば?
漏れは、selenium webdriver で、実際のブラウザを操作しているだけだから、
クッキーの事も、考えたことはない。
ブラウザが勝手にやる
プログラミングでは、入力して、ボタンを押すだけだから、簡単。
下は、yahoo のログインの例
driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"
element = driver.find_element(:id => "username")
element.send_key "ユーザー名"
driver.find_element(:id => "btnNext").click
element = driver.find_element(:id => "passwd")
element.send_key "パスワード"
driver.find_element(:id => "btnSubmit").click
RubyでCookieの読み込みや保存を幸せにする(Mechanize&Selenium)
https://rooter.jp/web-crawling/ruby-cookie/
「ruby mechanize cookie」で検索すれば?
漏れは、selenium webdriver で、実際のブラウザを操作しているだけだから、
クッキーの事も、考えたことはない。
ブラウザが勝手にやる
プログラミングでは、入力して、ボタンを押すだけだから、簡単。
下は、yahoo のログインの例
driver.navigate.to "https://login.yahoo.co.jp/config/login_verify2?.src=ym"
element = driver.find_element(:id => "username")
element.send_key "ユーザー名"
driver.find_element(:id => "btnNext").click
element = driver.find_element(:id => "passwd")
element.send_key "パスワード"
driver.find_element(:id => "btnSubmit").click
701700 (ワッチョイ 1f2c-1yu9)
2020/08/19(水) 07:23:42.56ID:w/3evjlx0 selenium webdriver なら、これで、
この板のtest スレの、書き込み確認画面が出る。
ひょっとしたら、確認画面が出ないかも知れない
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 15 # default timeout
# プログラム板のtest スレ
driver.navigate.to "https://mevius.5ch.net/test/read.cgi/tech/1597362675/1"
element = driver.find_element( :css => ".formbody textarea" )
element.send_key "あい"
driver.find_element( :css => ".formbody input.submitbtn" ).click
この板のtest スレの、書き込み確認画面が出る。
ひょっとしたら、確認画面が出ないかも知れない
require "selenium-webdriver"
options = Selenium::WebDriver::Chrome::Options.new
options.add_option( :detach, true ) # ブラウザを切り離す
options.add_argument( '--start-maximized' ) # 画面最大
driver = Selenium::WebDriver.for :chrome, options: options
driver.manage.timeouts.implicit_wait = 15 # default timeout
# プログラム板のtest スレ
driver.navigate.to "https://mevius.5ch.net/test/read.cgi/tech/1597362675/1"
element = driver.find_element( :css => ".formbody textarea" )
element.send_key "あい"
driver.find_element( :css => ".formbody input.submitbtn" ).click
702700 (ワッチョイ 1f2c-1yu9)
2020/08/19(水) 09:15:13.90ID:w/3evjlx0 >>701
の続きに、以下を書くと、確認画面に切り替わった後の処理も、できる
単に、input[type=submit] のボタンを待つと、
遷移前後の両方のページで、ヒットするので、
確認画面に切り替わったかどうか、判別できない
遷移後のページだけに存在する、要素を待てば、
それが出現するまで、wait できるかも
sleep 7
# 確認画面が出る。https://mevius.5ch.net/test/bbs.cgi
puts driver.current_url # 切り替わったかどうか、URL を表示する
# ボタンのラベルを表示する
puts driver.find_element( :css => "input[type=submit]" ).attribute( "value" )
の続きに、以下を書くと、確認画面に切り替わった後の処理も、できる
単に、input[type=submit] のボタンを待つと、
遷移前後の両方のページで、ヒットするので、
確認画面に切り替わったかどうか、判別できない
遷移後のページだけに存在する、要素を待てば、
それが出現するまで、wait できるかも
sleep 7
# 確認画面が出る。https://mevius.5ch.net/test/bbs.cgi
puts driver.current_url # 切り替わったかどうか、URL を表示する
# ボタンのラベルを表示する
puts driver.find_element( :css => "input[type=submit]" ).attribute( "value" )
703デフォルトの名無しさん (ワッチョイ 1f6a-RTUg)
2020/08/19(水) 10:10:18.21ID:jdryYSd80 >>700さんのリンク先参考に見よう見まねでとりあえずやってみたんですけど、いまいちcookie_jarとかよくわからない・・・
require 'mechanize'
require 'yaml'
agent = Mechanize.new
agent.user_agent_alias = "Windows Mozilla"
agent.get('https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50')
cookie_str = agent.cookies.map{|e| e.set_cookie_value}.join(", ")
#puts cookie_str
agent2 = Mechanize.new
HTTP::Cookie.parse(cookie_str, "https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50").each{ |cookie| agent2.cookie_jar << cookie }
cookie_yml = agent.cookies.map{ |e| e.to_yaml }.join
#puts cookie_yml
agent2.cookie_jar << YAML.load(cookie_yml)
#pp agent2.cookie_jar
agent2.user_agent_alias = "Windows Mozilla"
page = agent2.get('https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50')
form = page.form_with(:action=>'//mevius.5ch.net/test/bbs.cgi')
form.field_with(:name=>'MESSAGE').value = 'テスト'
next_page = agent2.submit(form)
form2 = next_page.form_with(:action=>'../test/bbs.cgi?guid=ON')
require 'mechanize'
require 'yaml'
agent = Mechanize.new
agent.user_agent_alias = "Windows Mozilla"
agent.get('https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50')
cookie_str = agent.cookies.map{|e| e.set_cookie_value}.join(", ")
#puts cookie_str
agent2 = Mechanize.new
HTTP::Cookie.parse(cookie_str, "https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50").each{ |cookie| agent2.cookie_jar << cookie }
cookie_yml = agent.cookies.map{ |e| e.to_yaml }.join
#puts cookie_yml
agent2.cookie_jar << YAML.load(cookie_yml)
#pp agent2.cookie_jar
agent2.user_agent_alias = "Windows Mozilla"
page = agent2.get('https://mevius.5ch.net/test/read.cgi/tech/1578068134/l50')
form = page.form_with(:action=>'//mevius.5ch.net/test/bbs.cgi')
form.field_with(:name=>'MESSAGE').value = 'テスト'
next_page = agent2.submit(form)
form2 = next_page.form_with(:action=>'../test/bbs.cgi?guid=ON')
704デフォルトの名無しさん (ワッチョイ 1f6a-RTUg)
2020/08/19(水) 10:13:04.91ID:jdryYSd80 agent2.submit(form2)
705700 (ワッチョイ 1f2c-1yu9)
2020/08/19(水) 10:21:48.83ID:w/3evjlx0 そりゃ、個別のページのクッキーを解析したり、大変だよ。
お金をもらえる訳でもないのに、他人が作ったシステムを分析するのは
それが嫌だから、漏れらは、selenium webdriver で、ブラウザにやらせる。
入力したり、ボタンを押したり、ブラウザを操作するだけだから、まだマシ
お金をもらえる訳でもないのに、他人が作ったシステムを分析するのは
それが嫌だから、漏れらは、selenium webdriver で、ブラウザにやらせる。
入力したり、ボタンを押したり、ブラウザを操作するだけだから、まだマシ
706700 (ワッチョイ 1f2c-1yu9)
2020/08/19(水) 10:32:07.88ID:w/3evjlx0 >>703
>form = page.form_with(:action=>'//mevius.5ch.net/test/bbs.cgi')
>form2 = next_page.form_with(:action=>'../test/bbs.cgi?guid=ON')
これらには、https: とか、付いていないけど、動くの?
>form = page.form_with(:action=>'//mevius.5ch.net/test/bbs.cgi')
>form2 = next_page.form_with(:action=>'../test/bbs.cgi?guid=ON')
これらには、https: とか、付いていないけど、動くの?
707700 (ワッチョイ 1f2c-1yu9)
2020/08/19(水) 10:38:39.32ID:w/3evjlx0 簡単に言えば、serialize と同じなんだろう。
異なるアプリに、Ruby のオブジェクトを渡せない
1 などの数値も、"1" みたいな文字列になってしまうのだろう。
すべての型情報が無くなって、文字列になる。
だから、YAML.load とかを、使っているのだろう
今なら、JSON を使う事が多い
異なるアプリに、Ruby のオブジェクトを渡せない
1 などの数値も、"1" みたいな文字列になってしまうのだろう。
すべての型情報が無くなって、文字列になる。
だから、YAML.load とかを、使っているのだろう
今なら、JSON を使う事が多い
708デフォルトの名無しさん (ワッチョイ 1f6a-Mhwj)
2020/08/19(水) 14:06:31.62ID:jdryYSd80 agent.getの時点でcookieの情報って得られてるんですね
709デフォルトの名無しさん (ワッチョイ 1f6a-Mhwj)
2020/08/19(水) 14:20:11.51ID:jdryYSd80 >>705
seleniumはブラウザ操作でmechanizeはhttp解析?みたいな感じですか?
seleniumはブラウザ操作でmechanizeはhttp解析?みたいな感じですか?
710デフォルトの名無しさん (ワッチョイ 1f35-6L5+)
2020/08/19(水) 20:08:35.13ID:JONuvCWb0 >>689
よく調べたわけじゃ無いけど、
CSRF, クロスサイトリクエストフォージェリ、サイバー攻撃の一種対策されてるんじゃないかなぁ。
つまり、何某かのTokenが5chから送られていて、そいつをPOSTしないといけないとか。
5chのサイトからPOSTする時には、<input type=“hidden” value=“Token” name=“CSRF対策”>とかのタグがあって、Submitと共に自動送信される。
よく調べたわけじゃ無いけど、
CSRF, クロスサイトリクエストフォージェリ、サイバー攻撃の一種対策されてるんじゃないかなぁ。
つまり、何某かのTokenが5chから送られていて、そいつをPOSTしないといけないとか。
5chのサイトからPOSTする時には、<input type=“hidden” value=“Token” name=“CSRF対策”>とかのタグがあって、Submitと共に自動送信される。
711700 (ワッチョイ 1f2c-1yu9)
2020/08/19(水) 22:43:49.56ID:w/3evjlx0 プログラム板のtest スレと、その確認画面は、どちらも、mevius.5ch.net だから、
クロスドメインアクセスにはならない
ただ、HTML は本来、1回限りのアクセスで、前後のページには関係がない。
それを関係があるようにするために、ブラウザのクッキーを使って、セッションを結ぶ
こういうセッションがあるものは難しい。
5ch 側は仕様を知っているけど、分析する方は、仕様を知らないから、
ずっと他人のアプリを解析しなければならない
漏れは、解析するのが面倒だから、selenium webdriver を使って、ブラウザにやらす。
ただ、これはブラウザの操作でも、難しい
クッキーが無ければ確認画面が出て、有れば確認画面が出ない。
こういう条件判断をしないといけないから、難しい
Ruby on Rails でも、システムテストには、Capybara を使うけど、
これは、seleniumで、Headless Chrome を使っている
他人のアプリの解析は、HTML ヘッダーなどを分析しないといけないから、かなり難しい。
スクレイピングをやってる香具師で、こういうのを知ってる香具師は、まずいない。
HTMLヘッダーなんて、無数の項目があるから
クロスドメインアクセスにはならない
ただ、HTML は本来、1回限りのアクセスで、前後のページには関係がない。
それを関係があるようにするために、ブラウザのクッキーを使って、セッションを結ぶ
こういうセッションがあるものは難しい。
5ch 側は仕様を知っているけど、分析する方は、仕様を知らないから、
ずっと他人のアプリを解析しなければならない
漏れは、解析するのが面倒だから、selenium webdriver を使って、ブラウザにやらす。
ただ、これはブラウザの操作でも、難しい
クッキーが無ければ確認画面が出て、有れば確認画面が出ない。
こういう条件判断をしないといけないから、難しい
Ruby on Rails でも、システムテストには、Capybara を使うけど、
これは、seleniumで、Headless Chrome を使っている
他人のアプリの解析は、HTML ヘッダーなどを分析しないといけないから、かなり難しい。
スクレイピングをやってる香具師で、こういうのを知ってる香具師は、まずいない。
HTMLヘッダーなんて、無数の項目があるから
712700 (ワッチョイ 1f2c-1yu9)
2020/08/19(水) 22:57:07.95ID:w/3evjlx0 たぶん、Mechanizeは、Nokogiri みたいなものなんだろう
その時点のHTML を取得するだけ。
ちょっとした、GET, POST などは、出来るけど
JavaScript, Ajax で動的にページを作ったものには、対応できないとか
その時点のHTML を取得するだけ。
ちょっとした、GET, POST などは、出来るけど
JavaScript, Ajax で動的にページを作ったものには、対応できないとか
713デフォルトの名無しさん (ワッチョイ 1f35-6L5+)
2020/08/20(木) 06:07:11.62ID:5ApdpCMn0 >>712
MechanizeはServerから受け取ったCookieを返すよ。
だから、POSTしたパラメータに問題があって上手くいかないのだ。
書き込み画面のHTMLからinputタグをscrapingしてhidden属性の付いてるのを探す事が先決。
見つかったらそのname, valueを取り出してPOSTパラメータへセットしてやれば良い。
MechanizeはServerから受け取ったCookieを返すよ。
だから、POSTしたパラメータに問題があって上手くいかないのだ。
書き込み画面のHTMLからinputタグをscrapingしてhidden属性の付いてるのを探す事が先決。
見つかったらそのname, valueを取り出してPOSTパラメータへセットしてやれば良い。
714デフォルトの名無しさん (ワッチョイ 1f35-6L5+)
2020/08/20(木) 06:08:32.79ID:5ApdpCMn0 seleniumが簡単だが、動作が重い。
Mechanizeでがんばれ!
Mechanizeでがんばれ!
715デフォルトの名無しさん (ワッチョイ 1f35-6L5+)
2020/08/20(木) 06:38:17.41ID:5ApdpCMn0 >>687
これは違う!
外部・CP932 → Ruby内部・CP932 → 外部・CP932
が正解。
Ruby内部は、外部・CP932であればCP932だし、UTF-8なら、それに合わせて、Ruby内部・UTF-8なのだ。
これは違う!
外部・CP932 → Ruby内部・CP932 → 外部・CP932
が正解。
Ruby内部は、外部・CP932であればCP932だし、UTF-8なら、それに合わせて、Ruby内部・UTF-8なのだ。
716デフォルトの名無しさん (ワッチョイ 1f35-6L5+)
2020/08/20(木) 06:39:16.98ID:5ApdpCMn0 >>708
agent.cookies
agent.cookies
717デフォルトの名無しさん (ワッチョイ 1f35-6L5+)
2020/08/20(木) 07:05:48.71ID:5ApdpCMn0 大抵のWebサイトのFormは、Formを表示したBrowserからしか、POSTできない様になっている。
その仕組みは、ServerがFormを表示するするHTMLを生成する時に、Tokenを埋め込み、そのTokenが帰って来なかったPOSTを弾くと言うものだ。
TokenはFormが表示されるごとに変更さる。(one time Token)
https://html-coding.co.jp/knowhow/security/csrf/
その仕組みは、ServerがFormを表示するするHTMLを生成する時に、Tokenを埋め込み、そのTokenが帰って来なかったPOSTを弾くと言うものだ。
TokenはFormが表示されるごとに変更さる。(one time Token)
https://html-coding.co.jp/knowhow/security/csrf/
718700 (ワッチョイ 1f2c-1yu9)
2020/08/20(木) 07:13:47.07ID:nWR09WFB0 Rails にもある、CSRF のセキュリティー・トークンとかか?
2つのページが、同じセッションと判別できるような、仕組みを探さないといけない。
他人が作った、アプリを解析するのは大変
2つのページが、同じセッションと判別できるような、仕組みを探さないといけない。
他人が作った、アプリを解析するのは大変
719デフォルトの名無しさん (ワッチョイ 1f35-6L5+)
2020/08/20(木) 07:53:19.33ID:5ApdpCMn0720デフォルトの名無しさん (ワッチョイ 9f14-YpYZ)
2020/08/20(木) 09:46:21.48ID:Myo84Br30 >>715
それも違う。RubyはUnicode対応で作られてる
だから内部もUnicode
Windows側からUTF16で渡された場合はUnicodeで受け取るし
ANSIで渡された場合はUnicodeに変換して処理する
出力する場合はその反対
それも違う。RubyはUnicode対応で作られてる
だから内部もUnicode
Windows側からUTF16で渡された場合はUnicodeで受け取るし
ANSIで渡された場合はUnicodeに変換して処理する
出力する場合はその反対
721デフォルトの名無しさん (ワッチョイ 1f2c-1yu9)
2020/08/20(木) 10:42:37.67ID:nWR09WFB0 Ruby の文字列は、混在できる
ある文字列は、CP932 で、
別の文字列は、UTF-8 とか
何もしなければ、変換されない
ある文字列は、CP932 で、
別の文字列は、UTF-8 とか
何もしなければ、変換されない
722デフォルトの名無しさん (ワッチョイ ff7d-hMmK)
2020/08/20(木) 11:13:11.83ID:FC2EZr4O0 >>719
kan = [
"\xE6\xBC\xA2\xE5\xAD\x97".force_encoding( Encoding::UTF_8 ),
"\x8A\xBF\x8E\x9A".force_encoding( Encoding::CP932 ),
"\xB4\xC1\xBB\xFA".force_encoding( Encoding::EUC_JP ),
"\x1B\x24B4A;z\x1B(B".force_encoding( Encoding::ISO2022_JP )
]
puts kan
kan.combination(2){ |a,b| p a == b }
kan.size.times{|n| puts kan.inject(''){|r,s| r << s.encode(kan[n].encoding) } }
puts kan.map{|s| s.encoding }
kan = [
"\xE6\xBC\xA2\xE5\xAD\x97".force_encoding( Encoding::UTF_8 ),
"\x8A\xBF\x8E\x9A".force_encoding( Encoding::CP932 ),
"\xB4\xC1\xBB\xFA".force_encoding( Encoding::EUC_JP ),
"\x1B\x24B4A;z\x1B(B".force_encoding( Encoding::ISO2022_JP )
]
puts kan
kan.combination(2){ |a,b| p a == b }
kan.size.times{|n| puts kan.inject(''){|r,s| r << s.encode(kan[n].encoding) } }
puts kan.map{|s| s.encoding }
723デフォルトの名無しさん (ワッチョイ 7f01-08ML)
2020/08/20(木) 12:03:56.57ID:tyNv301J0724デフォルトの名無しさん (ワッチョイ 9f33-KILr)
2020/08/20(木) 13:07:43.70ID:UjCnOWKd0725デフォルトの名無しさん (ワッチョイ ff8c-rgzE)
2020/08/20(木) 22:50:29.80ID:Uplnh7Gz0 >>720 変換はせんだろ
726デフォルトの名無しさん (ワッチョイ 1f61-VqLe)
2020/08/21(金) 01:31:14.88ID:SPVvFNrm0 Rubyをしばらく使ってきたが、やっぱり、ブロックの最後がendであることや、
0,1が共に真であること、複数行コメントが書きにくいこと、
構造体の書き方が new Person ではなく、Person.newであること、
Directory関連でワイルドカードを使うと、関連フォルダを全て変数に読み込んでから
動作し始めること、などが使いにくいので、node.jsに乗り換えようかなと思ってる。
Rubyが良い点は、それらの機能は使ったことは無いけど、
・最初から用意されているメソッド群でmethodチェーンが書けること。
・ブロック関数が書けること。
かな。
でも、使ったことがないということは、優先順位が低いと言うことではなかろうか。
0,1が共に真であること、複数行コメントが書きにくいこと、
構造体の書き方が new Person ではなく、Person.newであること、
Directory関連でワイルドカードを使うと、関連フォルダを全て変数に読み込んでから
動作し始めること、などが使いにくいので、node.jsに乗り換えようかなと思ってる。
Rubyが良い点は、それらの機能は使ったことは無いけど、
・最初から用意されているメソッド群でmethodチェーンが書けること。
・ブロック関数が書けること。
かな。
でも、使ったことがないということは、優先順位が低いと言うことではなかろうか。
727デフォルトの名無しさん (ワッチョイ 9f33-KILr)
2020/08/21(金) 10:50:02.63ID:w5e9p4kz0 え。
そんな調子だと何を使ってもダメそう。w
そんな調子だと何を使ってもダメそう。w
728デフォルトの名無しさん (ワッチョイ 1f61-VqLe)
2020/08/21(金) 13:05:57.88ID:SPVvFNrm0 >>727
個人的には、実世界では、能力はかなり高いと評価されているけれど。
個人的には、実世界では、能力はかなり高いと評価されているけれど。
729デフォルトの名無しさん (ワッチョイ 1f2c-1yu9)
2020/08/21(金) 14:15:07.59ID:tDzk/wNZ0 0, 0.0, 空文字列、空配列、空辞書など、
各型に、偽がある言語は、バグる
Ruby の偽は、nil, false だけ
MISRA-C でも、( a ) みたいに、単独の数値型の変数で、真偽値を表すのは禁止されてる。
0 なら偽として使う方法
Ruby で、if ( b ) みたいに書けるのは、nil の時だけ偽だから。
0, 0.0, 空文字列、空配列、空辞書などでも真
または、b がbool 型の場合
各型に、偽がある言語は、バグる
Ruby の偽は、nil, false だけ
MISRA-C でも、( a ) みたいに、単独の数値型の変数で、真偽値を表すのは禁止されてる。
0 なら偽として使う方法
Ruby で、if ( b ) みたいに書けるのは、nil の時だけ偽だから。
0, 0.0, 空文字列、空配列、空辞書などでも真
または、b がbool 型の場合
730デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/21(金) 14:31:29.79ID:2LaXNW9iF nil == false
は false
は false
731デフォルトの名無しさん (ワッチョイ 9f33-KILr)
2020/08/21(金) 14:33:13.81ID:w5e9p4kz0 >>728
相対評価は、まわりのレベルがわからんので、なんとも。
元コメから判断すると、周辺まるごと低いのかな?と思わざるを得ない。w
まあ、たまたま自分が使ってない特定機能をアレコレ言うのはアホに見えるのはたしか。
相対評価は、まわりのレベルがわからんので、なんとも。
元コメから判断すると、周辺まるごと低いのかな?と思わざるを得ない。w
まあ、たまたま自分が使ってない特定機能をアレコレ言うのはアホに見えるのはたしか。
732デフォルトの名無しさん (ワッチョイ 9f33-KILr)
2020/08/21(金) 14:35:00.79ID:w5e9p4kz0733デフォルトの名無しさん (ワッチョイ 1f61-VqLe)
2020/08/21(金) 14:49:57.72ID:SPVvFNrm0734デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/21(金) 15:22:52.16ID:2LaXNW9iF スキンのひとか
735デフォルトの名無しさん (JP 0H7f-08ol)
2020/08/21(金) 15:35:51.23ID:dYZcDjdTH 学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
VM + ASM を書いた (C#, DX) * x86 ではない!
simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ
VM + ASM のダウンロード
ttp://up.x0000.net/files/TSimulang.zip
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
VM + ASM を書いた (C#, DX) * x86 ではない!
simulationライブラリで純粋な関数式プログラミングをする
UIライブラリ (C#, 2D) を作ったよ
連続と離散を統一した!
4Dエンジン
matrixのライブラリ
ある強力なFor関数
SQLライブラリ
VM + ASM のダウンロード
ttp://up.x0000.net/files/TSimulang.zip
736デフォルトの名無しさん (オッペケ Sr73-YieA)
2020/08/22(土) 00:05:39.01ID:cH1OO8njr 「実世界では、能力はかなり高いと評価されている」っていう言い回しが最高に知性を感じないんですけど
いや煽りとかじゃなくマジで
いや煽りとかじゃなくマジで
737デフォルトの名無しさん (ワッチョイ 9f14-YpYZ)
2020/08/22(土) 00:13:16.02ID:rn2pygew0 異世界では無双している
738デフォルトの名無しさん (ワッチョイ 9f33-KILr)
2020/08/22(土) 02:33:00.24ID:orN/hav20 >>736
非常に上層のごく一部の人しか入れないんだぞ!
非常に上層のごく一部の人しか入れないんだぞ!
739デフォルトの名無しさん (ワッチョイ ff8c-IEoI)
2020/08/22(土) 08:20:46.05ID:lfF/bqLu0 非情に上層のごく一部の人しか入れないんだぞ!
740デフォルトの名無しさん (ワッチョイ 7f52-Qb6H)
2020/08/22(土) 08:46:37.28ID:j5SL9Fsb0 >>736
あんまりちゃんと人と会話したりまともな本とかは読んだことがなくて、丁寧にかつちょっとカッコつけて話そうとしたらラノベとかで覚えた変な言い回ししか出てこなかった、と予想してみる
あんまりちゃんと人と会話したりまともな本とかは読んだことがなくて、丁寧にかつちょっとカッコつけて話そうとしたらラノベとかで覚えた変な言い回ししか出てこなかった、と予想してみる
741デフォルトの名無しさん (ワッチョイ ffbb-ZIaG)
2020/08/22(土) 15:31:25.70ID:rjSk5doP0 まあ、能力の高いっていうそこのお方は、Youtubeで流行ってる学歴ジャンケンでもして能力を示した方がいいんじゃん?
学歴だけが能力を示すものじゃないにしても、能力がどうの言い張るだけよりずっとマシだし、おおよその実力が周りの人も推定できるだろうからいいぜ!
学歴だけが能力を示すものじゃないにしても、能力がどうの言い張るだけよりずっとマシだし、おおよその実力が周りの人も推定できるだろうからいいぜ!
742デフォルトの名無しさん (ワッチョイ ad61-CCZD)
2020/09/01(火) 22:10:17.03ID:vLz2GEqc0 Rubyは、node.jsに比べて、ファイル出力のメソッド名が短いので楽。
fp=File.open("filename","w");
fp.print( "nanigshi=#{変数名}\n" );
みたいに書ける。node.jsだと、
fd = fs.openSync("filename", "w");
fs.writeSync(fd, `nanigshi=${変数名}\n` );
となり、キーワードが長い。逆引用符`が打ち込みにくいという
欠点も有る。
fp=File.open("filename","w");
fp.print( "nanigshi=#{変数名}\n" );
みたいに書ける。node.jsだと、
fd = fs.openSync("filename", "w");
fs.writeSync(fd, `nanigshi=${変数名}\n` );
となり、キーワードが長い。逆引用符`が打ち込みにくいという
欠点も有る。
743デフォルトの名無しさん (オッペケ Sr51-eS8N)
2020/09/01(火) 22:45:30.43ID:Bhx0z62Fr US配列なら楽だぞ
744デフォルトの名無しさん (ワッチョイ 5133-ZYZO)
2020/09/01(火) 22:58:40.10ID:JyDU62SB0745デフォルトの名無しさん (ワッチョイ c9e6-8BP0)
2020/09/01(火) 23:33:04.32ID:knLE24Nq0 ブロックと;省略で
File.open("filename","w") { |file| puts "nanigshi=#{変数名}" )
みたいに書くのがRubyっぽくない?
File.open("filename","w") { |file| puts "nanigshi=#{変数名}" )
みたいに書くのがRubyっぽくない?
746デフォルトの名無しさん (ワッチョイ bf8c-9HBf)
2020/09/02(水) 02:02:43.13ID:0/6Ab1gT0 クローズしちゃうだろ
747デフォルトの名無しさん (ワッチョイ e761-vnqX)
2020/09/02(水) 15:16:44.13ID:Wngy4TOD0748デフォルトの名無しさん (ワッチョイ e761-vnqX)
2020/09/02(水) 15:21:09.21ID:Wngy4TOD0 open, writeといえば、Unix/Linux/Windows/Macでも動作がほぼ同じな
非常に大事なもので、特にUnix/Linuxでは、「全てがファイル」という設計
思想であり、その根幹を成すのが、これらの関数で、あらゆる概念の基礎と
なっているので、その動作を変更するのはあらゆる場所に悪影響を及ぼす。
Unix系では、OSの動作の90%以上が、open, writeに依存した設計に
なっているといってもかごんでは無いくらい、基礎中の基礎。
その動作を変更することは、自然法則を変更するくらい驚天動地の試み。
重力が引力ではなく斥力になってしまうくらいで、太陽も惑星も存在し得ない
位の結果となる。
非常に大事なもので、特にUnix/Linuxでは、「全てがファイル」という設計
思想であり、その根幹を成すのが、これらの関数で、あらゆる概念の基礎と
なっているので、その動作を変更するのはあらゆる場所に悪影響を及ぼす。
Unix系では、OSの動作の90%以上が、open, writeに依存した設計に
なっているといってもかごんでは無いくらい、基礎中の基礎。
その動作を変更することは、自然法則を変更するくらい驚天動地の試み。
重力が引力ではなく斥力になってしまうくらいで、太陽も惑星も存在し得ない
位の結果となる。
749デフォルトの名無しさん (ワッチョイ 4733-XuvI)
2020/09/02(水) 15:57:35.42ID:iCfAZPhu0 >>747
Cとの互換性がー、とか非同期重視のアグレッシブなNode.jsに言うの?w
Cとの互換性がー、とか非同期重視のアグレッシブなNode.jsに言うの?w
750デフォルトの名無しさん (ワッチョイ 7f14-XrX+)
2020/09/02(水) 16:53:35.95ID:X9xcF9vI0751デフォルトの名無しさん (ワッチョイ e761-vnqX)
2020/09/02(水) 17:55:27.42ID:Wngy4TOD0 >>749
Cとの互換性というより、UnixやWindowsなどのあらゆるOSの基礎の部分との
互換性。
それくらい、open, writeは、OSの基礎に根ざしていて、勝手に働きを変えるべき
じゃない。
働きを変えたいなら、変えた方の関数の名前を少し変えるべき。
それで十分なのに、名前と働きをさかさまにしてはいけなかった。
Cとの互換性というより、UnixやWindowsなどのあらゆるOSの基礎の部分との
互換性。
それくらい、open, writeは、OSの基礎に根ざしていて、勝手に働きを変えるべき
じゃない。
働きを変えたいなら、変えた方の関数の名前を少し変えるべき。
それで十分なのに、名前と働きをさかさまにしてはいけなかった。
752デフォルトの名無しさん (ワッチョイ bf8c-9HBf)
2020/09/02(水) 18:19:28.61ID:0/6Ab1gT0 rubyInstallerでruby 2.7入れたんだがirbのレスポンスがめちゃくちゃ遅くて
かなりゆっくりキーボード入力しても入力を取りこぼすんだけど
速くする方法ありませんか?
かなりゆっくりキーボード入力しても入力を取りこぼすんだけど
速くする方法ありませんか?
753デフォルトの名無しさん (ワッチョイ 4733-XuvI)
2020/09/02(水) 21:47:08.53ID:iCfAZPhu0754デフォルトの名無しさん (アウウィフ FF8b-th+2)
2020/09/03(木) 10:05:34.13ID:DK3Ul6vKF Sync.js
755デフォルトの名無しさん (ワッチョイ 272c-3NJ+)
2020/09/04(金) 00:42:11.02ID:Wl7qFIBb0 Node.js は非同期が基本。
Windows では、50ms 以上掛かるものは、非同期にするのが基本
>>752
irb とか、そんな面倒なものは使わない
VSCode の拡張機能・Code Runner(Run Code)で、
ファイル全体、または、コード片を選択して実行できる
Windows では、50ms 以上掛かるものは、非同期にするのが基本
>>752
irb とか、そんな面倒なものは使わない
VSCode の拡張機能・Code Runner(Run Code)で、
ファイル全体、または、コード片を選択して実行できる
756デフォルトの名無しさん (ワッチョイ bf8c-9HBf)
2020/09/04(金) 03:38:08.87ID:Akgzavid0 VSCodeでCode Runnerね。オーケーオーケー
757デフォルトの名無しさん (ワッチョイ 8714-XrX+)
2020/09/04(金) 05:36:12.08ID:ovAJuzA/0 穴ほって埋めるやつか
758デフォルトの名無しさん (ワッチョイ 4733-XuvI)
2020/09/04(金) 10:18:21.30ID:icCvRHhg0 平安京エイリアンか。
759デフォルトの名無しさん (ワッチョイ 272c-3NJ+)
2020/09/05(土) 22:17:01.41ID:dAk5cbFF0 エンジニアチャンネル粟島、9/4
プログラミングでYouTube動画の編集作業を自動化する
https://www.youtube.com/watch?v=2nDkNHeCKs4
プログラミングで、自動的に無音部分をカットして、動画をつなげる。
Python で作ってる
皆、何時間も掛かって編集しているから、
誰か、Ruby で作って、公開しろ
粟島に、スーパー・プログラマーの称号を独り占めさせるのは、癪にさわる
プログラミングでYouTube動画の編集作業を自動化する
https://www.youtube.com/watch?v=2nDkNHeCKs4
プログラミングで、自動的に無音部分をカットして、動画をつなげる。
Python で作ってる
皆、何時間も掛かって編集しているから、
誰か、Ruby で作って、公開しろ
粟島に、スーパー・プログラマーの称号を独り占めさせるのは、癪にさわる
760デフォルトの名無しさん (アウウィフ FF8b-th+2)
2020/09/06(日) 14:32:01.97ID:pKWvrGW4F ffmpeg 呼んでるだけだから ruby で同じことすればいいだけ
そもそも youtube の web 上の作業を自動化するのかと思ったらそうでもないし
誤解を招く
そもそも youtube の web 上の作業を自動化するのかと思ったらそうでもないし
誤解を招く
761759 (ワッチョイ 272c-3NJ+)
2020/09/07(月) 11:58:27.72ID:IF51aHwX0 粟島に、敵対心むき出しの、凡才プログラマーKBOY に教えてやったら?
エンジニアチャンネル粟島
【検証】現役プログラマーは30万円の案件を何時間で出来るのか?
https://www.youtube.com/watch?v=rt_X6n9oWa4
YouTube API で、指定条件に当てはまる、動画を集める(filtering)のを、Ruby で、1時間で作った。
つまり、時給30万円!
これも最終的に、30人が応募して、数千円になったらしいがw
エンジニアチャンネル粟島
【検証】現役プログラマーは30万円の案件を何時間で出来るのか?
https://www.youtube.com/watch?v=rt_X6n9oWa4
YouTube API で、指定条件に当てはまる、動画を集める(filtering)のを、Ruby で、1時間で作った。
つまり、時給30万円!
これも最終的に、30人が応募して、数千円になったらしいがw
762デフォルトの名無しさん (エムゾネ FF7f-j7FC)
2020/09/07(月) 12:03:06.35ID:K0kNn/CsF 闇サイトのバイトか
763デフォルトの名無しさん (ワッチョイ 4b2c-8GNv)
2020/09/23(水) 01:34:43.74ID:vUEpR4nB0 エンジニアチャンネル・小川
【悪用厳禁】Amazonの価格を監視するシステムを作ってみた
https://www.youtube.com/watch?v=Gr6FJUOfMHc
Amazon のAPI を使って、価格を監視して、LINE へ通知する
【悪用厳禁】Amazonの価格を監視するシステムを作ってみた
https://www.youtube.com/watch?v=Gr6FJUOfMHc
Amazon のAPI を使って、価格を監視して、LINE へ通知する
764デフォルトの名無しさん (ワッチョイ 6fda-AsQc)
2020/09/28(月) 08:01:27.35ID:ZnjqOblj0 このサイトIRB代わりに使ってたんですがバージョン2.1.5とめっちゃ古いです
ライブコーディング?機能のついた同種のサイトってないですか
http://fatiherikli.github.io/fil/#eyJwYXRoIjoiSVJCLnJiIiwic291cmNlIjoicCBSVUJZX1ZFUlNJT04ifQ==
ライブコーディング?機能のついた同種のサイトってないですか
http://fatiherikli.github.io/fil/#eyJwYXRoIjoiSVJCLnJiIiwic291cmNlIjoicCBSVUJZX1ZFUlNJT04ifQ==
765デフォルトの名無しさん (ワッチョイ d32c-G8Sl)
2020/10/01(木) 08:39:12.41ID:theiHz1p0 JSON ファイルの中身が、下のようなユニコード・コードポイントの表示が多くて、読めない
{{\u30ab\u30ec\u30f3\u30c0\u30fc 10\u6708}}
ファイルを丸ごと読めるように、変換する方法を教えて!
{{\u30ab\u30ec\u30f3\u30c0\u30fc 10\u6708}}
ファイルを丸ごと読めるように、変換する方法を教えて!
766デフォルトの名無しさん (ワッチョイ d32c-G8Sl)
2020/10/01(木) 08:49:16.51ID:theiHz1p0767デフォルトの名無しさん (オッペケ Sr47-VYpw)
2020/10/01(木) 21:03:03.13ID:BMjHKKQ5r768765 (ワッチョイ d32c-G8Sl)
2020/10/01(木) 22:25:46.66ID:theiHz1p0 JSON ファイルをcat しても、変換されませんでした!
普通の英数字と、\u6708 みたいな文字が混じっているファイルです
普通の英数字と、\u6708 みたいな文字が混じっているファイルです
769デフォルトの名無しさん (ラクッペペ MM7f-0zgZ)
2020/10/02(金) 09:07:20.78ID:ugOoTtJuM matlabでのfiltfilt()のように、ゼロ位相デジタルフィルター処理ができる関数はなんでしょうか
770デフォルトの名無しさん (ラクッペペ MM7f-0zgZ)
2020/10/02(金) 11:29:50.32ID:36KHjBX6M すみませんでした
771765 (ワッチョイ d32c-IT45)
2020/10/03(土) 07:39:23.69ID:/wA+nWqo0 c@at input.json | pe@rl -@Xpne 's/\\u([0-9a-fA-F]{4})/c@hr(h@ex($1))/eg'
(投稿できないので、@を入れました)
で、日本語で表示されました!
これを、Ruby では、どう書きますか?
正規表現で、\u6708 みたいな文字を、どう変換するの?
(投稿できないので、@を入れました)
で、日本語で表示されました!
これを、Ruby では、どう書きますか?
正規表現で、\u6708 みたいな文字を、どう変換するの?
772デフォルトの名無しさん (ワッチョイ 3361-VW09)
2020/10/03(土) 09:17:06.76ID:DiO6Np8S0 Rubyだと、正規表現にマッチした部分を引数にして関数に渡してくれる
メソッドが有る筈だから、それを使えば出来るはず。
メソッドが有る筈だから、それを使えば出来るはず。
773デフォルトの名無しさん (ワッチョイ b37c-gW4a)
2020/10/03(土) 09:27:06.27ID:F7oAx4CC0 -Ks -Ke -Ku があるから -Kw もあるはずだろう(驚き最小)
774デフォルトの名無しさん (ワッチョイ 3361-VW09)
2020/10/03(土) 09:32:00.87ID:DiO6Np8S0 >>771
以下のようにすれば、\uXXXX の部分を unicode コードとして文字に直した後のテキストが
標準出力に出力されるのではないかと思われる。
なお、試して無いので実際に動くかどうかは分からない。
$1.to_i(16)は、$1 に入っている文字列を 16進数とみなして整数値に直しているつもり。
x.chr は、数値 x を文字コードとして対応する文字に直しているつもり。
gsub は、正規表現に合致した部分を後続のブロックの中の $1 に入れて、結果に
置換しているつもり。
[test.rb]
strJson = JSONを読み込んだ文字列;
print( strJson.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr } );
以下のようにすれば、\uXXXX の部分を unicode コードとして文字に直した後のテキストが
標準出力に出力されるのではないかと思われる。
なお、試して無いので実際に動くかどうかは分からない。
$1.to_i(16)は、$1 に入っている文字列を 16進数とみなして整数値に直しているつもり。
x.chr は、数値 x を文字コードとして対応する文字に直しているつもり。
gsub は、正規表現に合致した部分を後続のブロックの中の $1 に入れて、結果に
置換しているつもり。
[test.rb]
strJson = JSONを読み込んだ文字列;
print( strJson.gsub( /\\u([0-9a-fA-F]{4})/ ) { $1.to_i(16).chr } );
775デフォルトの名無しさん (オッペケ Sr47-VYpw)
2020/10/03(土) 09:45:21.01ID:MOu6VxbMr そういうことならJSON.load使えば?
require 'json'
JSON.load(fname)
愚直にやるならArray#packを使いましょう。
str.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')}
require 'json'
JSON.load(fname)
愚直にやるならArray#packを使いましょう。
str.gsub(/\\u(\h{4})/){[$1].pack('H*').unpack('n*').pack('U*')}
776デフォルトの名無しさん (ワッチョイ 3361-VW09)
2020/10/03(土) 10:47:42.33ID:DiO6Np8S0777デフォルトの名無しさん (ワッチョイ 3361-VW09)
2020/10/03(土) 10:58:07.83ID:DiO6Np8S0 "UTF-8"ではなくて、"UTF16-BE"か、"UTF16-LE"かも知れない。
試して上手く行くのを選んで欲しい。
試して上手く行くのを選んで欲しい。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本の立場説明へ…外務省局長が北京到着 “台湾有事”首相答弁に中国反発 ★4 [煮卵★]
- 橋下徹氏「この喧嘩は日本の完敗」 台湾有事答弁めぐる外務省局長訪中で指摘「中国に怒られてご説明に伺った日本と見られる」 [muffin★]
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★10 [ぐれ★]
- 高市コイン、155円突破wwwwwwwwww [246620176]
- 【高市速報】ユーロ円180円突破。史上初 [931948549]
- 杉浦綾乃板って改名したほうがいいよな
- 高市早苗の中国問題、「オーバーツーリズムが解消されてウザい中国人が消えるから日本の勝ち」という風潮になってしまう [562983582]
- おじゃる丸をまったり待機するスレ🏡
- 【悲報】有名ウヨ論客、「現実的に考えて中国と仲直りするしかなくね?」と言ったら野良ウヨから総叩きにあう [856698234]
