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

MonaUtils

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

2 :1 :2001/03/07(水) 00:14
というわけでアプリ・大物クラスは無理ですが、
小物関数・クラスの作成程度なら協力しますよ。

3 :turbotypeD@monazilla.org(w :2001/03/07(水) 18:15
がんばってください。要望出すかも?よいでしょうか。

4 :Dax :2001/03/07(水) 22:17
んじゃ ExtractFilePathや ExtractFileNameのURL版がほしいですね。S := DosPathToUnixPath(ExtractFilePath(UnixPathToDosPath(URL))でもいいのかな、

5 :1 :2001/03/07(水) 23:06
>4 こんなもんでしょうか
uses SysUtils;
function ExtractUrlPath(const FileName: string): string;
var
I: Integer;
begin
I := LastDelimiter('/:', FileName);
Result := Copy(FileName, 1, I);
end;function ExtractUrlName(const FileName: string): string;
var
I: Integer;
begin
I := LastDelimiter('/:', FileName);
Result := Copy(FileName, I + 1, MaxInt);
end;

6 :1 :2001/03/07(水) 23:49
つーか、ユニット化しないと意味ないですね...
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/MonaUtils.zip簡単なUnitTestも付けました。
テストコードを読めば各関数の使い方がわかるはずです。

7 :名無しさん :2001/03/08(木) 08:27
Good!!
こりゃいい、どんどんつくってくれ!

8 :turbotypeD@monazilla.org(w :2001/03/08(木) 16:57
スンマソン、さっそくお頼みしたいでやんす。テキストファイルのIO処理で。//ファイルに文字列を書き込む
procedure SaveToFileFromString(const FileName, Str: String);
var
 F: TextFile;
begin
 if DirectoryExists(ExtractFileDir(FileName))=False then
  ForceDirectories(ExtractFileDir(FileName));
  {ウエ(´Д`) フォルダが存在しない場合作成する}
 try
  AssignFile(F, FileName);
  Rewrite(F);
  Write(F, Str);
 finally
  CloseFile(F);
 end;
end;
この関数はばっちりなんだけど。//ファイルから文字列を読み込む
function LoadFromFileToString(const FileName: String): String;
var
 SL: TStringList;
begin
 Result := '';
 if FileExists( FileName ) then
 begin
  SL := TStringList.Create;
  try
   SL.LoadFromFile(FileName);
   Result := SL.Text;
  finally
   SL.Free;
  end;
 end; //if FileExists
end;
こっちがStringListつかっていてへちょいです。
へちょいだけなら別によいのですが
CRLFの改行コードが自動的にWinになってしまうので
困っているのです.このLoadFromFileToStringも
AssignFileなどで実装してもらえないでしょうか。
(CRLFは元のままResultしてくれるようなヤツでお願いしたいっす。)

9 :541@2chスレ :2001/03/08(木) 19:06
Math.pasに依存しないMax,Min追加版
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/MonaUtils20010308.zip

10 :書いてみた :2001/03/08(木) 20:12
// なければURLの末尾に'/'を追加
function AddSlashToUrl(Url: String): String;
// あればURLの末尾の'/'を削除
function DeleteSlashFromUrl(Url: String): String;function AddSlashToUrl(Url: String): String;
begin
Result := Url
if (Length(Result) > 0) and (Result[Length(Result)] <> '/') then
Result := Result + '/';
end;procedure testAddSlashToUrl;
procedure mycheck(s, s2: String);
begin
Check(s, AddSlashToUrl(s2));
end;
begin
mycheck(
'http://www.yahoo.co.jp/',
'http://www.yahoo.co.jp' );
mycheck(
'http://www.yahoo.co.jp/',
'http://www.yahoo.co.jp/' );
end;function DeleteSlashFromUrl(Url: String): String;
begin
Result := Url
if (Length(Result) > 0) and (Result[Length(Result)] = '/') then
SetLength(Result, Length(Result)+1);
end;procedure testDelSlashToUrl;
procedure mycheck(s, s2: String);
begin
Check(s, DelSlashToUrl(s2));
end;
begin
mycheck(
'http://www.yahoo.co.jp',
'http://www.yahoo.co.jp/' );
mycheck(
'http://www.yahoo.co.jp',
'http://www.yahoo.co.jp' );
end;

11 :名無しさん :2001/03/08(木) 21:29
ソースの管理が難しいなー。
MonaUtils.zip を更新していっていいのかな?

12 :1 :2001/03/09(金) 00:30
とりあえずこのスレのローカルルールを決めてみました。
私が定期的にメンテして整合性をとります。
管理が大変になってきたらまたそのとき考えます。ただコードを書いてメンテするのも退屈なので
不特定多数によるXPのUnitTestがどれくらい
効果をもつのか実験をしてみたいと思います。まあ考え方はぜんぜん難しくないのでMonaTest.pas, MonaUtils.pasを
10分くらい眺めていればすぐに理解できるはずです。UnitTestを知らない人は以下のURLを参照してみてください。
http://member.nifty.ne.jp/masarl/article/xp-tutorial.html
http://member.nifty.ne.jp/masarl/article/testing-framework.html
http://objectclub.esm.co.jp/eXtremeProgramming/

13 :1 :2001/03/09(金) 00:37
■MonaUtils利用者向けローカルルール
定期的かつ頻繁にtestMonaUtilsを実行する。
リクエストは説明+テストの形式で行う。
特に、仕様がはっきりしている場合テストコードは!!必須!!。
バグ報告・仕様変更要求は追加のテストコードの形で報告する。■MonaUtils開発者向けローカルルール
ソースのアップは以下の方法で行う
(なるべく上の方のやり方を推奨)。
・MonaUtils.zip上書き
・MonaUtils+日付.zip 
・ソースをスレに書き込む
・別モジュールで提供# アーカイブの内容は修正したファイルのみでよい
# ファイル形式はzipかlzhテストコードを!!必ず!!書く。
バグ修正前に、バグを再現させるテストを追加・実行する。
余裕があればコメントも書く
(関数名+テスト内容だけで使い方が判るのがベスト)。インターフェース部分の修正・削除は原則禁止。
事前に修正・削除要求をだすこと。
(24時間以内ならOK??)

14 :turbotypeD :2001/03/09(金) 00:43
>>10
URLに2バイト文字がないからよさそうだけど
"/"って文字自体が2バイト文字と重ならないのかどうかはしらないけれどD5のVCL
IncludeTrailingBackslash
ExcludeTrailingBackslash
のソースを参考にしたほうがいいかもよ。//ファイル名の末尾に'\'を追加する関数
function IncludeTrailingBackslash(const S: string): string;
begin
 Result := S;
 if not IsPathDelimiter(Result, Length(Result)) then Result := Result + '\';
end;//ファイル名の末尾から'\'を取り除く関数
function ExcludeTrailingBackslash(const S: string): string;
begin
 Result := S;
 if IsPathDelimiter(Result, Length(Result)) then
  SetLength(Result, Length(Result)-1);
end;この手のバグはなかなかやっかい.
しかもわかりにくい、気が付きにくい。
FDelphiサイトのPutYenMarkという関数もバグありだし

15 :turbotypeD :2001/03/09(金) 00:46
>>10
URLに2バイト文字というのは聞いた事がない
から大丈夫なのかもしれないけど・
将来的にはまずいよな。
"/"って文字自体が2バイト文字と重ならないのかどうかはしらないけれどD5のVCL
IncludeTrailingBackslash
ExcludeTrailingBackslash
のソースを参考にしたほうがいいかもよ。//ファイル名の末尾に'\'を追加する関数
function IncludeTrailingBackslash(const S: string): string;
begin
 Result := S;
 if not IsPathDelimiter(Result, Length(Result)) then Result := Result + '\';
end;//ファイル名の末尾から'\'を取り除く関数
function ExcludeTrailingBackslash(const S: string): string;
begin
 Result := S;
 if IsPathDelimiter(Result, Length(Result)) then
  SetLength(Result, Length(Result)-1);
end;この手のバグはなかなかやっかい.
しかもわかりにくい、気が付きにくい。
FDelphiサイトのPutYenMarkという関数もバグありだし

16 :名無しさん :2001/03/09(金) 01:06
>14-15(藁
このテの話を何度もするのはウザいので
危険な漢字集をキボーン。
とりあえず俺が知ってるのはこれだけ
'表'[2] = '\'

17 :turbotypeD :2001/03/09(金) 01:08
ニジウカキコごめんね。

18 :Dax :2001/03/09(金) 08:49
ByteType関数で判断するのがいいのかな?

19 :turbotypeD@monazilla.org(w :2001/03/09(金) 11:53
//文字列の最後が'/'or'\'ならそれを取り除く
function RemoveSlashMark(const S: TFileName): TFileName;
begin
 Result := S;
 if Length(Result) = LastDelimiter('\/', Result) then
  SetLength(Result, Length(Result)-1);
end;//文字列の最後が'/'じゃないなら追加
//文字列の最後が'\'なら'/'に置き換え
function PutSlashMark(const S: TFileName): TFileName;
begin
 Result := RemoveSlashMark(S);
 Result := Result + '/';
end;
こんなんを作ッたことがある。TFileName=Stringね。LastDelimiterの引数を'/'だけに変えたら望みどおりかも。
確認したけどLastDelimiterはMBCS対応.
VCLのLastDelimiterソスではDax氏のいうとおりByteType関数
http://homepage2.nifty.com/boheme/delphi/tips/tec0710.htm
使ってるよ。

20 :turbotypeD@monazilla.org(w :2001/03/09(金) 12:06
>>8
の件も気が向いたらどなたか考えてくだされ

21 :1 :2001/03/10(土) 17:25
>1-20までの要望・コードを取り込みました
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/MonaUtils.zipHistory2001.03 10 EMonaError, MonaError作成
2001.03.10 IncludeTrailingSlash作成
2001.03.10 ExcludeTrailingSlash作成
2001.03 10 IsUrlDelimiter作成
2001.03 10 FindFile作成
2001.03.10 LoadStringFromFile作成
2001.03.10 SaveStringToFile作成

22 :turbotypeD :2001/03/10(土) 19:57
>>21
グレ〜〜ト!d(・∀・)

23 :turbotypeD :2001/03/10(土) 21:02
BlockRead/BlockWriteなんてキーワードどこで知ったの?
ありがと。

24 :ふみもたたけし :2001/03/11(日) 16:30
簡易プロファイラ+簡易HTMLパーサ+bbstable.html解析サンプルを書いてみた
http://www.geocities.co.jp/SiliconValley-Oakland/9028/src/MonaUtils20010311.zipHistory
2001.03.11 MonaHtmlParser作成
2001.03.11 MonaProfiler作成>BlockRead/BlockWriteなんてキーワードどこで知ったの?
これはTurbo Pascal時代からある手続き。
今はWin32API使うからほとんど使われないけど。

25 :名無しさん :2001/03/11(日) 16:54
すごいデスクトップだ、、>>24

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