OZの部屋

なんでも日記です

このブログの編集ツール 改

2006-11-03 15:28:32 | プログラム
先日 このブログを編集していたら
  HTMLタグを記述しようとしたら< >を入力したとき、うまくいかなかったので、ツールを作ってみました。
ところが、けさ、編集していたら、先頭スペースが無視されることが分かりました。
それで、今度のは、
先頭スペースがあったら、 に書き換えるようしました。
また、タブも2このスペースに変換するようにしました。
(先頭からの場合のみ)
それで
  <html>
    <head>
    xxxxx
    </head>
    <body>
      <a href="xxxx">aaaa</a>
    </body>
  </html>

なんてのも楽にできるようになりました。

Gooブログ編集ツール OhMyGoo.zip

↑をダウンロード 217Kb 

今度はDelphi Indy を使ってみる

2006-11-03 07:46:28 | プログラム
delphi でHTTPを使うには
Indyが楽、以前会社のシステムで少し使ったことがある。
使っているDelphiは ちと古くなったけれど Delpi7

そこで、小手調べ。

新規アプリケーションを作成して
フォームにMemoをひとつ、Indy Clientsの中にあるIdHTTPをひとつ、
それと、Buttonをひとつ
以上3個のコンポをフォームに置く。
なまえはデフォルトで使う。

ボタンをダブルクリックして、ちょっとコードをかく
procedure TForm1.Button1Click(Sender: TObject);
const
  url='http://www.google.co.jp/';
begin
  Memo1.Lines.Text:=IdHttp1.Get(url);
end;

これでRun ちゃんとGetできているみたい。
ちょー簡単だ。
ちなみに、MemoのScrollBarsはssBothにしておいたほうがよさそう。

さて、こんどはURLをGooのトップページにしてみる

const
  url='http://www.google.co.jp/';

これだけ変えて、Runすると、
一応とってきてはいるが、日本語が化けている。
GooはUTF-8のコーデックだ。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


それでは、

procedure TForm1.Button1Click(Sender: TObject);
const
  url='http://www.goo.ne.jp';
begin
  Memo1.Lines.Text:=UTF8Decode(IdHttp1.Get(url));
end;


でOK でもさきほどのURLでUTF8Decode()してしまうと
まったく表示されなくなってしまう。
HTMLヘッダ内のMetaタグでhttp-equiv属性にcharsetを設定しているところを調べてけっていしなければならない。
正規表現だ。
が、delphiには正規表現はない。

でも世の中には必要に応じて用意してくれる人がいるんですね。

BRegExp この話は次回につづく。

それと、いまこの文章書いてて気がついたんですが、
先頭スペースは無視されるんですね。convmetaを直さなくちゃ。