0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

考察 > 設定の保存/読込み > 改行の扱い

Last updated at Posted at 2016-08-23
動作環境
C++ Builder XE4

問題

設定の保存と読込を扱うライブラリを作って使用している。その設定については1項目に対して1つの設定(改行なし)としてこれまで使ってきた。

扱う設定項目に「改行付き文字列」を扱おうとしたところ破綻した。改行付き文字列をそのまま設定として書き込んだとき、改行が悪さをして、次回設定読込み時にパーサの処理の前のファイル読込みが失敗した。ファイル読込みが中途半端になったため、パーサ処理が失敗し異常終了するようになった。

対策案

改行付き文字列を設定として扱う場合の案

  • 改行を禁止する
    • 保存時: 入力した改行を置換して改行そのものをなくす
    • 読込時: 保存した文字列そのまま読込む (改行はない)
    • メールアドレスリストなどではこちらでもいいかも
  • 改行を別の文字列として置換
    • 保存時: 入力した改行を別の文字列に置換する
    • 読込時: 保存した文字列に対して置換して改行を戻す
    • 置換先の文字列をなににするか。入力文字列に含まれない文字列にしないといけない
  • パーサーで改行を扱うようにする
    • パーサーを通す前に設定をファイルなどから読むときが問題
    • ファイル内で改行があると1セットの設定を読むときにN行の読込みをしないといけない
    • 終端記号なりの工夫が必要となる
    • 1セット1行の構造でなく、1セット1ファイルとした場合はこちらが使える
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?