SSブログ
プログラミング ブログトップ
前の20件 | 次の20件

proxyを設定してHTTP通信 [プログラミング]

Javaでは、HTTP通信をするプログラムを簡単に作ることが出来ます。

final String urlStr = "http://~~";  // 通信相手のURL

HttpURLConnection conn = null;

try {
    final URL url = new URL(urlStr);

    conn = (HttpURLConnection)url.openConnection();
    conn.setRequestMethod("GET");

    conn.connect();

    if (conn.getResponseCode() == 200) {

        BufferedInputStream in = null;
        try {
            in = new BufferedInputStream(conn.getInputStream());

            while (true) {
                final int data = in.read();
                if (data == -1)
                    break;

                // @@@ 取得したデータを、どうにかする @@@
            }

        } finally {
            if (in != null)
                in.close();
        }
    }
} finally {
    if (conn != null)
        conn.disconnect();
}

⇒ 続きはWEBで


タグ:Java

C++で正規表現(vbscript.dll編) [プログラミング]

C++で正規表現を使います(その2)。

Windowsでは、VBScript用の正規表現を他のプログラムから利用できるようになっています。COMテクノロジを使うことで。

⇒ 続きはWEBで


タグ:Windows VisualC++

C++で正規表現(boost::regex編) [プログラミング]

C++で正規表現を使います(その1)。

とりあえず、一番手っ取り早いのは、boostregexではないでしょうか。
次期標準C++(C++0x)に組み込まれることになっていますし、今後は、コレさえあれば他には必要なくなるような状況です。

⇒ 続きはWEBで


タグ:C++

10進数と16進数の整数クラス(実装編) [プログラミング]

前回までのあらすじ)
10進数で書かれた整数を扱うクラスがありました。
10進数と16進数の両方を処理できる様に拡張することになりました。

typedef MultiRadixValue<DecValue, HexValue> DecHexValue;

int main()
{
    char buff[100];
    std::cin >> buff;

    DecHexValue value(buff);

    if (value.is_valid()) {
        std::cout << value.get_int() * 2 << "\n";
    } else {
        std::cout << "数値ではない\n";
    }
    
    return 0;
}

typedef MultiRadixValue<DecValue, HexValue, OctValue> DecHexOctValue;

そして、色々と考えた結果、こんな感じに使えるクラスが良かろうという結論になりました。
(あらすじ終わり)

⇒ 続きはWEBで


タグ:C++

Javascriptで連想配列 [プログラミング]

前回、こんな話をしました。

Javascriptで文字列を添え字にする配列(通称「連想配列」)を作るには、プロパティを一切持たないクラスで代用する。
でも、メソッドとかが無いから使い勝手が悪いのでラッパクラスを作ろう。

⇒ 続きはWEBで


タグ:JavaScript

Javascriptの配列 [プログラミング]

Javascriptで配列を扱うには、クラスArrayを使います。

var a = new Array();

a[0] = 1;
a[1] = "a";

添え字([ ]の中)は、0からの連番になっているので、大きさ(要素数)が"N"の配列では、添え字に0~N-1が使えます。

とは言え、配列の大きさは必要に応じて自動で増えていくので、あまり気にすることはありません。

ところで、
某有名サイトでは、Javascriptの配列(Array)の説明に、次のようなことが書いてありました。

(Javascriptの配列では)添え字に文字列を指定することが出来ます。

つまり、こんな↓使い方も出来るという事です。

var a = new Array();

a["apple"] = "りんご";
a["banana"] = "バナナ";

⇒ 続きはWEBで


タグ:JavaScript

VC++6のDLLでSTLを使う [プログラミング]

大いに今更感満載なのですが、Visual C++ 6 の話です。

Visual C++ 6 に付属のSTLは、微妙に“使えない”代物だったりします。
それが、STLの実装に依るのか、VC++6コンパイラのテンプレート解釈の所為なのかは知りませんが。

その“使えない”理由のひとつに、
std::vector以外のSTLコンテナのインスタンスを、DLLとDLLを使用するexeの間で、共有できない』
というのがあります。

⇒ 続きはWEBで


タグ:VisualC++

SetTextCharacterExtraとDrawTextとWindows XP [プログラミング]

VisualC++で画面に文字を出力する時、SetTextCharacterExtra() API を使う事で文字と文字の隙間(文字間隔)を指定することが出来ます。

CDC* pDC;
...
pDC->SetTextCharacterExtra(10);
pDC->TextOut(0, 0, _T("あいう"));

とすると、「あ」と「い」、「い」と「う」の間に10ずつ隙間が開きます。

⇒ 続きはWEBで


タグ:VisualC++

iTextを使ってPDF作成 - 注釈 - [プログラミング]

PDFデータには、注釈を付けることが出来ます。

(PDFファイルを作成するためのJava用ライブラリ)「iText」にも、注釈を付けるクラスが用意されています。

⇒ 続きはWEBで


タグ:Java iText

iTextを使ってPDF作成 - 振り仮名 - [プログラミング]

(PDFファイルを作成するためのJava用ライブラリ)「iText」を使ってPDFを作っているわけなのですが、漢字に振り仮名(ルビ)を振る機能が無い。

そこで、自分で振り仮名を出力することにします。

⇒ 続きはWEBで


タグ:iText Java

iTextを使ってPDF作成 - ページ番号 - [プログラミング]

(PDFファイルを作成するためのJava用ライブラリ)「iText」を使ってPDFを作っているわけなのですが、ページ番号を出力してくれる機能が無い。

そこで、自分でページ番号を出力することにします。

⇒ 続きはWEBで


タグ:Java iText

JavaでPDFファイルを出力 [プログラミング]

プログラム上からPDF形式のファイルを作成しようと思います。
もちろんコレのためです。

⇒ 続きはWEBで


タグ:Java iText

変数名で動作を変える。 [プログラミング]

void output(const char* mes);

というインターフェースを持つ関数がありました。
この関数を呼ぶと、引数で指定した文字列を表示します。

ぶっちゃけ、こんな関数です。

void output(const char* mes)
{
    puts(mes);
}

で、文字列は定数で定義されていて、output関数は定数名を指定して呼び出すことになっていました。

const char* MES1 = "メッセージ1";
const char* MES2 = "メッセージ2";
const char* ERR_MES1 = "エラーメッセージ";

void func()
{
    output(MES1);
    output(MES2);
    output(ERR_MES1);
}

そんなある日のこと………。

⇒ 続きはWEBで


タグ:C++

Windowsアプリケーションでprintf [プログラミング]

前回までのあらすじ)
Windowsアプリケーション(GUIプログラム)なのに、実行結果をコマンドプロンプトに表示しなければならなくなった。

⇒ 続きはWEBで


タグ:VisualC++

アンインストーラ作成日記 後編 - 再起動時にファイルを削除 [プログラミング]

アンインストーラを作成していて、1つの問題にぶち当たりました。

『アンインストーラそれ自身をどうやって削除するか』

⇒ 続きはWEBで


タグ:VisualC++

アンインストーラ作成日記 前編 - 「プログラムの追加と削除」へ登録 [プログラミング]

仕事で作っていたソフトウェアで、客から「インストーラを作ってくれ」との要望が発生。
「適当なディレクトリにコピーするだけだから、不要では?」とも思ったのですが、開発費がちゃんと出るので作ることになりました。
「(業務で使用するソフトウェアだから消すことは無いので)アンイントーラは必要ない」との事だったので、ディレクトリ選択ダイアログを表示して、そこにファイルをコピーするだけのチャチなインストーラを作成しました。

数ヵ月後。

⇒ 続きはWEBで


タグ:VisualC++

ショートカットが参照しているファイルを取得 [プログラミング]

ファイル選択ダイアログでショートカットファイルを選択すると、自動でショートカットファイルが指しているファイルのパスに変換してくれます。
一方、ショートカットファイルをアプリケーションのウィンドウへドラッグ&ドロップすると、ショートカットファイルのパスが得られます。

「メモ帳」で試してみよう。
ショートカットファイルをメモ帳のウィンドウにドラッグ&ドロップすると、ショートカットファイルの中身が見えます。

もちろん、それでは都合が悪いわけで、ショートカットファイルのパスから、ショートカットが指し示しているファイルのパスを取得します。

⇒ 続きはWEBで


タグ:VisualC++

ショートカットファイルを作成する。 [プログラミング]

ショートカットファイルを作るには、拡張子が「.lnk」のファイルを作って、色々とファイルにデータを書き込めば良いのですが、.lnkファイルのフォーマットがよく解らないので、素直にAPIを呼び出すことにします。

⇒ 続きはWEBで


タグ:VisualC++

環境変数を設定する。 [プログラミング]

とあるソフトウェアをインストールしたディレクトリに、パスを通す事になりました。

(インストーラが)デスクトップとスタートメニューにショートカットを作成するのだから、わざわざパスを通す必要なんか無いと思うのですが、どうやらコマンドプロンプトから起動したいという人がユーザに居るらしく、是非やってくれと言う事なのです。

そんな訳で、インストールしたディレクトリをパスに追加する機能をインストーラに仕込むことになりました。

⇒ 続きはWEBで


タグ:Windows

double型の値を文字列に変換 [プログラミング]

String a;
String b;
String c;

(略)

String s = a + b + c;

Javaで、こんなコードがあったとします。
文字列同士の加算は文字列の連結として解釈されます。

⇒ 続きはWEBで


タグ:Java
前の20件 | 次の20件 プログラミング ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。