■スレッドリストへ戻る■ 全部 1- 最新50

MonaUtils

1 :名無しさん :2001/03/07(水) 00:07
誰もが書いて、なおかつ仕様がそれほど異ならない
共通の関数の仕様・実装をageましょう。リクエストもOK。

26 :ふみもたたけし :2001/03/11(日) 20:59
ちょっと修正
>>24
この前貼ったデスクトップ画像の話?
普段は1600x1200x2で使ってるのでスペースがあまりまくり。
もっと効率的なスペースの埋め方はないものか...

27 :1 :2001/03/11(日) 23:38
>>BlockRead/BlockWriteなんてキーワードどこで知ったの?
>これはTurbo Pascal時代からある手続き。
>今はWin32API使うからほとんど使われないけど。
先頭でAssignが使われていたのでBlockReadを使ってみました。
こっちのほうが移植性が高まるかも(何への??)。お題が出ないようなので
ttp://... -> <A HREF=http://>ttp://...</A>
の変換ルーチンでも書いてみようかな。

28 :turbo_type_D@モナブロラ :2001/03/12(月) 08:37
>>27
キコナビ厨房ソースのページに
>・文字列にURL(http://xxx)があったら、<a href="http://xxx">http://xxx</a>にしてくれるメソッド(高速に)。
とあるのでそっちをいつか見たいと思ってた。参考にしてみたらどうかな。

29 :名無しさん :2001/03/12(月) 10:20
.SaveStringToFile関数が D4だとエラーになる、
内部で使ってる ForceDirectoriesが D4は手続きなのに、
D5では boolean を返す関数になってる、

30 :名無しさん :2001/03/12(月) 10:46
こう修正すりゃいいかな?if (path <> '') and not DirectoryExists(path) then
 {$IFDEF VER130}
 if ForceDirectories(path) then
  MonaError('ディレクトリ%sが作れません。', [path]);
  {ウエ(´Д`) フォルダが存在しない場合作成する}
 {$ELSE}
 try
  ForceDirectories(path);
 except
  MonaError('ディレクトリ%sが作れません。', [path]);
 end;
{$ENDIF}

31 :1 :2001/03/12(月) 22:41
今日は余裕がないのでレスフィルタクラスのインターフェースのみtype
TMonaResFilter = class(TObject)
protected
function Filter(res: String): String; virtual;
public
// フィルタを多重化できるようにする
property Next: TMonaResFilter read write;
property Prev: TMonaResFilter read write;

function Execute(s: String): String;
end;

// スペース表示フィルタ
TMonaResFilter_Space = class(TObject)
protected
procedure Filter(res: String): String; override;
end;

// オマエモナー強調フィルタ
TMonaResFilter_Omaemona = class(TObject)
protected
procedure Filter(res: String): String; override;
end;

// ttp://xxx -> <A HREF=http://xxx>xxx</A>変換フィルタ
TMonaResFilter_ttp = class(TObject); // todo:実装する

procedure TMonaResFilter_Space.Execute(res: String): String;
begin // todo:連続する一個のスペースは変換しないようにする。タブも変換する
Result := StringReplace(res, ' ', ' ', [rfReplaceAll]);
end;procedure TMonaResFilter_Omaemona.Execute(res: String): String;
begin
Result := StringReplace(res, 'オマエモナ-', '<B>オマエモナー</B>', [rfReplaceAll]);
end;

32 :1 :2001/03/12(月) 22:48
間違いだらけ...
でも意図は伝わりそうだからいいか。これ以外にも大文字->小文字強制変換、
AA縮小・削除フィルタなんてのも考えられますね。
他にアイデアがあったらageて下さい。

33 :ヒロユキ@ギコナビ :2001/03/13(火) 00:40
ADSL入ったよ。
こんな画像や、あんな動画ばかり見ていて、ギコナビ忘れてた(藁>>28
ギコナビは実装してないです。
途中までやって、倒れました。
文字列処理って面倒だよね。あと、高速回線になって初めて気づいたんだけど、
ギコナビって、スレリスト取得後すぐに、今のリストと
比較して、イロイロ処理しているんだけど、その処理が結構
遅い上に他のスレッド止めているんで、凄く気になりました。
こういう部分は、後から見つかると大変なので、注意したほうがいいかも。

34 :turbotypeD@monazilla.org(w :2001/03/14(水) 10:23
>>こんな画像や、あんな動画ばかり見ていて、ギコナビ忘れてた(藁
ヾ(・w・;)ォィォィ
ビデオの方がいいと思うなあ.ちょっと小耳にはさんだんだけど(・ε・)3ゞ
PS2のおかげでエロDVD卸問屋が前年比800%の成長だったってさ。

35 :名無しさん :2001/03/14(水) 16:45
ExtractHostNameきぼぉん

36 :1 :2001/03/14(水) 19:37
仕様がわかりません。
どこから何をどういった形式で
取り出すのでしょうか?

37 :ヒロユキ@ギコナビ :2001/03/14(水) 23:58
>>35
>ExtractHostNameきぼぉん
http://monagiko/mona/giko

http, monagiko, mona, giko
に分解ならhttpcliのソースにあったような気がする。
参考になるかも。

38 :Dax :2001/03/15(木) 08:22
>>35
HttpApp.ExtractHTTPFieldsでもできるかも。

39 :turbotypeD@monazilla.org(w :2001/03/15(木) 10:13
オレは自分で作成したWordDecomposeってのを使ってる。
汎用文字列分解関数だよ。WordCount(':/'{区切り文字},
     'http://monagiko/mona/giko', [区切り方法を指定する適当なパラメタ])
で4という数字がもどってきて
WordGet(':/', 1, 'http://monagiko/mona/giko', []);
でIndex1番目のmonagikoという文字列が返るようにしている。
モナプロラのソースに付属してるよ。

40 :turbotypeD@monazilla.org(w :2001/03/15(木) 13:19
XPの紹介があったので、こんなのを見つけました。新ソフトウエア開発手法「エクストリーム・プログラミング(XP)」のユーザー会が発足
http://nsw.nikkeibp.co.jp/nsw/newsshow.asp?ID=920参加しとく?(藁

41 :Dax :2001/03/18(日) 22:19
XPって本当にやってる企業あるのかなー?
会議でおやつはマンセー。#だって眠いもん。

42 :Dax :2001/03/18(日) 22:20
誤)マンセー
正)賛成
ぅっょ〜。

43 :turbotypeD :2001/03/19(月) 00:11
実は今日「XPエクストリームプログラミング入門」買っちゃったよ。
会社では全く役に立たないけどね。仕事してないし。
さーて明日も遊ぶか!(藁ああ、転職せねば、鬱々

44 :1 :2001/03/19(月) 01:19
すんません。忙しくてアップデートできせん。火曜日に更新予定。>「XPエクストリームプログラミング入門」
これはずれでした。読みづらいし(具体的・技術的な)内容薄いし。
上のURLや「リファクタリング」のほうがより具体的で参考になりますよ。今はリファクタリング+ユニットテストを実践中(monazilla以外でね)。
これだけでもかなり効果あり。
ペアプログラミングもたまに成り行き上やることあるけど、
確かに効果があがります。お互いに知識を補完しあって良い感じです。
気の合う人とでないと疲れちゃいますけどね。

45 :Dax :2001/03/22(木) 23:01
ペアプログラミングってはじめて聞いたときは衝撃的だったけど
確かに効果ありそうね、プログラミングに限らず
ネットサーフィンとか議事録作成、分析も設計もペアでやればいろいろ吸収できそう??

46 :Dax :2001/03/30(金) 09:50
ベースURLとそのベースURLに対する相対パスを渡すと
それらをマージしてURLをつくる関数がほしいなぁ〜
例)
hoge('http://www.xxx.aaa/data/test/', '../../index.html')
結果= http://www.xxx.aaa/index.html

47 :turbotypeD@monazilla.org(w :2001/03/30(金) 13:49
年度末連続カキコ。
>>46
一応もっているというか、自作の文字列処理ユニットが絡んでいるから
ややこしいけど、いる?
どこかのアプ板に掲載しておきましょうか?
エラー処理などはおざなりだけど。
hoge('http://www.xxx.aaa/data/test/', '../../../../../index.html')
こんな処理されても挙動がどうなる事やら。

48 :名無しさん :2001/03/30(金) 22:33
ここにコードがある。
http://www.sakaki.keiaikai.or.jp/convroom/webconv.exe/read?No=11629&Response_Root=11621"http://www.2ch.net/../../index.htm"
は当然例外を生成すべき。

49 :Dax :2001/03/31(土) 08:31
おお!あるじゃん!
サンキスト(登録商標)!

50 :ヒロユキ@ギコナビ :2001/04/05(木) 22:43
ここにコード載せていいのかな?
URL文字列 → <A HREF〜変換メソッドです。
まだ、ギコナビにも組み込んでいない(今出来たばかり)ので、
バグがあると思います。
いい加減なテストでは動きました。function TForm1.AddHRefTag(s: string): string;
const
NORMAL_CHAR: string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:/.%?&#=-_';
var
url: string;
i: Integer;
idx: Integer;
begin
Result := ''; while True do begin
idx := AnsiPos('http://', s); if idx = 0 then begin
//リンクが無いーよ。
Result := Result + s;
Break;
end; Result := Result + Copy(s, 0, idx - 1); s := Copy(s, idx, length(s)); for i := 0 to Length(s) do begin idx := AnsiPos(s[i + 1], NORMAL_CHAR); if (idx = 0) or (i = (Length(s))) then begin
//URLじゃない文字発見!とか、文字がなくなった。
url := Copy(s, 0, i); Result := Result + '<a href="' + url + '" target="_blank">' + url + '</a>';
s := Copy(s, i + 1, Length(s));
Break;
end;
end;
end;
end;

51 :ヒロユキ@ギコナビ :2001/04/05(木) 22:43
インデント消えてるし。
省略されてるし。
鬱だ。

52 :Dax :2001/04/05(木) 23:28
テキストでアプして〜!もしくは TECH-BBS。
テストしてみるよー。

53 :ヒロユキ@ギコナビ :2001/04/05(木) 23:46
アプしたよ。URL文字列 → <A HREF〜変換メソッド
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/AddHRefTag.txt

54 :Dax :2001/04/05(木) 23:51
さんきすと!(^3^)

55 :Dax :2001/04/06(金) 10:47
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/MonaUtils20010406.lzh
MonaUtilsにAddHRefTag関数を追加しました。
Kylixでも動くように何カ所か手を加えました。(IFDEF入れました)

56 :Dax :2001/04/06(金) 12:51
>>AddHRefTag
チルダ以降がURLとして認識されないみたい。
NORMAL_CHARに追加すればいいのかな?お!できた、できた。
MonaUtils20010406.lzhも修正しときました。

57 :ヒロユキ@ギコナビ :2001/04/07(土) 00:09
>>56
URLで使用できる文字とか、抜けているのもアルっぽい。
http://www.rfc-editor.org/rfc/rfc2396.txt
↑に書いてあると思うんだけど、読めないや。(いや、、字が小さくて、、)
あと、https://とかftp://とかどうしよう。

58 :ふみもたたけし :2001/04/08(日) 16:05
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/MonaUtils/Folders.pas.txt
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/MonaUtils/History.pas.txtmonazilla共通ディレクトリ管理クラスと
2ちゃんねるアクセス履歴管理クラスを作ってみた。
いきなり組み込むのもアレなんでレビューお願いします。

59 :Dax :2001/04/08(日) 22:37
MonaUtils.pas には共通関数だけ入れて
クラスはそれぞれのユニットで提供ってのがよくない?
名付けてモナヂラ・ファンデーション・クラス(MFC)<これは嘘。

60 :>57 :2001/04/08(日) 23:17
>あと、https://とかftp://とかどうしよう。
2ちゃんではあまり見かけないから、あまり必要ないかも。
どっちかっていうと直リンはずしてある
ttp://, htp://, tp://に対応して欲しい。
いっそxxx:// -> http://強制変換がいいかも。

61 :Dax :2001/04/08(日) 23:23
>>60 同意。
ttp:// , www. はサポートしたいね。

62 :名無しさん :2001/04/08(日) 23:31
ここらへんは個別に対応すると無茶苦茶遅くなりそうだから
まず'://'で検索してその前後を検索してけばいいかもしれない。あとバグっぽいの発見
function AddHRefTag(s: string): string;
const
NORMAL_CHAR: string = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789:/.%?&#=-_~'; <-- '+'が抜けてる
var
url: string;
i: Integer;
idx: Integer;
begin
Result := ''; while True do begin
idx := AnsiPos('http://', s); if idx = 0 then begin
//リンクが無いーよ。
Result := Result + s;
Break;
end; Result := Result + Copy(s, 0, idx - 1); s := Copy(s, idx, length(s)); for i := 0 to Length(s) do begin idx := AnsiPos(s[i + 1], NORMAL_CHAR); <-- s[Length(s)+1]にアクセスする

63 :Dax :2001/04/09(月) 19:49
>>58
アクセス履歴管理クラス使ってみました。
でも Delphi4だとコンパイルエラーだったよ。。悲しい。。(IncludeTrailingBackslash

64 :Dax :2001/04/09(月) 21:43
>>58
環境変数ってWin9xは Autoexec.batに書いてリブートしなきゃ
いけないのかな?いちおそれでうまくいったけど他に方法あんのかな?

65 :turbotypeD@monazilla.org(w :2001/04/10(火) 21:46
IncludeTrailingBackslashのソース。function IncludeTrailingBackslash(const S: string): string;
begin
 Result := S;
 if not IsPathDelimiter(Result, Length(Result)) then Result := Result + '\';
end;

66 :Dax :2001/04/11(水) 17:16
>>65
ありがと!
GetEnvはやっぱ Kylixに移植しにくい・・・

67 :Dax :2001/04/17(火) 15:13
条件コンパイル指令間違ってました
{$IFDEF WINDOWS}じゃなくて{$IFDEF MSWINDOWS}でした。

68 :Dax :2001/04/27(金) 12:19
久しぶりに関数を追加しました。
ほとんどモナプロ〜ラ〜とギコナビからの移植です。
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/MonaUtils20010427.lzh 2001.04.27 TrimHRefTag作成
2001.04.27 DecodeHtmlEsc作成
2001.04.27 EncodeHtmlEsc作成
2001.04.27 ExtractHostDomain作成
2001.04.27 Get2chDate作成 < GikoNaviより
2001.04.27 ChooseString作成
2001.04.27 ExtractQuotedStr作成
2001.04.27 ExtractUrlLastPath作成
2001.04.27 IsNumeric作成 < GikoNaviより
2001.04.27 IsFloat作成 < GikoNaviより
2001.04.27 Fmt2chToDateTime作成 < Monaplorerより
2001.04.27 AddHRefTagをアップデート < GikoNavi a013より
2001.04.27 StrCount1作成 < Monaplorerより
2001.04.27 BackAnsiPos作成 < Monaplorerより

69 :委員長 :2001/06/18(月) 11:05
MonaUtils 使わせて貰ってます。
お陰で随分と楽チン♪。
わざわざ説明するまでもないと思うけど、BCB5でMonaUtilsを使う方法を書い
ときます。
BCB5 で開発している人がいるのかどーかは知らんけど。 C:\Mona にMonaUtilsを解凍したとする。
1.コマンドプロンプトから、DCC32 -JPHNV C:\Mona\MonaUtils.pas を実行
2.C:\Mona に MonaUtils.hpp MonaUtils.obj MonaTest.hpp MonaTest.obj が
作られるので、開発中のプロジェクトのフォルダにコピペ。(他は無視)
3.プロジェクトにMonaUtils.objを追加。
4.関数を使いたいcppファイルの頭に、#include "MonaUtils.hpp" を追加。これでOK!(のハズ)

70 :Dax :2001/07/09(月) 22:34
ヒロユキ氏作のhttp://にリンクを追加する関数「AddHRefTag」を、
ttp://でもリンクを追加するようにしてみました。
かなり冴えない修正ですが、、
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/MonaUtils20010709.lzh

71 :名無しさん :2001/11/01(木) 08:35
最新版落とせねーぞ。(・∀・)ゴラァ!

72 :書記さん :2001/11/01(木) 11:04
すんません、新URLはこっちです。
http://members.jcom.home.ne.jp/monazilla/src/MonaUtils20010709.zipついでに現時点での最新もあげときます。
http://members.jcom.home.ne.jp/monazilla/src/MonaUtils20011101.zip

73 :名無しさん :2001/11/06(火) 09:32
thx!

74 :幸運の国 :2002/02/06(水) 23:55
http://members.jcom.home.ne.jp/monazilla/document/index.html
ここのページのリンクがNotFoundになってるとのことなんで再ウプしてみました。C++でboard一覧を作成するクラスです。
http://www2.ocn.ne.jp/~luckland/sample_code.html

25KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30