日経BP社 ブックス&テキスト Online

「マイクロソフト関連書」「Autodesk公式トレーニングガイド」「MOS攻略問題集」「セミナーテキスト」「スクール標準教科書」などの各シリーズ、各種IT関連書籍をご案内するサイトです。

書籍訂正情報

『ひと目でわかる Microsoft Visual Basic 2010 アプリケーション開発入門』をお買い上げの方へ
(2012年4月4日更新)

本書の内容について誤りがございました。次のとおり訂正してお使いください。
お手元の書籍の刷数は、奥付でご確認ください。

●P.340

・仕様の箇条書きの4つ目を削除

・箇条書きのあとに続く段落の以下の記述を削除

「上記の最後のルールは「もしフォルダー名の先頭が偶然、%%で始まるとき」を想定してのものです。」

◎該当する刷:初版1刷



●P.341 プログラムコードの1行目〜9行目

(誤)
If folderCurrent.LastIndexOf("%%") > -1 Then
  If folderCurrent.LastIndexOf("%%") > 0 Then
   folderNew =
    folderCurrent.Substring(0, folderCurrent.LastIndexOf("%%") - 1) &
    "%%" & timeStamp
  Else
   folderNew = folderCurrent.Replace("%%", "%") &
    "%%" & timeStamp
  End If

(正)
If folderCurrent.LastIndexOf("%%") + "%%".Length + timeStamp.Length =
 folderCurrent.Length Then
  folderNew = folderCurrent.Substring(0, folderCurrent.LastIndexOf("%%")) &
   "%%" & timeStamp

※現状のコードでは、フォルダー名が「%%」で始まるフォルダーの処理の実装などに不具合がございました。

◎該当する刷:初版1刷


●P.341 「●タイムスタンプの追加」の記述を以下のように差し替え

タイムスタンプはDateTime.Nowで得られるので、それを書式設定して文字列としています。すでにタイムスタンプが付加されているフォルダーかどうかは、「%%」までの文字数に、「%%」の文字数とタイムスタンプの文字数を加えたものが、現在のパス名(folderCurrent)の文字数と一致しているかどうかで見分けています。

「%%」の文字数とタイムスタンプの文字数は、ここでの設定では合計で15文字に決まっていますが、あとで「%%」やタイプスタンプの書式を変更する場合を想定して、それぞれの文字数を計算するようにしています。あとでプログラムを読むときに15という「むきだしの数字(即値)」が記述されているだけでは、その意味がわかりにくくなるからです。

なお、すでにタイムスタンプが付加されているかどうかについて、もう少し厳密に判定したい場合は、以下のようにIfステートメントで正規表現を使う方法もあります。

 If Regex.IsMatch(folderCurrent, "%%¥d{6}-¥d{6}$") Then

ただし、この場合、タイムスタンプの書式を正規表現のパターン(数字6文字、ハイフン、数字6文字)として指定しているので、あとでタイムスタンプの書式を変更したときに、この部分の修正を見逃すリスクがあります。

◎該当する刷:初版1刷



以上、お詫びして訂正いたします。


訂正INDEXページへ戻る>>