[過去ログ] スレ立てるまでもない質問はここで 159匹目 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
172
(1): 2022/02/24(木)12:04 ID:82W7j8jp(1/6) AAS
Ruby では、繰り返しにindex や、蓄積変数を付けたものがある。
または、each に付ける事もできる

つまり、書き方が決まっている

ary = [ "a", "b" ]
ary.each_with_index do |element, index|
p "#{ index }:#{ element }"
end

出力
"0:a"
"1:b"
省10
195
(3): 2022/02/24(木)21:55 ID:82W7j8jp(2/6) AAS
前スレの、>928
Ruby で作ってみた。
Rubyスクリプト内で、7-zip を実行すると、

7-zipでは解凍する際、同名のフォルダが存在すると、
上書きするかどうかを聞いてくるので、そこで実行が止まる

それを避けるため一旦、現在日時から、
新しいフォルダ・dest_dir を作って、その中に解凍する

7-zipでは、同名のフォルダが存在しても、エラーにすることも出来ない。
そのフォルダ内に解凍しようとするから。
また事前に、アーカイブ内のフォルダ名を取得することも出来ない
省13
196: 195 2022/02/24(木)21:56 ID:82W7j8jp(3/6) AAS
require 'pathname'

# 7-Zipの実行パス。Program Files には半角空白があるので、要注意!
ZIP7_EXE_PATH = "C:/Program Files/7-Zip/7z.exe"

# expand_path で、Windows のパス区切り \ を、/ に変換する
src_arch_path = Pathname( ARGV[ 0 ] ).expand_path
#=> C:/Users/Owner/Documents/data/z.zip

# 現在時刻からディレクトリ名を作る際、名前が衝突しないように、念のため、1秒進める
sleep 1

# DateTime は非推奨なので、Time を使う
dest_dir = src_arch_path.parent + Time.now.strftime( "%Y%m%d_%H%M%S" )
省7
197: 195 2022/02/24(木)21:57 ID:82W7j8jp(4/6) AAS
# dest_dir の直下には、1つだけ解凍されたディレクトリがあると想定する
decomp_root_path = dest_dir.children[0]
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030/z>

decomp_root_dir = decomp_root_path.basename.to_s # ディレクトリ名。z

# 末尾に、_out を加えた、ディレクトリ名。z_out
out_dir = decomp_root_dir + "_out"

# decomp_root_path の末尾に、_out を加えたパス
out_root_path = dest_dir + out_dir
#=> <Pathname: C:/Users/Owner/Documents/data/20220224_211030/z_out>

out_root_path.mkdir( ) # ディレクトリを作る
省12
198: 195 2022/02/24(木)21:58 ID:82W7j8jp(5/6) AAS
# つまり、z フォルダの部分だけを、z_out に変えたものになる

#<Pathname:C:/Users/Owner/Documents/data/20220224_211030/z/zz/a.jpg>
#<Pathname:C:/Users/Owner/Documents/data/20220224_211030/z_out/zz/a.jpg>

# ZIP 形式のアーカイブを作る。-tzip
# 7z a -tzip (アーカイブパス).zip (アーカイブしたいフォルダ)
# 圧縮する。Program Files には半角空白があるので、"〜" で囲む
puts %x("#{ ZIP7_EXE_PATH }" a -tzip #{ out_root_path } #{ out_root_path })

puts "\n#{ out_root_path.to_s }.zip アーカイブを作りました。\n" +
"処理が終了したので、この画面を閉じて下さい"

sleep # 出力したコマンドプロンプト画面を閉じないようにする
省1
199: 2022/02/24(木)22:03 ID:82W7j8jp(6/6) AAS
>>175
文字列を連結して、SQL 文を作ると、SQL injection される

だから、Ruby on Rails では、O/R マッパーを使う。
place holder を使って、? の所に、変数を埋め込む
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.148s*