過去ログ
No.1254 '='の右側の文字列を順次読み取る方法
[戻る]
[ホームページ]
No.2604
パラメータファイルからのデータ読み取り方法
投稿者---とも(2004/08/31 16:51:02)
お世話になります。以下のパラメータファイルから'='の右側の文字列を順次読み取る方法を教えて下さい(右側のデータがブランクの場合も含めて)。
smtp_srv=smtp.nifty.com
from_addr=xxx@nifty.com
reply_addr=xxx@nifty.com
to_addr=xxx@nifty.com
cc_addr=xxx@yahoo.co.jp
または、簡単に読み込めるパラメータファイルのフォーマット形式例を教えて下さい。
No.2605
Re:パラメータファイルからのデータ読み取り方法
投稿者---nop(2004/08/31 17:19:49)
>パラメータファイルから'='の右側の文字列を順次読み取る方法を教えて下さい。
1.strstr() or strchr()で'='を検索
'='の次の文字からデータとして取得
2.strtok()で区切り文字を"="とし、
二つ目のトークンをデータとして取得
等々…
# どちらも各行をfgets()で一行ずつ取得することを前提
No.2606
Re:パラメータファイルからのデータ読み取り方法
投稿者---NykR(2004/08/31 19:07:55)
fgets等で文字列を読み込んだ後、sscanfで解析して、=の右側だけ取り出す。
書式文字列は、
=が出てくるまで読み捨てる。---> %*[^=] =を読み捨てる ---> = 文字列を読み込む ---> %s
ですから、これらを並べて "%*[^=]=%s" になります。
=のあるなしで処理を分けたいときは、=を捨てずに、char型配列(2文字以上)に読み込み、
sscanfの戻り値をみるようにすればよいでしょう。
その場合書式文字列は "%*[^=]%1[=]%s" です。
No.2612
Re:パラメータファイルからのデータ読み取り方法
投稿者---とも(2004/09/01 12:49:55)
ありがとうございます。今、ちょっと忙しいので明日にでもやってみます。
>=が出てくるまで読み捨てる。---> %*[^=]
>=を読み捨てる ---> =
>文字列を読み込む ---> %s
>ですから、これらを並べて "%*[^=]=%s" になります。
このような使い方知りませんでした。なんか正規表現のように複雑ですね。