10.処理 3-4.エピソード内容出力

肝心のエピソード内容出力


 #取得開始位置ゲット

 $lnnmbr= Get-Content $item.FullName -Encoding utf8 | select-string $cntntRgx -Encoding utf8

 #ファイルの最大行数取得

 $rowcnt=((Get-Content -Path $item.FullName).Length - 1)

 #内容取得

 $content=(Get-Content -Path $item.FullName -Encoding utf8)[$lnnmbr.LineNumber..$rowcnt]

 #本文部分を出力。文字コードはUTF8

 Write-Output $content | Add-Content -Path $otptPth -Encoding utf8


やってることは目次配列の取得でやった「検索した文字列のある次の行から最後までのファイル内容の配列取得」と、これまでのさんざんくりかえした出力処理実行の組み合わせです。


 #取得開始位置ゲット

 $lnnmbr= Get-Content $item.FullName -Encoding utf8 | select-string $cntntRgx -Encoding utf8


で、エピソードファイルの本文が始まる目印となる「【本文(行数行)】」の行の情報を取得します。


Get-Content $item.FullName -Encoding utf8


で、現在処理中のエピソードファイル($item.FullName)を文字コードUTF8(-Encoding utf8)で取得(Get-Content)した結果を


select-string $cntntRgx -Encoding utf8


で、文字コードUTF8(-Encoding utf8)で「変数cntntRgx」に一致する文字列を検索(select-string)してます

「変数cntntRgx」の中身は「^【本文([0-9]+行)】」で「行頭に(^)”【本文(”の後に0~9の数字の一回以上の繰り返しがあってから、”行)】”と続く文」ですね。


 #ファイルの最大行数取得

 $rowcnt=((Get-Content -Path $item.FullName).Length - 1)


は完全に目次配列作成時に完全に見たやつ。

変わってるのは「$item.FullName」ぐらいで、要は対象ファイルが今処理中のエピソードファイルに変わってるってことです。


 #内容取得

 $content=(Get-Content -Path $item.FullName -Encoding utf8)[$lnnmbr.LineNumber..$rowcnt]


これも受け取り変数と対象ファイルが変わってるだけで目次配列作成時と同じく、行番号指定で本文部分をごっそり取得してます。


 #本文部分を出力。文字コードはUTF8

 Write-Output $content | Add-Content -Path $otptPth -Encoding utf8


そして出力!

対象はごっそり取得したエピソードファイルの本文(Write-Output $content )で、出力先は文字コードUTF8で出力ファイルにシュートです(Add-Content -Path $otptPth -Encoding utf8)




  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る