CodeZine(コードジン)

特集ページ一覧

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

第5回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/02/03 14:00

目次

テキストファイルを読み出すプログラム(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の実行結果の例

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

修正履歴

  • 2009/01/27 19:48 www.localhostをlocalhostに修正した。

バックナンバー

連載:VB6プログラマのためのCurl入門

著者プロフィール

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

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

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5