NOEMBLEM/エンブレムが設定されていません。

メールの詳細(トピック表示)

Re: CSVファイルの読み込み

投稿者:"Isao SHIMAKURA"さん  2004/01/04 17:55  MLNo.395   [メール表示]

 島倉です。


 % 書式指定の開始を表す
 255 この書式指定で取り込む最大の文字(char)数
[^,] ','以外の文字を取り込むという意味の書式指定
[] 文字の集合を表す
^ 直後に続く文字以外を表す


"scanf 書式指定"でよろしいかと思います。


 scanfやprintfで指定する文字列は『書式指定文字列』と言いま
す。専門用語を調べるのなら、JISのC言語の規格書で正確な情報が
入手できます。規格書の内容を完全には含んでいませんが、書店で
JISハンドブックという名前の書籍も売っていますので安くお手軽
に手に入れるのならそちらもよろしいかと思います。

Isao SHIMAKURA (ISLe)
isle.shimakura@…

----- Original Message -----
From: "suko_maru" <suko_maru@…>
To: <beginers@…>
Sent: Sunday, January 04, 2004 3:24 PM
Subject: [beginers:0394] CSVファイルの読み込み


このエントリーをはてなブックマークに追加


  • MLNo.396   suko_maruさん  (0) 2004/01/04 23:28  [メール表示する]
    こんばんは、Yukariです。

    島倉様、回答ありがとうござます。


    #島倉様は書きました。
    >> sscanf()内の %255[^,], は何をしているのでしょうか?>
    > % 書式指定の開始を表す
    > 255 この書式指定で取り込む最大の文字(char)数
    > [^,] ','以外の文字を取り込むという意味の書式指定
    > [] 文字の集合を表す
    > ^ 直後に続く文字以外を表す
    なんだか、ほぼ正規表現みたいですね。
    入門書でなかなか見かけないものでした。
    詳しく説明していただいてありがとうございます。


    #島倉様は書きました。
    > scanfやprintfで指定する文字列は『書式指定文字列』と言いま
    >す。専門用語を調べるのなら、JISのC言語の規格書で正確な情報が
    >入手できます。規格書の内容を完全には含んでいませんが、書店で
    >JISハンドブックという名前の書籍も売っていますので安くお手軽
    >に手に入れるのならそちらもよろしいかと思います。

    「JISのC言語の規格書」「JISハンドブック」など、きちんとしたものを手元に
    持っておくことが必要ですね。
    早速、書店やWebで調べてみます。


    まだまだ、力はありませんが、これからも精進して行こうと思います。
    いつも、親切にありがとうございました。

    __________________________________________________
    Do You Yahoo!?
    Yahoo! BB is Broadband by Yahoo!
    http://bb.yahoo.co.jp/


  • MLNo.397   "Isao SHIMAKURA"さん  (0) 2004/01/05 00:54  [メール表示する]
     島倉です。

     ひとつ間違いがありました。

    > > ^ 直後に続く文字以外を表す

     と書いてしまいましたが、[^...]という表現は...の文字セット
    の示す文字のいずれも含まないという意味です。^の直後だけでは
    ありませんでした。

    > なんだか、ほぼ正規表現みたいですね。

     残念ながら規格で定められているのは列挙された文字郡だけで
    す。例えば、a〜zのいずれかというのは、

     [abcdefghijklmnopqrstuvwxyz]

    となりますが、

     [a-z]

    という書き方は定義されていません。
     しかし、多くの処理系が独自拡張機能として実装しています。


    Isao SHIMAKURA (ISLe)
    isle.shimakura@…

    ----- Original Message -----
    From: "suko_maru" <suko_maru@…>
    To: <beginers@…>
    Sent: Sunday, January 04, 2004 11:28 PM
    Subject: [beginers:0396] [beginers:0395] Re: CSVファイルの読み込み


  • MLNo.398   suko_maruさん  (0) 2004/01/05 23:14  [メール表示する]
    Yukariです。

    > > なんだか、ほぼ正規表現みたいですね。
    >
    >  残念ながら規格で定められているのは列挙された文字郡だけで
    > す。例えば、a〜zのいずれかというのは、
    >
    >  [abcdefghijklmnopqrstuvwxyz]
    >
    > となりますが、
    >
    >  [a-z]
    >
    > という書き方は定義されていません。
    >  しかし、多くの処理系が独自拡張機能として実装しています。
    >
    規格上のC言語では他の言語のような正規表現をカバーするつもりがないみたいですね。
    おもわず、

    ^[0-9]*$

    とかやりそうになりました。printf関数でいかにもできそうにありません。

    多少、残念ですが、それがやっぱりC言語なのでしょうね。
    勉強になりました。
    ありがとうございます。

    __________________________________________________
    Do You Yahoo!?
    Yahoo! BB is Broadband by Yahoo!
    http://bb.yahoo.co.jp/


  • MLNo.399   "Isao SHIMAKURA"さん  (0) 2004/01/06 00:09  [メール表示する]
     島倉です。

    > 規格上のC言語では他の言語のような正規表現をカバーするつもりがないみたいですね。

     正規表現が必要であれば既に世の中にたくさんある正規表現ライ
    ブラリを利用するのが良いのではないでしょうか。

    > 多少、残念ですが、それがやっぱりC言語なのでしょうね。

     正規表現と言えばPerlとかunix系のコマンドラインツールが思い
    浮かびますが、それらはC言語で開発されているような気がします。

     残念な理由が分かりませんが、必要なら正規表現が使えるscanf
    やprintfを作ってしまうことができるのがC言語です。


     書式指定は文字列によって与えるので動的に作成することもでき
    ますから、正規表現とは違ったアプローチの仕方もあるかと思いま
    す。


    Isao SHIMAKURA (ISLe)
    isle.shimakura@…

    ----- Original Message -----
    From: "suko_maru" <suko_maru@…>
    To: <beginers@…>
    Sent: Monday, January 05, 2004 11:14 PM
    Subject: [beginers:0398] Re: CSVファイルの読み込み


  • MLNo.400   "Isao SHIMAKURA"さん  (0) 2004/01/06 00:20  [メール表示する]
     推敲してるうちに削りすぎてしまったので補足です。

    > > 規格上のC言語では他の言語のような正規表現をカバーするつもりがないみたいですね。
    >  正規表現が必要であれば既に世の中にたくさんある正規表現ライ
    > ブラリを利用するのが良いのではないでしょうか。

     正規表現にはいろんな流派やバージョンがあるので規格化されて
    も実装したいものと食い違いができたりして混乱することになると
    思います。
     正規表現部分がライブラリになっていれば開発者が書くソースリ
    ストとユーザーが書くコマンドラインに同じ正規表現を使うことが
    できるわけです。

    Isao SHIMAKURA (ISLe)
    isle.shimakura@…

    ----- Original Message -----
    From: "Isao SHIMAKURA" <isle.shimakura@…>
    To: <beginers@…>
    Sent: Tuesday, January 06, 2004 12:09 AM
    Subject: [beginers:0399] Re: CSVファイルの読み込み


  • MLNo.401   suko_maruさん  (0) 2004/01/06 23:30  [メール表示する]
    こんばんは、Yukariです。


    > 正規表現と言えばPerlとかunix系のコマンドラインツールが思い
    >浮かびますが、それらはC言語で開発されているような気がします。
    C言語ってすごいですね。
    Python,Tcl,Ruby ...etc など他の多くの言語処理系も、C言語で作られているのでしょう!?
    UNIXを書くための言語としてC言語が生まれたとか。


    正規表現については、まだ勉強中で詳しくないですね。

    C言語での考え方について教えてくださり、ありがとうございます。

    __________________________________________________
    Do You Yahoo!?
    Yahoo! BB is Broadband by Yahoo!
    http://bb.yahoo.co.jp/



メールへの返信はMLのメンバーしかできません。

更新順メールリスト