Perlについての質問箱 64箱目

■ このスレッドは過去ログ倉庫に格納されています
2019/02/01(金) 09:44:37.18ID:1/Kr4Qjk
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板: https://medaka.5ch.net/php/

このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
荒らしはスルー推奨。

"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、
Perlの奥深さについて皆で語り合い、追求してまいりましょう。

www.perl.org/get.html
Download Latest Stable Source (5.28.1)

▼前スレ
Perlについての質問箱 61箱目
http://toro.5ch.net/test/read.cgi/tech/1381561905/
Perlについての質問箱 62箱目
http://toro.5ch.net/test/read.cgi/tech/1385039352/
Perlについての質問箱 63箱目
https://mevius.5ch.net/test/read.cgi/tech/1392820583/
2020/05/30(土) 08:54:37.07ID:Noe/rV9t
拡張子が無くても判定できるようにすればいいんじゃないの? Emacs みたいに。
2020/05/30(土) 12:16:10.21ID:h49XlInt
>>441
つ fileコマンド
2020/05/30(土) 13:18:31.04ID:9sn/rA++
>>439
運用のために保守は犠牲にするんですか?
2020/05/30(土) 13:58:45.71ID:h49XlInt
>>443
実装の変更は、保守の範囲ではない。
二次開発かな?w
2020/05/30(土) 15:56:11.11ID:CwCZ2prN
>>440
シェバン知らず?
2020/05/30(土) 18:54:59.01ID:h49XlInt
>>445
>>440はその前の話やろ。
シェバンがあるだけで、テキストファイルが勝手に起動されたら恐ろしいわ。w
2020/05/30(土) 19:43:41.34ID:GvMJ9/EG
>>432
おじいちゃん(´・ω・`)
2020/05/31(日) 02:15:32.98ID:MeZ7svrP
言語変えて作り直すって、俺の感覚ではシステム置き換えのイメージだわ
コンパイル済みのバイナリならともかく、スクリプト言語動かすって環境づくりも入るじゃん
449デフォルトの名無しさん
垢版 |
2020/05/31(日) 02:44:16.68ID:pTVQa+4z
>>445
>>440に書いてあること読んでないだろ。
2020/05/31(日) 03:40:37.55ID:qe5b9Icc
その前って何?
だからシェバン使えば拡張子なんか使う必要はないってことだよ?
>>439みたいな書き換えはいらないってことを言ってる
あと自演して書き込みは見苦しいぞ
2020/05/31(日) 04:22:23.87ID:fhA8y4ka
読解力理解力がなくて、複数から指摘されたからって、自演扱いで返すとは見苦しいぞ。
452デフォルトの名無しさん
垢版 |
2020/05/31(日) 05:26:43.75ID:pTVQa+4z
>>450
それ何のOSでの話?
453デフォルトの名無しさん
垢版 |
2020/06/11(木) 19:05:11.82ID:5cioSHJn
「local $| = 1;」と言う記述見たんですけど、
「$|」の局所化って意味あるのでしょうか?
ただ単に「$| = 1;」と等価であり「local」を記述しても無駄な気がするんですけど、
私の勘違いでしょうか?

「local $| = 1;」とやることで、
そのファイルの出力だけみたいな感じになるのですか?
となると、
同プロセスなのに標準出力バッファが出力毎に別個に用意されてる事になってしまいますよね?

分かるかた教えてください。
2020/06/11(木) 19:32:41.35ID:zOJFiWlV
>>453
スコープを抜けたときに、もとの値に戻る。
2020/06/11(木) 19:37:09.97ID:YKNmcAQr
横からだけど知らなかった…
毎回もとの値別変数で退避してた
2020/06/11(木) 19:53:05.96ID:L2GhQgnz
なんとなく直感的にグローバル変数だけだと思ってた
だから元の値を退避しておくという発想の方が自然
わざわざぶつけて便利に使おうという発想はいずれバグる
457デフォルトの名無しさん
垢版 |
2020/06/11(木) 20:13:03.35ID:5cioSHJn
>>454
レスありがとうございます。

「もとの値に戻る」と言う事は、a.plから参照される異なるスコープのb.pmがあり、
b.pmに「local $| = 1;」の記述があった場合、
b.pmに定義されたサブルーチンが呼び出される毎に、
「$| = 1;」と同等の処理が行われ、
戻る際には元の値がセットされるのでしょうか?
それとも、スコープによって異なる「$|」を、
標準出力側でスコープ毎に切り替えてるという事でしょうか?
2020/06/11(木) 20:24:12.92ID:L2GhQgnz
printする度に今見えてる$|が渡ってるんだろうな
2020/06/11(木) 21:09:21.20ID:5cioSHJn
>>458
まぁ、そうですよね。無駄な処理になるし後者ですよね。
(OOP的に言うと、スコープ毎のインスタンスを参照的な)
ありがとうございました。
2020/06/11(木) 22:40:57.89ID:zOJFiWlV
>>456
Perlにあっては「わざわざ」ではない。
localはダイナミックスコープ、my/ourはレキシカルスコープであることは意識しておくべき。
461デフォルトの名無しさん
垢版 |
2020/06/12(金) 02:39:58.45ID:TN61WwYv
宜しくお願いします。
$1をクリアしたい場合は「'' =~ /()/;」等として
無駄なマッチングをして空文字列を設定しないとダメですか?
数億件のデータを捌く際とか、めちゃくちゃタイムロスになりますよね?
皆様はどうされてるのでしょう?
462461
垢版 |
2020/06/12(金) 02:41:54.90ID:TN61WwYv
>>461
↑に追記です。
$2以降のクリアも含めてお願いします。
最適な解を頂ければ幸いです。
463540
垢版 |
2020/06/12(金) 02:51:00.48ID:OceO7BHX
>>461
まず、scalar変数の場合
=()はできない

=''や""は明示的に空文字列を設定することになる

なので既存変数をクリア、というか不定状態に設定するには
= undef;

あるいは数値を設定するためのシンボルを値0に戻すには
= 0;

undefは値として評価されれれば0,文字列として評価割れれば空文字列''が返った
(と思う)
2020/06/12(金) 03:17:40.95ID:O2sQpJVa
答えではないのだけれど、そういう場面に遭遇したことがないんだよね
簡単でいいのでどんな時に必要なのかしら?
465461
垢版 |
2020/06/12(金) 03:24:01.31ID:TN61WwYv
>>463
あの…すみません。
スカラー値の評価の話をしている訳ではありません。
$1や$2や$3と言った特殊変数の値をクリアをする方法を聞いています。
これらの特殊変数に値を代入したらエラーになります。

引き続き>>461-462のベストな解をお待ちしています。
宜しくお願いします。
466461
垢版 |
2020/06/12(金) 03:52:20.68ID:TN61WwYv
>>464
計 数億件のデータがあり、
それぞれにはCのラベルのような項目名がありまして、
それに続く文字列がその項目の値になるのですが、
(例えば「name: value…\n」な感じです)
これを一時的にDBに収めるためnameをキーとしてライブラリに渡したいんです。
一般的に思いつく方法としては、
「if( $ln =~ /^(パターン)://g ){ func( $1, $ln ); … }」
とすれば良いのですが、
なにせ件数が多いので、無駄な条件文を省きたいのです。
(条件文は処理が重いので)
検証実測値では1日以上の処理速度差がでるかもなのです。
(他にも同等の処理があるのでかなり省ける感じがするんです)

func()は、キーや値が未定義値もしくは空値であれば、
なにも処理をせず抜けるので、
$1がクリアできればif文を無くすことが出来ます。
そこで思いついたのが、
>>461の「'' =~ /()/;」ですが、これでは本末転倒です。

と言うのが経緯です。
2020/06/12(金) 04:05:50.63ID:Cyxf//AW
>>465
そもそも、$nはマッチしたときのみ参照する変数であるから、わざわざリセットする必要がない。

if (m/(.*)/) {
say $1;
}

これ以上の回答は>>464に答えてから。
2020/06/12(金) 04:13:00.69ID:Cyxf//AW
あら、いきちがった。。。

そういう話であれば、気にするな、ってところやろ。w

オレの感覚では、ifで判定して関数を呼び出さないほうが速そうだと思うがなあ。
Perlの処理としては、関数からすぐ戻ると言っても、呼び出しもそこからの戻りもそんなに軽くはなかったような。

「かも」とか言ってないで、真剣ならまず計測してみろ。
2020/06/12(金) 05:15:54.75ID:O2sQpJVa
説明してくれたけど、やっぱイマイチ分からん
$1をクリアして無条件でfunc( $1, $ln )を呼び出したい、ということかしら
その時funcは通過するだけ、と
パフォーマンスを気にするならやっぱり $1 && func( $1, $ln )とかの方がいいと思うけどな
多分、何か事情があるのでしょう。
美しくはないけど'' =~ /()/;なら誤差の範疇と思いますよ。
数値としてはベンチマークで
2020/06/12(金) 05:31:29.45ID:P559B0Rd
$1をやめる選択肢は?

($label) = $ln =~ /^(パターン)://;
func($label, $ln);
2020/06/12(金) 05:32:22.97ID:P559B0Rd
あ、/ 多い……
2020/06/12(金) 05:38:56.76ID:O2sQpJVa
答えじゃないんだけどさ、
$x = $ln =~ /^(パターン):/ && $1
これで以降は$xを使う、とか。
2020/06/12(金) 05:48:44.96ID:P559B0Rd
え、array使わないの?
俺としては

($label) = $ln =~ /^(パターン):/;
func($label, $ln) if $label;

を推したい
474デフォルトの名無しさん
垢版 |
2020/06/12(金) 07:57:32.00ID:kFexpNJ3
Ruby で特殊変数などは、スレッドローカル変数だから、
マルチスレッドでも共有しないから、安全だけど

特殊変数をクリアする必要など、考えたこともない
2020/06/12(金) 09:26:27.43ID:Xic6e0Vs
マッチに失敗してるのに古い$1を使ってしまって、
みたいなケースはちょいちょいあるな

それはクリアしてなかったからではなくて、失敗をトラップしてないバグ
476デフォルトの名無しさん
垢版 |
2020/06/12(金) 13:25:45.07ID:Qkj+08r5
>>466
もうCで書いちゃえよ。速いよ。
コロンまでの文字列抜き出すのは簡単だろう。
477デフォルトの名無しさん
垢版 |
2020/06/12(金) 13:29:01.14ID:Qkj+08r5
速くしたいなら正規表現でマッチするかどうかなんてことやることそのものが間違いだとも思える。
同じPerl使うのであってもindex関数使うとか、他にやりようがあるんじゃないか?
2020/06/12(金) 14:03:27.64ID:Xic6e0Vs
大量のデータを効率よく扱うのは、データベース構築するのが正解

個人が扱う範囲だと、テキストで持って全検索で困らないけど、
量が増えるとそのうち破綻する
2020/06/12(金) 14:24:52.04ID:uUh54YqY
>466

$ln =~ /^(パターン):|(.*?)/
にすると、「^(パターン):」にマッチしないときに$1を空文字にできる。
2020/06/12(金) 14:50:38.25ID:uUh54YqY
ただ、(試してはいないが)if文のオーバーヘッドより、
関数呼び出しのオーバーヘッドのほうが大きいと思うけどな。
2020/06/12(金) 15:40:26.50ID:bpI5hVyH
そこまで速度に気にするならC++とかで書いた方がいい気がするね
482デフォルトの名無しさん
垢版 |
2020/06/17(水) 18:41:04.46ID:TVwLVBUa
そんなデカいデータをよくパールでやるね。
C で書け。
2020/06/28(日) 09:30:04.48ID:mI+4+ud7
https://developers.srad.jp/story/20/06/26/1324207/
> Perl 7が発表される。実質的にはPerl 5系のリネーム
> ストーリー by hylom 2020年06月26日 17時08分
> 現代における素人にはオススメできない言語 部門より

現代における素人にはオススメできない言語
…なら、文字列処理をやりたい素人は何を学べばいいの?
2020/06/28(日) 11:26:26.20ID:OE2OIMMC
5の後継なら7にする必要あるの?
2020/06/28(日) 13:29:12.55ID:3gXsrtkR
>>484
事情を知らなくても最新版だとわかりやすくするために。

Perl6、Rakuがあるなかで、Perl5と言われたら古いとかEOLとかの疑いを持たれかねんから。
それに、必要であれば非互換も?
2020/06/28(日) 18:17:09.91ID:UG2zXSFM
お型付けできるようになったら嬉しいな
2020/06/28(日) 19:55:20.21ID:DGGKS5Fb
ついに後方互換捨てるのか!
2020/07/02(木) 21:44:39.67ID:wuNvV9ki
デフォルトの状態が変わるだけで
適宜オプションつければ後方互換も保てるらしいよ
Perlのこういうところ好きだわ
489デフォルトの名無しさん
垢版 |
2020/07/04(土) 13:31:08.07ID:yrmljXci
今のところは、な・・・
2020/07/04(土) 18:51:36.50ID:25OQuAeP
Perl7は進化を求める
この10年で完全にオワコン言語になってしまった
2020/07/04(土) 19:41:56.61ID:+vSKr8nf
効率化して高速化しようとしても、過去に足を引っ張られる
2020/07/04(土) 19:48:46.40ID:VctW6lO7
単純に過去を切り捨てたら、Rakuの二の舞になる。過去を切り捨てるのであれば、
Python に勝てる程度の言語仕様にしなければ、見向きもされないだろう。
しかし、それはもう既にPerlではないだろう。
2020/07/04(土) 20:01:08.35ID:XHKaM396
Perlはこのままでいいと思う
レガシーなのがPerlの強さ
2020/07/04(土) 20:55:27.14ID:+vSKr8nf
negative legacy
2020/07/05(日) 01:06:23.02ID:BkxIDrcL
>>492
はい。
Wiki>「Perlに続く」という意味で、6月の次の誕生石(7月)のルビーから名付けられた
2020/07/06(月) 00:05:12.58ID:Dee8Pqdl
逆に頑張って作ったPerl6が古いみたいな感じになっちゃうな(´・ω・`)
2020/07/06(月) 02:55:32.01ID:pEZsiPGN
もうPerl6は存在しないからだいじょうぶ。
2020/07/06(月) 03:53:08.41ID:Lg+fAiJM
Perl6はさっさと開発中止すべきだったのになぜ続行したんだろう
499デフォルトの名無しさん
垢版 |
2020/07/06(月) 19:42:39.82ID:5vDJxItj
ま、いいじゃねえか。新しい言語が一つ増えたようなもんだし。
2020/07/06(月) 21:20:03.77ID:pEZsiPGN
>>498
「すべき」って、おまえは何様なんや?

やりたい人がやってただけ。
結果としてうまくいかなかっただけ。
501デフォルトの名無しさん
垢版 |
2020/07/07(火) 18:34:24.36ID:e1WbjzO/
うまくいくべき
2020/07/07(火) 18:40:58.31ID:/oL+BKEU
べきであるある
2020/07/07(火) 18:42:17.26ID:v8PkKQM3
>>500
何様ってw
匿名掲示板で何を言ってるのw
強いていうならPerlユーザーですw
504デフォルトの名無しさん
垢版 |
2020/07/07(火) 19:01:21.20ID:e1WbjzO/
俺様
2020/07/23(木) 01:04:36.09ID:2kWEZYuR
___________________________________________

/media/xxx/DVD_HDVR/HDVR_SOB/*.SRO
というのが動画本体で、
SROファイルの構造は
000000-00007F 東芝ヘッダ
000080-007FFF (データA)
008000-00807F 東芝ヘッダ
008080-00FFFF (データB)
010000-01007F 東芝ヘッダ
010080-01FFFF (データC)
となっていて、東芝ヘッダからみたオフセット0x1C番地にある0x40値を=>0x00に書き換えるそうです。
東芝ヘッダは1つのファイルに複数ある(?)そうで、それらすべてを書き換える必要があるようです



これをperlスクリプトでお願いします
2020/07/23(木) 06:45:22.79ID:6LXR6fOg
binmodeで開いて、substr
2020/07/23(木) 19:03:52.69ID:2kWEZYuR
>>506
ありがとう
素人過ぎてわかんないけど
2020/07/23(木) 19:09:07.35ID:NaEhWCW1
コードそのものを書いてくれとさ
2020/07/23(木) 19:25:52.21ID:2kWEZYuR
同じような目的の別のスクリプトです
これに近いイメージでしょうか
(全文書くとブロックされる)

_________________________________________________________

HR_MANGR.IFOのコピー禁止フラグ解除は、
0x20 0x2C 0x23のシーケンスを0x20 0x24 0x23 に変更
perlスクリプトの例は以下のとおり。
# freeifo.pl
# HR_MANGR.IFOの変換
use strict;
use warnings;
my $infile = "HR_MANGR.IFO";
my $buf;
my $sTarget = " ,#"; # 0x20 0x2C 0x23

# ファイルのオープン

# バイナリモードに変更
binmode INFILE;
binmode OUTFILE;
my $sizIFO = -s $infile;

# IFOファイルを読み込み

# 0x20 0x2C 0x23 の並びがあれば、0x20 0x24 0x23 に置き換え
#他にあれば継続、無ければ終了

# ファイルのクローズ
close INFILE;
close OUTFILE;
510デフォルトの名無しさん
垢版 |
2020/07/24(金) 04:55:58.03ID:6ZonvnML
そうそう。そんな感じ。
まあ頑張って。
2020/07/24(金) 09:07:49.48ID:So4dssPK
書き換える番地は、N は、0 以上で、以下の法則か?
0x8000 × N + ( 0x80 + 0x1C )

つまり、ヘッダは必ず、0x8000 毎にあるのか?
2020/07/24(金) 11:24:40.72ID:JRbdBOQM
>>511
レスありがとうございます
________________________________________________

SROファイルの書き換え
  000000-00007F 東芝ヘッダ
  000080-007FFF (データA)
  008000-00807F 東芝ヘッダ
  008080-00FFFF (データB)
  010000-01007F 東芝ヘッダ
  010080-01FFFF (データC)
  というふうに、0x8000バイトで1セットとなっている。
  東芝ヘッダとは、0x80バイトからなるデータブロック。途中に## Toshiba 〜という文字列を含んでいる
  東芝ヘッダのコピー禁止フラグ(CPP)のあるオフセット0x1Cを 0x40 ⇒ 0x00 に修正。
2020/07/24(金) 11:37:31.23ID:nuOKXnku
オレなら、バイナリーエディタの置換機能を使うと思うが。
2020/07/24(金) 11:40:12.29ID:61Z/1/Bp
数が多いとツール作った方が早い
手動でやってもツール作っても時間同じなら、ツール作った方がいい
仕事では、ツール作ったせいで余計に時間かかってもツール作る
2020/07/24(金) 11:53:07.60ID:JRbdBOQM
>>513
データが大きいのでLinuxのバイナリエディタでは上手く行かないのです
2020/07/24(金) 12:54:55.96ID:JRbdBOQM
https://i.imgur.com/Y6NhiUE.jpg

この文字列が一定間隔で現れます
データが大きいので>>514さんの言うとおりツール(スクリプト)で処理したいのです
2020/07/24(金) 15:39:03.44ID:EkE5sKTE
perl -e "binmode STDIN; binmode STDOUT; while (read STDIN, $_, 0x8000) { substr $_, 0x1c, 1, 0; print }" < IN > OUT
これが最短?
2020/07/24(金) 15:58:32.23ID:JRbdBOQM
>>517
レスありがとうございます
泣きそうです(解らなすぎて)

>>509のスクリプトはバイナリ修正したコピーファイルを作成するものでした
小さなファイルなので問題ないのですが、目的の対象ファイルは10GB~20GBもあるものなのでマネ出来ません
2020/07/24(金) 16:06:11.64ID:JRbdBOQM
>>509の全文です

https://i.imgur.com/qOj8IAs.jpg

後出しのクセが強すぎすいません
2020/07/24(金) 16:07:20.05ID:UzZpGBU/
>>515
なるほどね。しかし、perlが扱えるデータ量にも、よく解らない限界があって、
巨大なデータを突っ込むと勝手に途中で切られたりするみたいだよ。
巨大なデータを扱うなら、seek関数みたいな低水準な手法を使う必要があるかもしれない。
2020/07/24(金) 16:48:28.89ID:EkE5sKTE
直接書き換えたいならこんなとか?
perl -e 'open F, "+< IN"; binmode F; while ($l = read F, $_, 0x8000) { substr $_, 0x1c, 1, "\0";
seek F, -$l, 1; print F }'
2020/07/24(金) 17:06:33.72ID:61Z/1/Bp
別に短く書くコンテストではない
523デフォルトの名無しさん
垢版 |
2020/07/24(金) 17:06:42.97ID:JRbdBOQM
>>521
ありがとうございます
Fはファイル名でよろしいでしょうか?(素人でごめんなさい)

Can't find string terminator "'" anywhere before EOF at -e line 1.
となります
524デフォルトの名無しさん
垢版 |
2020/07/24(金) 17:29:22.03ID:JRbdBOQM
サンプルです
https://www.dropbox.com/s/zjhagi19dx0akbv/HR_STR01.SRO?dl=0

もしよろしければ暇つぶしに、ご指南いただけませんか?
(もう、いただいてますけど)
2020/07/24(金) 17:49:05.64ID:JRbdBOQM
よく考えたらダメだったw
2020/07/24(金) 19:45:46.20ID:lCl1FARv
GBレベルのファイルがオンメモリで処理できるわけないだろ。w
2020/07/24(金) 20:07:01.97ID:iJ+2fZSI
メモリが1TBあればヘーキヘーキ
2020/07/24(金) 20:38:39.07ID:So4dssPK
Stream 処理なら、バッファサイズ分のデータを、読んでは捨ててを繰り返すから、
必要なメモリサイズは、バッファサイズ分だけ

それか、seek みたいに、その番地をシークして、そこだけ書き換える
529511
垢版 |
2020/07/24(金) 21:01:04.13ID:So4dssPK
0x8000 は、32,768 バイトだから、32 KiB。
(ただし、Kib は、1,000 倍ではなく、1,024 倍)

32 KiB * 32 個 = 1 MiB

1 GiB なら、 32個 * 1,024 = 32,768個
10GiB なら、0x8000サイズのブロックが、327,680個もあるの?

データ部分は固定サイズなの?
変動サイズで、そのサイズがヘッダ内に記録されているとかじゃないの?
2020/07/24(金) 21:50:07.62ID:EkE5sKTE
まーだやってたのか
>>523

perl -e 'open F, "+< ファイル名"; binmode F; while ($l = read F, $_, 0x8000) { substr $_, 0x1c, 1, "\0"; seek F, -$l, 1; print F }'

がエラーになったのは Windows のコマンドプロンプトで試したんだろ
コマンドプロンプトでは ' でなく " を使ってこう

perl -e "open F, '+< ファイル名'; binmode F; while ($l = read F, $_, 0x8000) { substr $_, 0x1c, 1, qq/\0/; seek F, -$l, 1; print F }"

もちろん read や print は流れで残してただけでまったく必要ないから

perl -e "open F, q/+< ファイル名/; binmode F; seek F, 0x1c, 0; while (! eof F) { seek F, 0, 1; print F qq/\0/; seek F, 0x7fff, 1 }"

で十分なのは言うまでもない
コマンドラインで書き捨てじゃないならperl7で不可予定の F じゃなくて $fh にするかな
531511
垢版 |
2020/07/24(金) 22:51:07.42ID:So4dssPK
くれぐれも、データのバックアップを取っておいてから、実験しろよ。
もし、プログラムが間違っていたら、回復できないから

そもそも、他人のプログラムの意味が分からないのに、
それをそのまま実行するのは、非常に危険!
532532
垢版 |
2020/07/24(金) 23:35:26.56ID:Z8MDOpZc
Binary fileをupdateモードでopenして
目的の位置にseekしpackで元のファイルの内容を直接書き換える方法なら

ttps://docstore.mik.ua/orelly/perl/cookbook/ch08_14.htm
533532
垢版 |
2020/07/24(金) 23:36:19.14ID:Z8MDOpZc
>>530 と内容が被った…orz
534532
垢版 |
2020/07/24(金) 23:40:56.85ID:Z8MDOpZc
この辺調べてやってくだされぃ
https://www.google.co.jp/search?q=perl+binary+file+update+open+seek+unpack
535532
垢版 |
2020/07/24(金) 23:45:28.89ID:Z8MDOpZc
先生ッ、便利そうなモジュール見つけました!
https://metacpan.org/pod/File::Binary
536デフォルトの名無しさん
垢版 |
2020/07/24(金) 23:46:10.28ID:JRbdBOQM
>>530
検証に時間がかかってしまって返信遅くなりました
できました!! ありがとうございました!

推察の通りコマンドプロンプトでのエラーでした
本命のLinux(Ubuntu)の端末上からも書き換え成功しました
感謝です

ほかの皆様もありがとうございました
不愉快に感じた方も多かったと思います ごめんなさい

ここで「進捗状況表示(%)をさせるにはどうしたらいいですか?」とか聞くと嫌われることは、僕もいい大人なので知っています
537デフォルトの名無しさん
垢版 |
2020/07/24(金) 23:48:59.17ID:JRbdBOQM
>>532
親切にありがとうございます
2020/07/25(土) 00:54:10.29ID:uhXYZAuD
進捗状況を表示させるには、最初にファイルサイズを取得する。
そして、データを書き換えるたびに、現在のseek 番地を取得して、

現在のseek 番地 × 100 / ファイルサイズ

例えば、300 × 100 / 1,000 = 30 %
2020/07/25(土) 01:23:46.28ID:c7rlqrmm
>>538
レスありがとうございます
本当にうれしいのですがド素人なので理解出来ないのです

>>530のコマンドラインに絡めるかスクリプトにしていただけると卒倒するほど喜びます
これを機会にperlを勉強したいと(心から)思いますが、今の段階ではこんな図々しいお願いをするしか出来ません
2020/07/25(土) 02:26:21.46ID:GJL3/5bG
もうええやろ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況