Ruby 初心者スレッド Part 58 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2016/03/23(水) 21:16:44.36ID:6HedlyzC質問するときは、OSやRubyのバージョン、エラーメッセージを書いたほうがいいお
Ruby on RailsについてはWEBプログラミング板で
前スレ
Ruby 初心者スレッド Part 57
http://peace.2ch.net/test/read.cgi/tech/1426165733/
るりまサーチ (リファレンス検索)
http://rurema.clear-code.com/
Rubyist Magazine - るびま
http://jp.rubyist.net/magazine/
逆引きRuby
http://www.namaraii.com/rubytips/
0554549
2016/07/18(月) 01:50:25.67ID:IKQ2dxNQmruby-ioを見つけて試すも大きなファイルを操作できない
Fixnumの壁が原因とわかりCコードとにらめっこすること数日
sysseekをFloatも受け付けるように改造してようやく目的を達成
Bignumが無い影響がもろに出てしまっていますな
0555デフォルトの名無しさん
2016/07/20(水) 03:31:47.01ID:GlTBqNkCRubyのソースコード読んでるんだけど、Ruby1.8までならWebにころがってる情報で構造をなんとなくレベルまで理解できる
でもRuby1.9からはさっぱり理解不能で、何処がVMの部分なのかさえ読めない
どこかにRuby1.9以降のソースを解説しているサイトない?
なければソース全部じゃなくて、おおまかに構造を解説しているサイトでも構わない
0556デフォルトの名無しさん
2016/07/20(水) 11:13:49.96ID:WyhLRx8lAppendix A. Rubyのソースコードの分類
https://github.com/ruby/ruby/blob/trunk/doc/extension.ja.rdoc#appendix-a-ruby%E3%81%AE%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%88%86%E9%A1%9E
0557デフォルトの名無しさん
2016/07/20(水) 18:43:26.64ID:KOGDxcQR>Ruby1.9以降は、rubyコードをJITコンパイルで変換してから実行してるんだよね?
どこのソースから、そんな嘘情報を仕入れてきたの?
1.8迄はAST(抽象構文木)を直接的に評価していたのが、
1.9以降ではVM(正確にはYARV)へコンパイルするよう改善されただけの話だよ
いわゆるJavaScriptのV8エンジンみたいな本格的なJIT(Just In Time)コンパイル技術は、
今のところRubyには導入されちゃいない
>Rubyのソースコード読んでるんだけど、Ruby1.8までならWebにころがってる情報で構造をなんとなくレベルまで理解できる
1.8までならWeb公開されてるRHGが(言語処理系に興味がある人にとっては)バイブルだったね
http://i.loveruby.net/ja/rhg/book/
1.9以降なら、以下の書籍が必読本になった(RubyのVMであるYARVの解説書でもある)
Rubyのしくみ -Ruby Under a Microscope-
https://www.amazon.co.jp/dp/4274050653/
Ruby処理系高速化の未来に関しては、"HPC(Hight Performance Computing) Ruby"が鍵になると予測する
・HPC Ruby Compiler(プレゼン)
https://www.cps-jp.org/~mosir/pub/2012/2012-03-05/03_nakamura/pub-web/HPC_Ruby_Compiler.pdf
・HPC Ruby: 静的解析に基づく Ruby の高度最適化コンパイラ
http://ci.nii.ac.jp/naid/110008583419
さらに、その基礎となる "Soft Typing"(動的型付け言語における型推論) をキーワードで調べるのがいいと思う
もし英語が読めるなら、たとえば以下の論文を:
・SOFT TYPING 1991
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.24.9333&rep=rep1&type=pdf
・A Scheme-to-Java Translator with Soft Typing 2002
www.kb.ecei.tohoku.ac.jp/~sumii/pub/scm2java.ps.gz
0558デフォルトの名無しさん
2016/07/21(木) 03:34:57.24ID:jgTQj/gW10万回以上ループすると、もう一段階、最適化する
500万回(0.5秒)以上では、CRuby(MRI)よりも速くなる
「Rubyのしくみ」2014、に書いてある。
コンパイラ・インタープリターを作るなら、読んだ方がいい
0559デフォルトの名無しさん
2016/07/21(木) 04:24:33.02ID:WJGproPCバイトコードインタプリタって書かれとる
逐次変換して処理してるわけか
1.9以降はバイトコードに変換して処理してるって聞いてたから
てっきりJIT技術使ってるんだと思ってた
さんくす
0560デフォルトの名無しさん
2016/07/21(木) 19:25:21.64ID:9nmG0K7V0561デフォルトの名無しさん
2016/07/21(木) 22:00:48.00ID:MOZT2+1Aある数値が範囲より大きいか小さいかカバーされてるかを調べるUFO演算子とか
2つのRangeオブジェクトが被ってる部分があるかどうかを判定する機能とか
あれば便利な気がするんだがなぁ
0562デフォルトの名無しさん
2016/07/22(金) 05:24:42.73ID:8LVOaO/mEnumerable#grep
じゃダメなの?
0563デフォルトの名無しさん
2016/07/22(金) 07:27:36.63ID:y4ZiHYE1範囲内最小の値よりなお小さいか
最大の値よりなお大きいかまで判定してほしい
後者については機能的にはそれでいいんだけど
Rangeのサイズが1000万までありうるので速度的に(´・ω・`)
自分で実装してみると
class Range
def <=> obj
(((min <=> obj) + (max <=> obj)) / 2.0).truncate
end
def & other
[min, other.min].max..[max,other.max].min
end
end
0564デフォルトの名無しさん
2016/07/22(金) 07:39:58.12ID:y4ZiHYE1前者はobjが<=>演算子非対応でnil返した場合を考慮してない
後者はotherがRange以外の場合を考慮してない上に範囲外の場合変なRangeを返すので気持ち悪い
0565デフォルトの名無しさん
2016/07/22(金) 07:53:03.72ID:ot11jjQxClamp(value, min, max)
最大値と最小値の間で、収めるような関数もあればいいね
10 = Clamp(20, 1, 10)
0566デフォルトの名無しさん
2016/07/22(金) 07:55:55.89ID:8LVOaO/m(min <=> obj) + (max <=> obj) >> 1
でよくね?
あと
(1..2) & (3..4) # => (3..2)
だから
(3..2).max # => nil
になって気持ち悪い
0567デフォルトの名無しさん
2016/07/22(金) 07:58:36.16ID:8LVOaO/m0568デフォルトの名無しさん
2016/07/22(金) 08:06:48.82ID:y4ZiHYE1Rubyでは負数の除算がアレなんだ
-1 >> 1 = -1
0569デフォルトの名無しさん
2016/07/22(金) 08:19:38.53ID:8LVOaO/mって普通じゃないの?
rangeのfirstもlastもIntegerならこれでいいか
class Range
def &(other)
[first, other.first].max..[exclude_end? ? last - 1 : last, other.exclude_end? ? other.last - 1: other.last].min
end
end
0570デフォルトの名無しさん
2016/07/22(金) 08:39:44.79ID:DR9XI0EI<=> はそういうものじゃない。お前さんの言うような機能はあっても良いが、それが <=> と名付けられることは未来永劫ない。
0571デフォルトの名無しさん
2016/07/22(金) 08:49:54.31ID:cUWclNnj0572デフォルトの名無しさん
2016/07/22(金) 21:13:35.89ID:DR9XI0EIRange#<=> が追加されないなんて一言も言ってないよ。
>>563 の期待するものにはならないってだけ。
0573デフォルトの名無しさん
2016/07/22(金) 21:16:28.21ID:cUWclNnjああ、本当だ。早とちりすまん
0574デフォルトの名無しさん
2016/07/23(土) 23:49:44.32ID:l6bIVOK+変数の中に入った文字列の置換ができません。
例えばhtmlという変数の中に入った(http://○○-1.jpg)の中の-1を無くしたい場合
subかgsubを使うかと思います。
試しにp html.gsub(/-1.jpg/,
0575デフォルトの名無しさん
2016/07/23(土) 23:52:24.68ID:l6bIVOK+途中で書き込みが消えてしましました(汗)
変数の中に入った置換の方法を教えていただけますでしょうか。
よろしくお願いします。
0576デフォルトの名無しさん
2016/07/23(土) 23:55:26.99ID:3089LaeDhtml.gsub!(
か
html = html.gsub(
0577デフォルトの名無しさん
2016/07/24(日) 00:37:14.40ID:9mJaMPLw確認画面が出たとき、ダブルクォーテーションがあると、文が切れる。
2chのバグだろう。たぶん、エスケープしていない
str = 'ttp://abc/xxx-1.jpg'
str = str.gsub(/-1.jpg/, '.jpg')
puts str
結果、ttp://abc/xxx.jpg
正規表現の先読みを使っても、できる
0578デフォルトの名無しさん
2016/07/24(日) 00:56:13.49ID:VgaTJS92ご丁寧にありがとうございます。
今やってる作業がanemoneで拾ってきたhref要素を変数に入れてその一部-1を置換しようとしています。
教えていただいた通り、
str= node.css('a').attribute('href').value
str = str.gsub(/-1.jpg/, '.jpg')
puts str
と書き換えたのですが-1は消えませんでしたので、何か別の原因で引っかかってるみたいです。
0579デフォルトの名無しさん
2016/07/24(日) 07:06:47.90ID:uCHUDa0e実は-1じゃなくて-l(小文字のL largeサイズ指定)だったというオチが思い浮かんだが…
0580デフォルトの名無しさん
2016/07/24(日) 07:36:38.76ID:ix/R/9ty0581デフォルトの名無しさん
2016/07/24(日) 11:12:26.70ID:wdZTIji9切れ"ない"よ
ブラウザのバグだろ
0582デフォルトの名無しさん
2016/07/24(日) 14:16:46.18ID:VgaTJS92置換する変数を間違っていただけのうっかりミスでした・・・orz
sub,gsubを使って上記の教えていただいた方法で変数の中身を無事置換できました。
ありがとうございますm(_ _)m
0583デフォルトの名無しさん
2016/07/26(火) 21:17:51.50ID:uTRCF1br> 個人的にはアスタリスク2回でハッシュを受け取る
> とかの方がよっぽど見かけたことないです。
> どなたか使ったことある方いらっしゃいますか?
カメだけど、超使う。
キーワード引数と組み合わせたり。
0584デフォルトの名無しさん
2016/07/27(水) 15:07:46.63ID:nl1cCFz00585デフォルトの名無しさん
2016/07/29(金) 08:11:29.53ID:1qYsbBpRstdinを監視したい
普通ならSTDIN.each_lineとかでSTDINを監視したら良いと思うけど
gtk3とか使うとイベントループさせないといけなくなるので
イベントループするメインルーチンでこれやりたいんだけど
やり方わかんない
標準入力を監視しながらのプログラムの場合どうやってる?
別スレッドにするのが普通なのかね?
0586デフォルトの名無しさん
2016/07/29(金) 09:19:20.82ID:AO+a9SAV・GUI の main loop で fd を監視
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=GUI+%A4%CE+main+loop+%A4%C7+fd+%A4%F2%B4%C6%BB%EB
・Gdk::Input - Ruby-GNOME2 Project Website
https://ruby-gnome2.osdn.jp/hiki.cgi?Gdk%3A%3AInput
・stdinから一行ずつ読んでそれっぽく表示 on ruby-gnome2
http://shyouhei.tumblr.com/post/119202369/stdinから一行ずつ読んでそれっぽく表示-on-ruby-gnome2
0587デフォルトの名無しさん
2016/07/29(金) 09:45:02.59ID:1qYsbBpRありがとう!!!
gtk2ではその方法で上手くいきました
gtk3を使おうとするとGdk.InputのかわりにGLib::IOChannelを使うようにメッセージがでて
Gdk::Input::READのところでエラーになるんだけど
ちょっと検索かけただけじゃやり方わかりませんでした
御存じなら教えてください
よろしくお願い致します
0588デフォルトの名無しさん
2016/07/29(金) 10:54:00.67ID:AO+a9SAVGTK3は触っていなかったんだけど、GDKより低レイヤーなGLibで
外部イベントを扱うように変わったのですかね
・GLib::IOChannel - Ruby-GNOME2 Project Website
https://ruby-gnome2.osdn.jp/hiki.cgi?GLib%3A%3AIOChannel
・ruby-gnome2/iochannel.rb at master · taf2/ruby-gnome2 · GitHub
https://github.com/taf2/ruby-gnome2/blob/master/glib/sample/iochannel.rb
GTK2はGTK3へ更新されましたが、Glib2は(Glib3へ更新されず)そのままGTK3で使われているので、
そのまま動くのではないかと思われます(手元ではGTK3をインストしてないので動作未確認)
0589デフォルトの名無しさん
2016/07/29(金) 10:58:51.55ID:1qYsbBpRありがとう助かったよ
検索上手いね!!
0590デフォルトの名無しさん
2016/07/29(金) 15:09:47.59ID:DEZEXrtC表記することにしました。自分の考えとしては、配列の要素のvalueを2で割った剰余が0であるもののみ、配列の中に入れなおすという方法しか思いつきませんでした。
そこで以下のプログラムにしてみたのですが、うまく動きません。どこがおかしいのか指摘していただけるでしょうか。よろしくお願いします。
nums = {a: 1, b: 2, c: 3, d: 4, e: 5}
nums.each do |key, value|
if value%2 == 0
nums[:key] = value
end
p nums
0591デフォルトの名無しさん
2016/07/29(金) 15:11:49.29ID:DEZEXrtC0592デフォルトの名無しさん
2016/07/29(金) 15:28:57.91ID:1qYsbBpRwindowの生成も行なうと
上手く期待の動作しなかった
GLib::IOChannelを使ってSTDINをオープンしてadd_watchをそれに使うと
期待の動作になりました
ありがとう
まだGUIの方は作れてないけど作れそうな感じ
0593デフォルトの名無しさん
2016/07/29(金) 15:35:49.37ID:flV7hOuNこれだと偶数の要素だった場合、その要素を再代入してることになる
新しく別の配列に代入するとかならその書き方で問題ないと思うよ
ちなみに nums.select! { |k, v| v % 2 == 0 } が一番良さそう
0594デフォルトの名無しさん
2016/07/29(金) 16:15:45.30ID:WGKZmyFxnums.each_with_object({}){|(k,v),o| o[k] = v if v.even?}
0595デフォルトの名無しさん
2016/07/29(金) 16:55:05.51ID:Ogz/SEhrnums.reject{|_,v|v.odd?}
nums.grep(proc{|_,v|v&1==0}).to_h
nums.each{|k,v|v.odd?&&nums.delete(k)}
0596デフォルトの名無しさん
2016/07/29(金) 17:11:04.04ID:1UayH1GQ「numsからodd?なものを取り除く」と読み下そう
思いつかなかった>>593-594もぜひ覚えて帰ってね!
0597デフォルトの名無しさん
2016/07/29(金) 19:32:20.85ID:jkc14IDKif value%2 == 0
nums[:key] = value
end
まずこれはeach doに対してendが無いからエラーになる
そして:keyはkeyではなく:keyというSymbolなのでこれも間違い
nums = {:a=>1, :b=>2, :c=>3, :d=>4, :e=>5, :key=>1}
nums[:b] = 2
p nums #=> {:a=>1, :b=>2, :c=>3, :d=>4, :e=>5, :key=>1}
飽くまで:bに対して2を再び関連付けているだけなので間違い
どうしても上のような書き方がしたいなら
h = Hash.new
nums.each do |key, value|
if value%2 == 0
h[key] = value
end
end
p h #=> {:b=>2, :d=>4} 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
0598デフォルトの名無しさん
2016/07/29(金) 20:01:51.49ID:mtfgcrouやはりあなたはリンクしすぎです
ばいばいおさるさん
0599デフォルトの名無しさん
2016/07/29(金) 23:54:22.01ID:AO+a9SAV>>593 と >>595 の先頭を参考にして;
nums.select! { |_, val| val.even? }
https://ideone.com/Z84zqk
もしも同メソッドを使用せずに自前で各要素を列挙するなら:
nums.each do |key, val|
nums.delete key unless val.even?
end
https://ideone.com/UqpHHq
なお >>597 のように、元の変数 nums の値を(破壊的代入)で更新せず、
結果としての値を求めることを優先するというお題の改変が許されるなら:
nums.select { |_, val| val.even? }
https://ideone.com/JlEy6w
このコードを推奨する
0600デフォルトの名無しさん
2016/07/30(土) 12:15:20.35ID:Fe6CTZY3ていたらくでして。たぶん、いやきっと、593さんのようにメソッドをそれぞれ覚えていけばいいのでしょうが、もう結構記憶容量がパンパンで、とりあえず
知っているメソッドで何とかしようと思いました。しかし、みなさんすごいですね。?皆さん全員プロのプログラマなのですか?
もうちょっと勉強してみたいと思います。ありがとうございました。説明がわかりやすかったです。
0601デフォルトの名無しさん
2016/07/30(土) 12:49:12.22ID:UN9LAiBThttp://docs.ruby-lang.org/ja/2.3.0/class/Hash.html
まあメソッド覚える前に代入とか制御構造とかもっと基礎的なことを最低限理解してからにしろよとは思うが
0602デフォルトの名無しさん
2016/08/02(火) 10:24:25.49ID:7rZajpxG0603デフォルトの名無しさん
2016/08/02(火) 10:34:33.19ID:R1uEEgNe# n番目の列
(n+2+624*26**log(25*n/26+1,26).to_i/25).to_s(26).tr('0-9a-p','A-Z')[1..-1]
# 列sの数
s.tr('A-Z','0-9a-p').to_i(26)+(26**s.length-26)/25
0604デフォルトの名無しさん
2016/08/02(火) 19:33:06.09ID:G8b1DkivDXRubyを使用しており、Rubyのバージョンは2.0 32bit
OSはwindows7 64bitです
カレントディレクトリにあるフォルダを開き、中にあるtxt形式のファイルを取得し
その一行目に書かれていたことにたいしてifを使うにはどうすればいいでしょうか?
0605デフォルトの名無しさん
2016/08/02(火) 19:49:44.99ID:GrXRtLCPいっぺんに全部やろうとするからわからなくなる
↓のように問題を分割して、ひとつずつ調べていけばいいよ
・カレントディレクトリにあるフォルダを開き
・中にあるtxt形式のファイルを取得し
・その一行目に書かれていたこと
・にたいしてifを使う
0606デフォルトの名無しさん
2016/08/02(火) 20:07:22.42ID:R1uEEgNeif (strの条件式)
# やりたいこと
end
0607デフォルトの名無しさん
2016/08/02(火) 21:15:40.05ID:G8b1Dkivでは、二行目を単体で読み込む方法はどうするんでしょうか?
あと一行目と二行目を両方読み込む場合はどうするんでしょうか?
0608デフォルトの名無しさん
2016/08/02(火) 21:20:03.60ID:bMxB9+Teカレントディレクトリ中にある全てのtxt形式のファイルを開く場合
Dir.glob('./*.txt') do |fn|
File.open(fn, 'r:utf-8') do |f|
line = f.readline
if /条件/ =~ line
end
end
end
0609デフォルトの名無しさん
2016/08/02(火) 22:04:55.90ID:R1uEEgNefoo = open("フォルダ名/ファイル名.txt").
line1 = foo.readline # 一行目
line2 = foo.readline # 二行目
大した量じゃないんだからマニュアルを読もう
http://docs.ruby-lang.org/ja/2.3.0/class/IO.html
0610デフォルトの名無しさん
2016/08/03(水) 00:10:59.84ID:qya5GR80http://vipper.2ch.net/test/read.cgi/news4vip/1470062380/
これはrubyのステマするチャンス
0611デフォルトの名無しさん
2016/08/03(水) 00:39:14.55ID:3mARGs2B効率は良くないけど、EXCELで使う程度の数かつ、何十万回も計算を繰り返したりしないなら。
s=“A”; 0.upto(n){s.succ!}; p s
s=“ZZ”; p (“A”..s).to_s.size
0612デフォルトの名無しさん
2016/08/03(水) 02:00:46.62ID:W0lh95XIinject厨が書いてみた:
https://ideone.com/PSRQnw
0613デフォルトの名無しさん
2016/08/03(水) 13:48:51.38ID:zdWIlhYUrubyだと“Z”.nextで”AA”になるから、”A”をスタートとして”ZZZ”までnextをループさせた回数=列の番号になるよ
0614デフォルトの名無しさん
2016/08/03(水) 15:07:33.08ID:mbys/AN5Z -> 26
の 26進数なんだよ
だから
ZZZ -> 26*26*25 + 26*25 + 25 + 1
と瞬時に判る
0615デフォルトの名無しさん
2016/08/03(水) 15:10:29.88ID:mbys/AN5桁の0に相当するものがないから
実際の値は違う
もうちょっと工夫が要るけど
考え方は 26進数
0616デフォルトの名無しさん
2016/08/03(水) 15:17:25.06ID:B5cRJMaSA-Zを A=0, Z=25 の26進数とみなして
s + B..B(Bがsの桁数個) - B が列の番号
だから>>603の下の式のようになる
これの逆変換が求めるものだけど素直にやると桁の左にあるAがなくなってしまうので
一旦 BA..A(Aはsの桁数個)を足しておいて最後にBを削れば良い
それが>>603の上の式
0617デフォルトの名無しさん
2016/08/03(水) 15:26:35.51ID:mbys/AN50618デフォルトの名無しさん
2016/08/03(水) 15:31:21.63ID:B5cRJMaS0619デフォルトの名無しさん
2016/08/03(水) 15:43:49.69ID:B5cRJMaS(n + 2 + 24*26**((25*n + 26).bit_length/4.7).to_i/25).to_s(26).tr('0-9a-p', 'A-Z')[1..-1]
0620デフォルトの名無しさん
2016/08/03(水) 15:51:40.29ID:kO+977FMbk = xl.Workbooks.Add
ws = bk.Worksheets(1)
ws.Cells(1,1).Formula='=column($ZZZ$1)'
puts ws.Cells(1,1).Value
bk.Close
xl.Quit
0621デフォルトの名無しさん
2016/08/03(水) 16:03:32.72ID:W0lh95XIhttps://ideone.com/gO9N9x
これならPerlやPythonのような普通の手続き型言語を知っていれば
容易く読めるし、普通のプログラマが引き継いでも問題無く
保守できるのではないかと思われ
0622デフォルトの名無しさん
2016/08/03(水) 16:46:12.54ID:/NIG+3Tlもうちょい短くできそうでできない
0623デフォルトの名無しさん
2016/08/03(水) 16:53:46.46ID:/NIG+3Tlもうちょい短くできそうでできない
0624デフォルトの名無しさん
2016/08/03(水) 16:56:15.69ID:/NIG+3Tlあと'@A-Y'じゃなくて'@-Y'やな。動くけど
0625デフォルトの名無しさん
2016/08/03(水) 17:02:40.83ID:B5cRJMaSn.to_s(26).tr('0-9a-p',r='@-Y').sub(/(.)@/){$1.tr('A-Z',r)+'Z'}.delete('@') # 75 B
(n+2+24*26**Math.log(25*n+26,26).to_i/25).to_s(26).tr('0-9a-p','A-Z')[1..-1] # 77 B
0626デフォルトの名無しさん
2016/08/03(水) 17:17:54.18ID:/NIG+3Tl0627デフォルトの名無しさん
2016/08/03(水) 18:04:32.66ID:/NIG+3Tl#97B
rubyらしさを捨ててtap使わなければ4B減る
0628デフォルトの名無しさん
2016/08/03(水) 18:06:33.96ID:mbys/AN50629デフォルトの名無しさん
2016/08/03(水) 18:09:55.37ID:B5cRJMaSMath.logを使うのはいつでも正しいよ
>>626が言ってるのは>>623のこと
bit_lengthを使う方も10**20000くらいまでは正しい
0630デフォルトの名無しさん
2016/08/03(水) 18:17:06.18ID:B5cRJMaSlogも9.603431447*10**18989までは正しく動作するよ
0631デフォルトの名無しさん
2016/08/03(水) 18:25:45.78ID:mbys/AN50632デフォルトの名無しさん
2016/08/03(水) 18:28:03.24ID:l8cxGlGj0633デフォルトの名無しさん
2016/08/03(水) 18:34:18.83ID:mbys/AN5余計な制限のあるコードにはコメントが必須
#logも9.603431447*10**18989までは正しい
+46Bだな
0634デフォルトの名無しさん
2016/08/03(水) 18:39:46.41ID:B5cRJMaSなんかキレてんの? システムに依存しない、アホみたいにでかい数値に対してすらいつでも正しいコードなんて存在するわけないだろ
0635デフォルトの名無しさん
2016/08/03(水) 19:05:26.45ID:mbys/AN5切れてないよ
0636デフォルトの名無しさん
2016/08/03(水) 19:14:20.38ID:B5cRJMaSいい加減黙ります ゴルフスレとかあったら面白いかもね
0637デフォルトの名無しさん
2016/08/03(水) 23:34:22.20ID:W0lh95XI・関数型 :(旧) >>612 --> (新) https://ideone.com/OQLdlR
・手続き型:(旧) >>621 --> (新) https://ideone.com/Ja6tP9
String#succ の存在も初めて知ったし、勉強になったわ
0638デフォルトの名無しさん
2016/08/04(木) 01:32:56.67ID:feZwYdLFEnumerator#with_indexはもっと流行っていいと思うんだ
使ってもそんなに短くはならないんだけどさ
0639sage
2016/08/04(木) 01:37:51.37ID:2HyRwUYqstr.strip.upcase.unpack('C*').inject(0){|result, item| result * 26 + item - 0100 }
end
def cel_str( n )
str = ""
while n > 0
n, r = (n - 1).divmod( 26 )
str << (r + 0101).chr
end
str
end
0640デフォルトの名無しさん
2016/08/04(木) 14:01:54.35ID:2HyRwUYq最後は
str.reverse
でした。
0641デフォルトの名無しさん
2016/08/04(木) 23:00:36.83ID:c9zwl1qOどのようにすれば、回避できるでしょうか?
■症状:インサートした日本語文字が文字化けする。
title =
0642デフォルトの名無しさん
2016/08/04(木) 23:04:28.59ID:c9zwl1qOSQLの使用に関して質問です。
どのようにすれば、回避できるでしょうか?
■症状:インサートした日本語文字が文字化けする。
title="あいうえお123"
DB = Mysql.new('host','name','pass','test01')
sql = "UPDATE `test01`.`table01` SET `title` = '#{title}'WHERE `table01`.`id` = '4';"
DB.query(sql)
0643デフォルトの名無しさん
2016/08/04(木) 23:36:28.77ID:QKnNcils0644デフォルトの名無しさん
2016/08/05(金) 06:51:27.16ID:tltzsolzひどいけどこれで十分
0645デフォルトの名無しさん
2016/08/05(金) 07:12:44.43ID:x8TUq60L0646デフォルトの名無しさん
2016/08/05(金) 13:38:20.94ID:LJe/qM3fperlは論外
0647デフォルトの名無しさん
2016/08/05(金) 15:48:28.22ID:UhWsfPtN>>604 です
唐突に質問なのですが
そもそもDXRubyでユーザーに文字を入力させ、それを扱うにはどうすれば良いのでしょうか
0648デフォルトの名無しさん
2016/08/05(金) 15:49:58.62ID:UhWsfPtN連投すみません
RPGの名前入力のようなものです
あと、一旦画面を消すのはどのようにするのでしょうか?
タイトルから本編へとかそういう感じです
結構しらべたのですが.....
0649デフォルトの名無しさん
2016/08/05(金) 16:21:49.83ID:teNswV+zこのへんの基礎知識がないとAPI探せないし何渡していいのかもわからないよ
0650デフォルトの名無しさん
2016/08/05(金) 18:50:19.50ID:UhWsfPtN正直ありません
Rubyが一番最初にやりました
VBSやBASICはやったことがありますが.....
DXRubyを入れて調べながらやっているところです
0651デフォルトの名無しさん
2016/08/06(土) 01:12:59.09ID:8Rl0Ybxyチュートリアルでもやれば、わかるのでは?
0652デフォルトの名無しさん
2016/08/06(土) 04:20:54.79ID:w5zQ+Fii0653デフォルトの名無しさん
2016/08/06(土) 05:53:35.02ID:2mFu6MHmhttps://support.office.com/ja-jp/article/Excel-の仕様と制限-ca36e2dc-1f09-4620-b726-67c00b05040f
0654デフォルトの名無しさん
2016/08/06(土) 07:35:29.07ID:aQkr0mnlチュートリアルには、文字の描画、キーの判定は書いてありますが
全てのキー入力の監視はどうやってやるのかなと.....
■ このスレッドは過去ログ倉庫に格納されています