SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

VB6プログラマのためのCurl入門(PR)

VB6プログラマのためのCurl入門
ファイルアクセスとWebアクセス

第5回

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

テキストファイルを読み出すプログラム(Curl版)

 それでは、リスト1と同じ機能のプログラムをCurlで作ってみましょう。

 Curl IDEを起動したら、「ファイル」メニューから「新規プロジェクト」を選択して、「ReadTextFile」というマニュフェスト名で「アプレットプロジェクト」を作成してください。IDEの左側にあるツリーで「start.curl」をダブルクリックしてコードエディタを表示させたら、リスト2に示したコードを記述してください。VB 6.0のコードと比較しやすいように、Curlのコードでも、できるだけ同じ変数名を使い、同じコメントを付けています。

リスト2 Curlで記述したテキストファイルを読み出すプログラム
{curl 6.0 applet}
{curl-file-attributes character-encoding = "shift-jis"}
{applet manifest = "manifest.mcurl",
    {compiler-directives careful? = true}
}

|| 変数の宣言
{let file-name:#Url}
{let text-input-stream:#TextInputStream}
{let buff:StringBuf = {new StringBuf}}
{let text1:TextFlowBox = {new TextFlowBox}}

{do
    || ファイルを開くダイアログボックスを表示する
    set file-name = {choose-file}

    || エラー時にはcatchにジャンプする
    {try
        || ファイルが選択されたら読み出す
        {if-non-null file-name then
            || ファイルを開く
            set text-input-stream =
                {read-open character-encoding =
                    {get-character-encoding-by-name "shift-jis"}, file-name}

            || ファイルを末尾まで読み出す
            {until text-input-stream.end-of-stream? do
                set buff = {text-input-stream.read-one-line} || 1行読み出す
                {text1.add buff} || テキストボックスに追加する
                {text1.add {br}} || 行末に改行を付加する
            }

            ||ファイルを閉じる
            {text-input-stream.close}
        }
     catch e:IOException do
        || エラー処理
        {popup-message "エラーです!"}
    }
}

|| テキストボックスを表示する
{center
    {value text1}
}

 リスト2のポイント(VB 6.0のコードとの主な違い)を説明しましょう。Curlでは、TextInputStreamオブジェクトを使ってテキストファイルを読み出します。ストリームとは、データの流れのことです。Curlではファイルアクセスや、後述するWebアクセスでストリームという概念を使います。TextInputStreamオブジェクトに指定するファイル名は、Urlオブジェクトとして指定します。

 Curlでは、{try・・・catch・・・} という構文でエラー処理を行います。これを「例外処理」と呼びます。try以降に記述されたコードが実行時エラーになった場合、処理の流れがcatch以降にジャンプします。エラーが発生しなかった場合は、catch以降の処理は行われません。トライしてエラーになったら、それをキャッチするというイメージです。tryとcatchによる例外処理は、Curl独自のスタイルではなく、JavaやC#などのオブジェクト指向言語でも採用されています。

 その他の部分は、コメントを参考にしてVB 6.0のコードと比較すれば理解できるでしょう。リスト2の実行結果の例を、図2に示します。

図2 リスト2の実行結果の例
図2 リスト2の実行結果の例

次のページ
Webサーバーと通信する(HTML版)

修正履歴

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
VB6プログラマのためのCurl入門連載記事一覧

もっと読む

この記事の著者

矢沢久雄(ヤザワヒサオ)

パッケージソフトの開発・販売に従事するかたわら、書籍や雑誌記事の著作活動、セミナーやカンファレンスにおける講演活動も精力的にこなす自称ソフトウエア芸人です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3518 2009/02/03 15:41

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング