C# vs Delphi Round 1

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ヘジとその信者を同時に奪われたDelphiは
やっぱり死滅しちゃいますか?
2manko chinko:02/05/16 21:05
>ヘジとその信者を同時に奪われたDelphiは
>やっぱり死滅しちゃいますか?
しません。
C#とDelphi。
腹違いの兄弟みたいなもんだ。
4デフォルトの名無しさん:02/05/16 21:06
>>2
Del厨ハケーン
5manko chinko:02/05/16 21:07
>>4
>Del厨ハケーン
Delphiはフリーなバージョンをちょっと触ったことがあるだけです。
.NET厨、Del厨以外の普通の人は放置願います。
よろしくお願いします。
>>5
まともな人は一切触りません。
9manko chinko:02/05/16 21:14
>>8
>まともな人は一切触りません。
へー

「ということにしたい」ですか:)
Kusakabeハケーン!!
11shige:02/05/16 21:15
>>9
>「ということにしたい」ですか:)

ということにしたいのですね? :)
12デフォルトの名無しさん:02/05/16 21:15
栄枯盛衰は世の習い
13manko chinko:02/05/16 21:16
>>11
>Kusakabeハケーン!!
それって誰?
14manko chinko:02/05/16 21:16
>>11
>>「ということにしたい」ですか:)
>
>ということにしたいのですね? :)

思考停止ですか?
>>11
>>「ということにしたい」ですか:)

>ということにしたいのですね? :)


ということにしたいのですね? :)
16デフォルトの名無しさん:02/05/16 21:18
>>15
>>「ということにしたい」ですか:)

>ということにしたいのですね? :)


>ということにしたいのですね? :)

ということにしたいのですね? :)
つか round 1 じゃないだろ...
Del厨ってどこでも出てくるし...
>>17
あなたのようなどこにでも現れるアンチDelには迷惑しています。
C#プログラマより。
>>18
Del厨は (・∀・)カエレ!!
>>19の視点

○★%&’”#$%&$%〜|)`@:Del+”▲□’”#$%&$
’”#$%&$$%
おいおいおいおい(;´Д`)
またDelphiスレかよ...
いいかげん引き際ってのを覚えたほうがいいんじゃない?
VB使いはどこで愚痴をすればいいのですか?
>>21
うれしいくせに(藁

ところであんたが最後に使った言語って何?
これはdelphiスレっつうよりもC#スレだろ。1を見る限りは。
>>22
【35才】VB.NETがさっぱりわかりません【定年】
http://pc.2ch.net/test/read.cgi/tech/1021218036/l50

こことかは?
C#マンセー
27デフォルトの名無しさん:02/05/17 04:41
あげ
28デフォルトの名無しさん:02/05/17 10:21
>>1
これだけの差がついたらどちらを選ぶかは自明の理だな。

言語仕様
C#>>>>>>>Delphi
開発環境
C#(VS.NET)>>>>>>>>>>>>>>>Delphi
クラスライブラリ
C#>>>>>>>>>>>>>>>>>>>>>>>>Delphi
マルチプラットフォーム(予定)
C#>>>>>>>>>>>>>>Delphi
開発者人口
C#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Delphi
将来性
C#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Delphi
 じゃあ CSV ファイルを D&D したら 表形式のHTMLにして保存 IEを立ち上げて終了

というアプリをDelphiとC#で作ってみますか?
>>29
今時CSVですか?
表形式のHTML?XMLを吐き出してXSLTで整形とかいう考えは浮かばないの?

アプリ以前の問題で時代遅れ臭がただよってるね。(プ
>>30 それでもいいですよ。
XMLにするなら CSVの最初の1行はタイトル行という事にしましょうか
<XML>
 <SINE>
  Del厨にXMLは使いこなせない。これ定説。(嘲笑激藁
 </SINE>
</XML>
>>31
そういう問題じゃなくて、始めからXMLのデータとXSLを用意しておけばIEで表示して終わりということ。
アプリそのものが必要ない。
C#の人は全員そういう考え方をするのですか?
アプリそのものが必要ないなら、それを作る道具も人間も必要ないですね。
>>34
( ´,_ゝ`)プッ
DelphiよりもXMLの基礎を学んだ方がいいんじゃないの?(w
Del厨マジでやばいな
>>34
アプリを作るだけの人間は必要ないけど、
問題解決出来る人は必要になるのではないでしょうか。
そうでない人は淘汰されるでしょうね。
3829:02/05/17 11:27
ええと、 煽るくらいだから、よほどのC#の使い手なんでしょう?

なら、同じ目的のコードをどれだけ速く、そしてキレイに書けるのかを
競ってみましょうという趣旨ですから、問題はそちらが出して下さってかまいませんよ
また、嘲笑激藁厨房のお出ましか。。(嘲笑激藁

 
挑戦者居ないみたいね

CSV -> XML なら JAVA の例があるので
http://www-6.ibm.com/jp/developerworks/xml/000811/j_xmlexpert-csv.html
http://www-106.ibm.com/developerworks/library/xmlexperts-csv/csvparser-src.html

C#にとってそう難しいコードとは思わないのだけどね
ホント、コード書いて見せろって事になるといつも沈黙

時間帯からみて学生さんじゃないのでしょ? というか学生さんならこれくら
いの課題はこなせるでしょうしね。
もしかして、どっかの人売会社の営業さんがVB使いじゃ売れないくて困って
人材確保用に煽ってるとか?
>>41
自分は出来ないくせに人のことを笑う。
そんな人間として問題のある生物に構うのはやめなさい。
43デフォルトの名無しさん:02/05/17 16:10
コードさえ書けばよいと思ってるDel厨は下層末端奴隷PGの典型ですね。(嘲笑激藁
>>43
状況証拠はそろっている。
少しコードを書けば疑いを晴らすことが出来るんだ。
それをやらずに(嘲笑激藁とか逝ってるんだからねぇ。(嘲笑激藁
Delphiしか書けない奴とDelphi・C#両方書ける奴が争っても意味ないじゃん。
だから、C#のコードが書けるのかどうか 見せてから煽れよ

文法もライブラリも C#の方が上なんでしょ? なら簡単なんでしょ? なら書いてみせてくれ
>>45
そらそうだ。
でも、煽ってるのは(嘲笑激藁だけ。

このスレの癌だなw
あれ? C#ってXMLに特化したんじゃないの?
ならCSV から XMLへの変換くらい数行で書けるんじゃないの?
違うの?
49デフォルトの名無しさん:02/05/17 16:40
お前らDel厨ごときにC#を使うまでもなし。VB.NETで相手してやるよ。
じゃ課題は?
exit(1);
C#って俺VisualStudioのオトコンプ-がねーと使えねーよ(泣
課題>>29 は Delphiコードは既に CSVスレに提出済

課題>>31 はDelphiのコードは殆ど同じ形式になるので面白くはないと思います
54デフォルトの名無しさん:02/05/17 16:55
>>53
だから、スマートな.NET使いはそんなことでわざわざコード書かないんだっての。
分かってないねー。
>>54
お前はそれに該当しないな。
書けないんだし。
確かに、スマートな.NET使いさんには ワレたExcelで HTMLに変換がお似合いです
57デフォルトの名無しさん:02/05/17 17:00
>>55
実際殆ど真面目にコーディングしなくてもカチカチやってるといけちゃう
んだよ。ただし、、、、役に立たないプログラムはね!(w
58デフォルトの名無しさん:02/05/17 17:00
Del厨は設計もろくに考えずコードばかり書いてることが判明しました。
>>58 設計しながらコード書けるのが RAD ツールじゃなかったのか?
>>58
日本語出来ない人よりましです。
61デフォルトの名無しさん:02/05/17 17:09
このスレ、Del厨しかいないことにまだ気づいてないみたいだね。
こんな時間に課題くれなんて言ってる落ちこぼれは自覚がないみたいだ。(嘲笑激藁
62デフォルトの名無しさん:02/05/17 17:10
Delは正直俺が個人的に := が嫌いだとか直接文字列操作しにくかったりとか
一々interface, implementation とか書くのウザイとかのPascal的な部分で
どうも苦手だったんだけど、同じような環境が脱Pascalしてくれただけでも俺
はうれしーよ。
>>62
だね。
自分の好きな言語で同じ物が出来るんだから.NETは偉大だ。
両方できる奴が入ると話が一気に終了してしまうヨカソ・・・
だから 両方出来るんなら コード書いてみせてよ
だって俺Pascalに執着ないし。
まともな言語仕様で自由度の高いRADツールがDelphiしかなかっただけ。
(どっかのVなんちゃらは問題外でした。)
で、現在.NETって言う当時のDelphi系RADと似たコンセプトの標準環境が出た。
俺は現状ではC#がもっとも.NETに適していると思ったからC#を選んだ。
それだけだよ。きっとみんなも。
(違うぞって言うDelphi厨はどんどん反論してくれ。)
いいものを使いたいからこそ、数年前はDelphiを選び、今はC#を選んでるだけ。
どうしてこんな単純なことも分からないのだろう。
>>67
まぁ、1プログラマ1言語制を取ってる人種には到底理解できないことなのかもね。
6962:02/05/17 17:27
上読んでないのでわからんのだが、何でDel厨はさっきからコード書け書け
と小学生の「しょーこみせろー」みたいに繰り返してんの? つーか2ch
の環境でで何を書けと?
>>69
上読んでくれ。お題出てる。
71デフォルトの名無しさん:02/05/17 17:45
>>66 違うと思うよ。

プログラムというのは著作物だ。
著作物は既にあるものや、他人が簡単に作れるものは殆ど無価値。
だから自分の技量を十分発揮出来る道具が一つあればそれで十分。

キミに取って C# がソレというのは結構な事だけど、他人に薦めたい
ぜひ広めたいと思うなら、C#のお陰で、自分ならこんなことが出来たっ
て所を見せておくれよ。 話はそれからじゃないの?

結局、道具以上に大事なのは、自分の能力を磨く事じゃないの?
少なくとも言語に関係なく自分オリジナルのコードを書かないとさ、
マニュアル読んでるだけじゃ、コーダかクラッカにしかなれないよ
>>71
分かってないねー。自分の能力を磨いてるから偏見抜きで.NETにもチャレンジしてるんだよ。
まあ君らみたいにアンチM$だけがモチベーションじゃ意義のある行動は起こせないだろうけどね。(プッ
>>71
いや、別に普及させようって意図はないよ。
自分が使いやすければいい。それが可能なのが.NETなわけだし。

まぁ、放っておいても普及する。
正直、PascalやRubyの構文は見にくい
正直、begin〜end;は見にくい
>>75
まだ言うかw
77デフォルトの名無しさん:02/05/17 17:52
好きな言語を好きなときに使えるのが.NETの利点なわけで。
Pascalが好きな人は当然Delになるのが当然なんでは?
ただ72よ何故煽る?
>>77
煽り屋だから
>>77
そらそうだ。
問題は会社とかでどの言語に統一する!令が発令されたりしそうだ。
VBとC#はどっちかが淘汰されるんじゃない?
8062(77は付け忘れ、、):02/05/17 17:56
ところで。XMLスキーマはGUIなんだがDel厨房な方々はその事はわかってるのかね?
>>79
Delphi.NETが淘汰されると思うよ
8262:02/05/17 17:58
>>79
仕事はもともと言語選べないだろ。
>>81
そらね。よっぽど良いもの出してこない限りObjectPascal.net以上の評価は受けないだろう。

で、アフォな>>81にはわからんと思うが>>79は言語的機能も守備範囲もかぶっている両者は
どちらが生き残るだろうかと言う話だ。
>>82
だから

「.NETで組んでくれんか?」

ってオファーの場合、我が社ではソースの統一もかねて、特殊な用途でない限りはC#を使う。
みたいな。
8562:02/05/17 18:02
>>84
ああ、なるほど。
86Del厨房no71:02/05/17 18:03
>>80
それぞれの単語の意味は判るのですが、全体の意味がさっぱり判りません

スキーマと GUI の関連は何なのでしょう?
8762:02/05/17 18:04
>>86
XMLファイルをGUIで設計するってだけです。大したこっちゃない
88Del厨房no71:02/05/17 18:09
>>84 大丈夫 自分が必要とされる場面では 道具は自分が指定しますから
8962:02/05/17 18:10
>>88
うらやましいなー
90デフォルトの名無しさん:02/05/17 18:11
C# > VB.NET >>>>>>>>>>>>>>>>>>> Delphi ってのを痛感させるスレだなあ(ワラ
9162:02/05/17 18:12
>>90
お前俺のレス意図的に無視して煽ってるだろ。
煽り屋はage。これ常識。
93Del厨房no71:02/05/17 18:16
>>89 なんで 羨ましい?

俺は道具指定されて、指定された時間働いてたら金貰える方が羨ましいよ
94デフォルトの名無しさん:02/05/17 18:20
予想通り、Del厨対元Del厨の内乱スレになりましたね。(嘲笑激藁
9562:02/05/17 18:21
いや、現在の俺にとっての敵は90=94だけだよ。
>>93
じゃVBつかってね。
>>95
同意。
>>96
それこそクソ言語ですね。(嘲笑激藁
99デフォルトの名無しさん:02/05/17 18:35
>>98
Delphiより機能は上だよ
>>99
具体的に頼む。
101デフォルトの名無しさん:02/05/17 18:38
>>100
デスクトップアプリ以外も作れること
フリーで使えるDBの種類をあげてみれ
>>101
訂正。

デスクトップアプリ以外も「無料のツールで」作れること
>>101
>デスクトップアプリ以外も作れること
正気か?
>>103
Delphi側の話なら理解できるがVBでそれ言ってるなら・・・痛いな。
>>105
Delphi Personalじゃ作れないじゃん。
107デフォルトの名無しさん:02/05/17 18:42
Personal版はGPL強制だからクソ。
>>106 何を? どんなアプリの事よ
>>108
コンソールアプリとかCGIとか。
>>107
ソースは?
>>106
Delphi Personalじゃ作れないじゃん。(ウィザードないし。)

だったり

Delphi Personalじゃ作れないじゃん。(よく知らないし。)

だと思われ。
112デフォルトの名無しさん:02/05/17 18:44
みんな思うままに釣られてるなあ(ワラ
>>107
それはデマだって何度も逝ってるでしょ〜が
114デフォルトの名無しさん:02/05/17 18:45
Personal版はアクティベーション強制で個人情報を吸い取っているからクソ。
>>114
M$のアクチはクソじゃないのけ?
>>114
VSのアカデミック版にも言ってくれ。
僕のところにもPersonal版の登録をして以来、スパムメールが来るようになりました。
>>109
ファイル 新規作成 その他 でコンソールアプリというのがあるから試してみてね
11962:02/05/17 18:47
アホスレ認定
>>119←MVP
>>107=114=117
デマばっか流してんじゃないよM$社員
>>115-116
あれはプロダクトキー取得とは違います。
>>122
そう、はるかにタチが悪い
>>123
どういう風に?
自作ユーザーの敵
週末の夜に何やってるんだか・・・
>>125
確かに、WindowsXPはOEM買えばある程度は済むけどね。
Delphiの場合、パーソナルでも普通にアプリ作って
 {$APPTYPE CONSOLE}

をどこかに書けば、その時からコンソールアプリになる。
read writeでコンソール入出力が出来る。

だからGUIな画面を持ちながらコンソールアプリにするのも簡単
>>126
平日もしくは昼間ならやって言い理由は?
Perosonal版ではウェブサービスが作れない。
>>130
で、VBではどのエディションから出来るの?
CGI位ならDelphiでも作れるが。
確かにEnterpriseでしか作れない。

しかし .NET もマトモに構築しようと思えば相当な金が必要なのは同じだろう
VBで標準入出力やリダイレクトってあったっけ?
>>133 言語仕様には無くても直接
AllocConsole GetStdHandle ReadFile すれば可能でしょう
>>131 CGI とウエブサービスとは違うよ XML と ウェブサービス でgoogle検索してみて
D6パソナでもやれない事は無いけど。

ttp://www.wwlnk.com/boheme/delphi/techdoc/dad0080.html
>>135
ところで、アンチDelphiの人は全員10数万円出してからバカにしてるってことで良いの?
138135:02/05/17 19:27
ん? 俺は Del厨だよ  便利な道具らしいC# やるより、
不便な道具らしいDelでそっちの勉強した方が身に付くと思うから勉強中
>>138
まぁ同意。
CなりPascalなりまともな構造化手続き型言語知ってる方がいいな。
>>131
.NETランタイムだけでできるよ。無料。
>>134
VB6で話をそらさないように。VB.NETならあるよ。
14296:02/05/17 20:02
>>98
おい、変な風に話し進めるなよ。
俺はDel厨の>>93
> 俺は道具指定されて、指定された時間働いてたら金貰える方が羨ましいよ
っていってるから、会社でVB指定されるのが羨ましいのかっていってるんだよ。
>>142
VBでも何でもずっと雇って貰えて、人並みに給料もらえるなら有り難い事じゃないか
14496:02/05/17 20:06
>>143
道具を自由に選択できるのよりか?
C#ってC++のこと?
>>145
C++++のこと
147デフォルトの名無しさん:02/05/17 20:27
Del厨って口だけだな
148Del厨房no71:02/05/17 20:33
>>144 それで苦労なく食べていけるなら羨ましいです
 道具まで選ぶという事はそれだけの責任も伴いますし、
 お金儲けの面からはだいぶ損してるという自覚もあります
149shige:02/05/17 20:34
Ruby > C# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Delphi
>>148
じゃ苦労するだろうけどVBつかってね。他の人はDelphiわかんないんだ。会社命令だから。
15162:02/05/17 20:46
普通はどんな言語でもとりあえず適当に齧っておくでしょ?
この先何やらされるか分かったもんじゃないし、自分がリーダになったとき
もある程度広く浅く知ってないと他人に割り当てする時アウトだし。
152デフォルトの名無しさん:02/05/17 21:26
で、コード対決はどうなったの?
>>152
Del厨が嫌がって対決になりません。
>>154
先手打てば?さっさと。
そうすれば堂々とお前たちの勝利を宣言できる。
じゃあ、お題その1。

このスレをダウソしてローカルファイルに保存せよ。
>>156
.NETなら10行切るな・・・。
using System.Net;
class a
{
static void main()
{
WebClient b = new WebClient();
b.DownloadFile("http://めんどいから省略〜","c:\a.html");
}
}
159Delフサギコ ◆zE1iiRdQ :02/05/17 21:56

 ∧,,∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ ゚Д゚ミ ∫< ゾヌ作者DaxタンのTips
.(ミ  ミっ-~  \__________
〜ミ,,⊃ミ⊃ ああ、ありがたや!

http://members.jcom.home.ne.jp/monazilla/document/indytips.html
お題その2

メールを送信するプログラムを作成せよ。
unit MyHttp;

interface

uses Winsock,classes,Windows,SysUtils;

type
TMyHTTP = class
private
wsa :TWSAData;
function MyConnect(URL :string) :Integer;
public
Port :Integer;
Options :TStringList;
constructor Create;
destructor Destroy;override;
function Get(URL :string) :string;
end;

implementation

//接続
//引数:ホスト名
//返値:ソケット
function TMyHTTP.MyConnect(URL :string) :Integer;
var
sock :TSocket;
addr :TSockAddrIn;
hostent :PHostEnt;
begin
sock := socket(AF_INET,SOCK_STREAM,0);
addr.sin_family := AF_INET;
addr.sin_port := htons(Port);
hostent := gethostbyname(PChar(URL));

addr.sin_addr.S_addr := PInteger(HostEnt.h_addr^)^;

connect(sock,addr,sizeof(addr));

Result := sock;
end;


constructor TMyHTTP.Create;
begin
Port := 80;
Options := TStringList.Create;

WSAStartup(MAKEWORD(1, 1),wsa);
end;


destructor TMyHTTP.Destroy;
begin
WSACleanup;
Options.Free;
inherited;
end;

//GETメソッド
//引数:URL
//返値:リプライメッセージ
function TMyHTTP.Get(URL :string) :string;
var
sock :TSocket;
host :string;
fil :string;
data :array[0..2048] of char;
data2 :array[0..2048] of char;
recvbyte :Integer;
begin
host := Copy(URL,0,Pos('/',URL) - 1);
fil := Copy(URL,Pos('/',URL),length(URL));

StrCopy(data,PChar('GET ' + fil + ' HTTP/1.0'#13#10 + Options.Text + #13#10#13#10));

sock := MyConnect(host);

send(sock,data,2048,0);

while(true) do
begin
recvbyte := recv(sock,data2,2048,0);

if(recvbyte = 0) then
break;

data2[recvbyte] := #0;
Result := Result + data2;
end;

closesocket(sock);
end;

end.

晒してみる。
>>160

using System.Web.Mail;

class AAA {
 public static void Main() {
  MailMessage msg = new MailMessage();
  msg.To = "〜";
  msg.Subject = "テスト";
  msg.Body = "テスト送信します。";
  SmtpMail.Send(msg);
 }
}
C#はどれも10行程度か。
>>166
後発かつインターネットでの連携を考慮したライブラリだからね。
Delphi駄目じゃん。
begin〜end読みにくい
静的変数(static)使えない
varの所でしか宣言できない
厨っぽい
169Delフサギコ ◆zE1iiRdQ :02/05/17 22:13
  ,,,,,,,,,,,,,,,,∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′,,,,,,,,,,ミ,,゚Д゚彡 < けっこう、強力やなー
  UU"""" U U[大阪弁]__________
メール送信って、Indyではどや?
NMPOPだとニポン語エンコド問題が
非常にネクになってたので、やりずらかったはず。
170Del厨房no71:02/05/17 22:13
Delでもこういうライブラリ作れば

function GetHttp(url:string):string;
var hSession:HINTERNET;
hService:HINTERNET;
var rsiz:DWORD;
buf:string;
begin
Result:='';
setlength(buf,$10000);
hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil,nil, 0 );
if assigned( hSession) then try
hService := InternetOpenUrl( hSession, PChar(url), nil, 0, 0, 0 );
if assigned( hService ) then try
repeat
InternetReadFile( hService , PChar(buf) , length(buf)-10 , rsiz );
Result:=Result+copy(buf,1,rsiz);
until rsiz=0;
finally InternetCloseHandle(hService) ; end;
finally InternetCloseHandle(hSession) ;end;
end;

//////// ほら1行書くだけ ///////
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Lines.Text:= GetHttp('http://pc.2ch.net/test/read.cgi/tech/1021550705/');
end;
まぁ、ライブラリ使えば大体の言語は1行で終わるわなw
かといってAPIで負しても仕方ないしな。

>>168
正直にわからないと言いなさいw
〜だったら、〜であれば
はナシってことで
実際に行数・読みやすさでもC#の圧勝じゃん。
Del厨も何か有利なお題出してみたら?
>>173
ソース出さなかった奴に限ってよく吠えるw
175Del厨房no71:02/05/17 22:23
メール送信は、簡単に書こうとすると ShellExecute かMAPIのコンポ貼り付けになってしまうので完敗を認めます

ShellExecute の場合でも エンコードコードが必要なので1レスで書くのは厳しいです
>168
それならBCBの圧勝ですか?
>>175
CDO使えばいいじゃん。
178Delフサギコ ◆zE1iiRdQ :02/05/17 22:27
>メール送信は、簡単に書こうとすると ShellExecute かMAPIのコンポ貼り付けになってしまうので完敗を認めます

   ∧,,∧∩  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ*゚Д゚*ミ < どやってか、コソーリ教えれ
  (ミ   ミ   \____________
 〜ミ ,,, ミ
   し' `J
ShellExecuteでメーラー起動ならわかるんだが…(藁
179Del厨房no71:02/05/17 22:32
>>178 ShellExecuteもMAPIもメーラにお願いする方式です。 SMTP直ではありません
180Delフサギコ ◆zE1iiRdQ :02/05/17 22:37
    ∧ ∧  ・・・・。
    ミ ゚Д゚彡
  〜ミ,,,,uuミ

    ∧ ∧ ショボーン 
    ミ,,。_。彡  
  〜ミ,,,,uuミ

メーラー起動なら…
procedure TForm1.Button2Click(Sender: TObject);
var
MailAddress, Subject, Body, CommandLine: String;
begin
 MailAddress := '[email protected]';
 Subject := 'メールのタイトル';
 Body := StringReplace( Memo1.Text, #13#10, '%0D%0A', [rfReplaceAll]) ;
{ #13#10は'%0D%0A'のようにエスケープしる。 }
CommandLine :=
  Format('mailto:%s?subject=%s&body=%s', [MailAddress, Subject, Body]);

ShellExecute(Handle, nil, PChar(CommandLine), nil, nil, SW_SHOWNORMAL);
end;
181Del厨房no71:02/05/17 22:41
>>180
 エンコードはもっとしっかりやらないと化ける元かも
 速度考えないで書いたのは

function EncodeStr(const s:string):string;
var i:integer;
begin
Result:='';
i:=1;
 while i<=length(s) do
  begin
  case s[i]of
  #0..#31,'"','''',',','&','%':
      Result:=Result+'%'+IntToHex(ord(s[i]),2);
  else begin
    Result:=Result+s[i];
    end;
  end;
   inc(i);
  end;
end;
Del厨が恥知らずなコードを晒すスレはここですか?
>>182
コード晒さない奴がコード晒す奴をバカにする権利はない。
184Del厨房no71:02/05/17 22:48
もちろん SMTPを使う方法もあります。 TNMSMTPとか
http://www.nifty.ne.jp/forum/fdelphi/samples/01302.html
185デフォルトの名無しさん:02/05/17 22:51
じゃあ、かなりの難題。

プログラムからHello Worldプログラム(コンソールアプリ)のソースを出力し、
コンパイルし、できたexeを実行せよ。
>>185
書いても良いんだけどそれは難題か?
もしかしてDelphiコマンドラインコンパイラ無いとか思ってる?
>>185
お前の日本語が難解だよ。
188Delフサギコ ◆zE1iiRdQ :02/05/17 22:53
  ∧,,∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ミ,,゚Д゚ミ < テキストファイル出力して
  ミ   ミ   \ShellExecuteでdcc.exeに渡して
〜ミ,UU_ミ    その結果をShellExecuteするんすか?
こりゃまた....
>>185
却下。.NETに有利すぎる。(w
なんかさっきから.NETに有利なお題しか出てないぞ。
>>190
Delphiが試されてるんだからそれでいいんじゃないの?
それが狙いよ!!フェッフェッ。
つぅか圧倒的なライブラリ差で.NETが勝つのは当然だけどね。

わざわざCとMFC戦わせてるようなもん。
>>188
Delphiだとそういう原始的な手段しかない。
.NETの方はソース生成もコンパイルも実行も、ライブラリの範囲内でエレガントにできてしまう。
uses Windows; {$APPTYPE CONSOLE}
procedure Exec(const Cmd: PChar);
var SInfo: STARTUPINFO; PInfo: PROCESS_INFORMATION;
begin
 GetStartupInfo(SInfo);
 CreateProcess(nil, Cmd, nil, nil, False, 0, nil, nil, SInfo, PInfo);
 WaitForSingleObject(PInfo.hProcess, INFINITE);
end;
var F: Text;
begin
 Assign(F, 'b.pas'); Rewrite(F);
 Write(F, 'begin Write(''Hello World'') end.');
 Close(F);
 Exec('dcc32 -cc b.pas'); Exec('b.exe');
end.
>>194
>原始的な手段
逆に永遠に生き続けると言うことだよ。w
つーかCodeDomでしょ?
>193
VCLはへっぽこライブラリという事ですね。
煽るのが目的だからコードなんか見ちゃいないという。
>>194
でもそれやると行数食うよ
まあ、あれだな。コイズムと同じ幻想だな。

☆ チン     マチクタビレタ〜
                         マチクタビレタ〜
        ☆ チン  〃  Λ_Λ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・) <  次のお題まだー?
             \_/⊂ ⊂_ )   \_____________
           / ̄ ̄ ̄ ̄ ̄ ̄ /|
        | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
vs Javaか?
>>202
円周率を100桁求めて下さい。
205Delフサギコ ◆zE1iiRdQ :02/05/17 23:19
    ∧ ∧  ・・・・。
    ミ ゚Д゚彡
  〜ミ,,,,uuミ

マジでそんなに簡単にできんの?
自分でエディタ作ったとして、
秀マクロみたいなのが、簡単に作れるってわけざんすか

C#移行か…
さっさと、Delphi.NETしてホスイですね。
次のお題の前に>>29>>185の C# のコードは?
>>206
CodeDOMなんか実装してたら日が暮れます。
>>204 それ前にDelphiで作った どこかにコード落とした筈
CSVがでてたので、次は
XMLファイルを構造体/クラス/レコードに読み込むプログラム。

<Person>
 <Name>フサギコ</Name>
 <Age>6</Age>
 <Job>
  <Title>遊び人</Title>
 </Job>
</Person>

構造体はC風に書くと

struct Person {
 char* name;
 int age;
 struct Job* job;
};
struct Job {
 char* title;
}:

こんな感じで。やりやすい格好であればいいです。
210195:02/05/17 23:22
C#でエレガントにできるというならそれを見せて頂けませんか?
ひょっとして.NETだとコンパイラ作るのが楽?興味ありありです。
CodeDOM関係はまだ全部は実装されていない筈
>>211
確かECMAには初めから盛り込まれてなかったね。

>>194ははったりなんですか?
だから耳学問で実装なんかした事無いんだから。無茶言わないでよ!
簡単だエレガントだと言って、それを使いこなせてないんじゃしょうがないね >C#
.NET派の皆さん。あなたのUSER_AGENT名を教えて下さい。

http://taruo.net/e/

とか参照して。
216Del厨房no71:02/05/17 23:35
>>215
 ん? ,NET 嫌いだけど 評価の為に買ってるよ

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)
みんなここからお題探してるだろ。(w
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049

>>209なんか.NETで何の変換作業もいらないじゃん。
>>217
分っててやってるんですが(笑い
Delphiでは、まあDOMパーザはどっかから持ってくるとして、
そこからシコシコ取り出すしかないですよね?
219Del厨房no71:02/05/17 23:45
ちゃんとパーサーを使えといわれたら大変だけど

XML はDTDで必ずフィールドがあるように出来るから、
delphiでも pos関数で探して取り出す方法で取り出しても問題ないよ
そしてたぶんその方法が早くて簡単・・・でも面白くない
>>209
XMLの先頭行に
<?xml version="1.0" encoding="Shift_JIS"?>
が必要。

using System.Xml;
using System.Xml.Serialization;

public class AAA {
  public static void Main() {
    XmlSerializer s = new XmlSerializer(typeof(Person));
    XmlTextReader r = new XmlTextReader("data.xml");
    Person p = (Person)s.Deserialize(r);
    r.Close();
  }
}

public class Person {
  public string Name;
  public int Age;
  public Job Job;
}

public class Job {
  public string Title;
}
221195:02/05/17 23:46
僕はProfessional版ユーザーなんですけど、Delphi6のEnterprise版って
XMLファイルからやりとり用インターフェース生成する機能ありませんでした?ダイレクトメールに書いてあった記憶が…
つかDelphiってリフレクション相当の機能ってあるの?
223デフォルトの名無しさん:02/05/17 23:51
コンパイル速度はどうなの?
224Del厨房no71:02/05/17 23:55
>>220 もしかして
Delphi用語で実行時型情報でプロパティ名を探して一致するプロパティがあれば自動的に格納される
というような感じですか?

面白そうですね。そういう関数作ってみようかな
使ってみればわかる。
226195:02/05/17 23:56
>>222
クラス参照とpublishedフィールドがあります。
>>226
だとするならXmlSerializerみたいなのも作れるのかな。やったね!
228デフォルトの名無しさん:02/05/17 23:59
盛り上がってまいりました!
229195:02/05/18 00:10
Delphi6のヘルプの新機能紹介でEnterprise版のXML機能について書かれている部分です。
これが本当なら何の苦もなくXML処理できそうなのですけど、実際のとこ教えてくれませんか?→Enterprise版持っている人
---------------------
XML データバインディングウィザード

この新しいウィザードは,XML データファイルのアクセスと更新を行うための非常に簡単な方法を提供する Delphi コードを生成します。
生成されるコードは,自然で直感的なプロパティベースのプログラミングモデルなので,Delphi コンポーネントのプログラミングと同じような感覚で XML データを操作できます。
XML データバインディングは,XML ドキュメントオブジェクトモデル(DOM)インターフェースを使う場合に必要な複雑なコーディングに代わるもので,検証された XML ドキュメントを操作するアプリケーションに最適です。

XML ドキュメントのプログラミング

XML データバインディングは,新しい TXMLDocument コンポーネントとその関連インターフェース IXMLDocument/IXMLNode に基づいています。
このコンポーネントは,XML データ処理用の DOM インターフェースの簡略版を提供します。TXMLDocument をフォームに配置し,その FileName プロパティを設定し,Active を true を設定するだけで,すべての XML データに簡単にアクセスできるようになります。

クロスプラットフォーム/ベンダーに依存しない DOM プログラミング

XML ドキュメントプログラミングサポートの最下位レベルにあるのが,新しい xmldom.pas インターフェースユニットです。
このインターフェースユニットは,クロスプラットフォームでベンダーに依存しない,W3C DOM Level 2 仕様に準拠したプログラミングを可能にするインターフェースのセットを提供します。
オープンアーキテクチャで設計されたこれらのインターフェースは,既存の DOM ベースの XML ソリューションに簡単に組み込むことができます。

データベースアプリケーションでの XML の使用

一連の新しいコンポーネントにより,XML ドキュメントを製品のデータベースアーキテクチャに組み込むことが可能になります。
コンポーネントは,任意の XML ドキュメントとクライアントデータセットのデータパケットとの間のマッピングを定義するための設計時ツールである
XML マッパーによって生成されたトランスフォーメーションファイルを使用します。
じゃ >>224があるとして

uses 224;
type
TJob = class
published
property Title:string;
end;
TPerson=class
published
property   Name:string;
property  Age:Integer;
property  Job:TJob;
end;
TPersonClass = class of TPerson;
var dlist:TList;
i:Integer;
begin
with TStringList.Create do try
LoadFromFile('file.XML');
dlist:= XmlSerialize(text,TPersonClass) ; //結果はTList型で帰る
  for i:=0 to dlist.Count-1 do begin
   //ここで必要な処理
  end;
 finally free;end;
end;

231デフォルトの名無しさん:02/05/18 01:00
だからコンパイル速度はどうなの?
232デフォルトの名無しさん:02/05/18 01:00
つーかデリミタが記号のC#と英文字のPASCAL。
遠くから見ても分割が一目でわかるのは絶対にC#だと思う。
それが幼稚だという人もいるかも知れんが、幼稚でも仕事が速いほうが良い。
幼稚というか…
構文強調表示されてるから別に見ずらいと思った事内野。
>>229
そんなアヤシイものより、MSXMLのほうがいいだろ。
最新版ダウソできるし、定期的にバグ修正版出してるし。
簡易HTTPまでついてるから、クライアントサイドはこれだけでOK。
>>234
2chでは再現できない部分だね
Delが最初から予約語を太字で表現できたのに対し
VSは.NETになってからじゃなかったっけ
>>185
こういうのを想定してたのかな?

using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.IO;
using System.Reflection;
using System.Text;

class Test
{
  public static void Main() {
    // CodeDomを取得
    CodeCompileUnit unit = GenerateCompileUnit();

    // 言語を決定
    CodeDomProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
//   CodeDomProvider provider = new Microsoft.VisualBasic.VBCodeProvider();
//   CodeDomProvider provider = new Microsoft.JScript.JScriptCodeProvider();

    // ソースを出力
    using ( StreamWriter w = new StreamWriter("Hello.cs", false, Encoding.GetEncoding("Shift_JIS")) ) {
      ICodeGenerator gen = provider.CreateGenerator();
      gen.GenerateCodeFromCompileUnit(unit, w, null);
    }

    // コンパイル
    CompilerParameters param = new CompilerParameters();
    param.GenerateExecutable = true;
    param.OutputAssembly = "Hello.exe";

    ICodeCompiler compiler = provider.CreateCompiler();
    compiler.CompileAssemblyFromDom(param, unit);

    // 実行
    AppDomain.CurrentDomain.ExecuteAssembly("Hello.exe");
  }

  // Hello WorldプログラムのCodeDomを生成する。
  public static CodeCompileUnit GenerateCompileUnit() {
    CodeCompileUnit unit = new CodeCompileUnit();

    CodeNamespace ns = new CodeNamespace();
    unit.Namespaces.Add(ns);

    CodeTypeDeclaration hello = new CodeTypeDeclaration("Hello");
    hello.TypeAttributes = TypeAttributes.NotPublic;
    ns.Types.Add(hello);

    CodeEntryPointMethod main = new CodeEntryPointMethod();
    hello.Members.Add(main);

    CodeMethodInvokeExpression write_line = new CodeMethodInvokeExpression();
    write_line.Method = new CodeMethodReferenceExpression( new CodeTypeReferenceExpression(typeof(Console)), "WriteLine" );
    write_line.Parameters.Add( new CodePrimitiveExpression("Hello World!!") );
    main.Statements.Add(write_line);

    return unit;
  }
}
#さん降臨か?
240デフォルトの名無しさん:02/05/18 01:37
>>238
Delphi以上に文字打つのが面倒そう。

コンパイルに何秒ぐらいかかりましたか?
>>240
1秒もかからないよ
>>240
>Delphi以上に文字打つのが面倒そう。
確かに。Javaと同程度かな。
243Delフサギコ ◆zE1iiRdQ :02/05/18 01:51

   ∧,,∧    /なにげに、>>195さんのコードの動作確認。
  ミ;゚Д゚彡 < ………神っ!!!
   ミつ つ゛  \
 @ミ  ミ      なにゆえこんな芸当が...!!
   ∪''∪     このスレで神の領域を見るとは...アリガタヤアリガタヤ

           このコード...どんなDelphiソースでもコンパイル化なの?
>>185 原始バージョン

using System;
using System.IO;
using System.Text;
using Microsoft.CSharp;

class Test
{
  public static void Main() {
    // ソース定義
    StringWriter s = new StringWriter();
    s.WriteLine("using System;");
    s.WriteLine("");
    s.WriteLine("class Hello {");
    s.WriteLine(" public static void Main() {");
    s.WriteLine(" Console.WriteLine(\"Hello World\");");
    s.WriteLine(" }");
    s.WriteLine("}");
    s.Close();

    // ソース生成
    using ( StreamWriter w = new StreamWriter("Hello.cs", false, Encoding.Default) ) {
      w.Write( s.ToString() );
    }

    // コンパイル
    Compiler.Compile(
      new string[] { s.ToString() },
      new string[] { "Hello.cs" },
      "Hello.exe",
      null,
      null
    );

    // 実行
    AppDomain.CurrentDomain.ExecuteAssembly("Hello.exe");
  }
}
245Delフサギコ ◆zE1iiRdQ :02/05/18 02:12
      ∧,,∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ミ   彡  < どっちの厨も
     (ミ   ミ)    \_______
      ミ   ミ 
      ∪ ∪


      ∧,,∧ サッ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ミ,,゚Д゚ミ  < だまっちゃいました。
    ⊂   Om   \_______
     ミ、,, ミ,
      .しヾJ




       ∧,,∧  ま゙
      ミ゚Д゚,,彡  仲良くやんなさい。
     ⊂   ミ)
       ミ   ミ
       ∪''∪  言語の進化が促されて
            面白くなってきたよね。
          .NETフレームワークにもDelphi.NETにも期待してよし。


          で。次のお題はぁ??
246195:02/05/18 02:14
コンパイルが終わるのを待つためにCreateProcess & WaitForSingleObject を使っただけで
>>188でフサギコさんが言ったのと同じことやってるんですけど… マアワルイキハシマセンガ
247デフォルトの名無しさん:02/05/18 02:15
PASCAL.NETは出るのでしょうか?
248Delフサギコ ◆zE1iiRdQ :02/05/18 02:28
             _______________
  ,,,,,,,,,,,,,∧,,∧   /ほんとにやっちまうとは主輪なんだ。
〜′,,,,,,,ミ,,゚Д゚彡<  んで、あんなに簡単にやるとも主輪なんだ。
  UU""" U U   \_>>195さんカコイイ・・
              C#ソースも、コンパイラをオブジェクトで扱えるのも
              かなり素敵ネ。CodeDomよりソース綺麗じゃ。

そしたら..
b.exeと元プロジェクトのexeとの通信が出来たら...
WM_COPYDATAとか、DDEあたりで、、。。
否、、リダイレクソンとかで可能なのかな?
.
とりあえず、それが出来たら
アプリケーションユーザーに
Delphiソースでマクロ書いてもらったら
ExeやDLLにして元アプリの動作を変更できたりするのかな?

…って。アプリユーザーにもDelphiコンパイラが
必要なのか...まあ。仕方ない無料だしダウソしてもらうのがスジか。
249195:02/05/18 02:55
色々つぶやいてから寝ます…

237-238すごいなー。
とりあえず244がコンパイルできないんですけど("Compiler"が見つからない)どうすればいいのかな…

Pascal系言語.NETは既に2種類ぐらい出てますよ。Delphi.NETが出たらもうひとつ増えることになりますね。
OberonよりObjectPascalが好きなのでDelphi.NET期待です。

マクロ目的ならそんな面倒なことしなくてもBPL作ってもらえばDelphi IDEみたいにできるのでは…

229にDelphi使いが返事くれないということは、ここにEnterprise使ってる人はいないってことですか…
自分もそうだから何も言いませんけど。

…それにしても静かだ。皆さん寝てしまったのかな。けっこう良スレになっちゃいましたね、ここ。
250Delフサギコ ◆zE1iiRdQ :02/05/18 03:12
         _________
  ∧,,∧   / Indyのメーラーサンプルは
 ミ,,゚Д゚彡<  こんなソースでした。
 ミつ[お手紙])  いまさらながら。
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U  これを使えばデラ簡単にメール送信可でした

D6ProIndyメーラーサンプルのコピペ
procedure TfrmMessageEditor.bbtnOkClick(Sender: TObject);
begin
 with IdMsgSend do
 begin
  Body.Assign(Memo1.Lines);
  From.Text := UserEmail;
  Recipients.EMailAddresses := edtTo.Text; { To: header }
  Subject := edtSubject.Text; { Subject: header }
  Priority := TIdMessagePriority(cboPriority.ItemIndex); { Message Priority }
  CCList.EMailAddresses := edtCC.Text; {CC}
  BccList.EMailAddresses := edtBCC.Text; {BBC}
  if chkReturnReciept.Checked then
  begin {We set the recipient to the From E-Mail address }
   ReceiptRecipient.Text := From.Text;
  end
  else
  begin {indicate that there is no receipt recipiant}
   ReceiptRecipient.Text := '';
  end;
 end;

 {authentication settings}
 case SmtpAuthType of
  0: SMTP.AuthenticationType := atNone;
  1: SMTP.AuthenticationType := atLogin; {Simple Login}
 end;
 SMTP.UserID := SmtpServerUser;
 SMTP.Password := SmtpServerPassword;

 {General setup}
 SMTP.Host := SmtpServerName;
 SMTP.Port := SmtpServerPort;

 {now we send the message}
 SMTP.Connect;
 try
  SMTP.Send(IdMsgSend);
 finally
  SMTP.Disconnect;
 end;
end;

         _________
  ∧,,∧   / 
 ミ,,゚Д゚彡<  BPLってDLLでしたっけ。
  ミつ つ  \ 
〜ミ  ミ.     ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  U U  世の中ややこしい事でイパーイね。
>>249
cscompmgd.dllを参照すべし。
>>29の一部だけ。あとはGUIでD&D対応すればいいだけ。

using System.Diagnostics;
using System.IO;
using System.Text;
using System.Web.UI;

class Test
{
  public static void Main() {

    // CSVの読み込み
    string csv_text = null;
    using ( TextReader r = File.OpenText("data.csv") ) {
      csv_text = r.ReadToEnd();
    }

    // HTMLの書き込み
    using ( TextWriter w = new StreamWriter("table.html", false, Encoding.Default) ) {
      HtmlTextWriter w2 = new HtmlTextWriter(w, " ");

      w2.WriteFullBeginTag("html");
      w2.WriteLine();

      w2.Indent++;
      w2.WriteFullBeginTag("body");
      w2.WriteLine();

      w2.Indent++;
      w2.WriteBeginTag("table");
      w2.WriteAttribute("border", "1");
      w2.Write(HtmlTextWriter.TagRightChar);
      w2.WriteLine();

      // CSVのデータを1行づつ読み込む
      using ( TextReader r = new StringReader(csv_text) ) {
        string record = null;
        w2.Indent++;
        while ( (record = r.ReadLine()) != null ) {
          w2.WriteFullBeginTag("tr");
          w2.WriteLine();

          string[] columns = record.Split( new char[] { ',' } );
          w2.Indent++;
          foreach (string s in columns) {
            w2.WriteFullBeginTag("td");
            w2.Write(s);
            w2.WriteEndTag("td");
            w2.WriteLine();
          }

          w2.Indent--;
          w2.WriteEndTag("tr");
          w2.WriteLine();
        }
      }

      w2.Indent--;
      w2.WriteEndTag("table");
      w2.WriteLine();

      w2.Indent--;
      w2.WriteEndTag("body");
      w2.WriteLine();

      w2.Indent--;
      w2.WriteEndTag("html");
      w2.WriteLine();

      w2.Close();
    }

    // ブラウザ起動
    Process.Start("table.html");
  }
}
>>252
 うーん たとえ短いテストプログラム作る時でも、ある程度は構造化した方がいいよ。 
 それVB使いや古いCプログラマみたい

対抗するDelのコードはこれだね
http://pc.2ch.net/test/read.cgi/tech/1021596367/19

このスレ全体にDel使いは比較的構造化してるのが印象的
>>254
生まれたときから構造化ですからw
原因を考えてみる。

・イベントメソッドなどで関数とか手続きとか見慣れてる。
・Cか何かで構造化を学んでからDelphiに魅入られた。

pascalは関数内関数書けるし、 objectPascalはモジュール化し易いから構造化するのが楽しいんだよね

それに好きな所で変数宣言出来ないのも構造化しなければならない事に繋がるし

>>252 のコードも
 string[] columns = record.Split( new char[] { ',' } );

とここで変数宣言出来ないなら ここで別メソッドにするだろうし
>>254
>function f(fname:string):TStrings;

でも俺、こんなソース書くヤツと仕事したくないけど・・・。
それ以外にも引数のfnameを使わずに paramsを呼び出してるとか
259デフォルトの名無しさん:02/05/18 10:16
じゃ 双方未完成という事で
納得出来るものを提出出来る迄のバトルを
つか、些細な突っ込みやめれ。>>254が変なこと言い出すから・・・。
261254:02/05/18 10:22
スマン 短時間で書けるかどうか勝負してるんなら構造化してるヒマはないだろし 余計なチャチャだった
262voke:02/05/18 12:40
Del厨はまじでしねよ
ドーカツですか? ムネオ先生のように2人くらい殺った人じゃないと滑稽ですよ

>>254
でも出力されるHTMLはきれいに整形されてるよ。
266252:02/05/18 15:11
よく考えてみれば、XHTMLに近いものを吐き出してるのだから、
HtmlTextWriterじゃなくてXmlTextWriterが使えるんだった。

ということで、ちょっと修正。あいかわらず構造化はしてないけど。(藁

using System.Diagnostics;
using System.IO;
using System.Text;
using System.Xml;

class Test
{
  public static void Main() {

    // CSVの読み込み
    string csv_text = null;
    using ( TextReader r = File.OpenText("data.csv") ) {
      csv_text = r.ReadToEnd();
    }

    // HTMLの書き込み
    XmlTextWriter w = null;
    try {
      w = new XmlTextWriter("table.html", Encoding.Default);
      w.Formatting = Formatting.Indented;
      w.Indentation = 2;

      w.WriteStartElement("html");
      w.WriteStartElement("body");
      w.WriteStartElement("table");
      w.WriteAttributeString("border", "1");
267252:02/05/18 15:11

      // CSVのデータを1行づつ読み込む
      using ( TextReader r = new StringReader(csv_text.ToString()) ) {
        string record = null;
        while ( (record = r.ReadLine()) != null ) {
          w.WriteStartElement("tr");

          string[] columns = record.Split( new char[] { ',' } );
          foreach (string s in columns) {
            w.WriteStartElement("td");
            w.WriteString(s);
            w.WriteEndElement();
          }

          w.WriteEndElement();
        }
      }

      w.WriteEndElement();
      w.WriteEndElement();
      w.WriteEndElement();
    }
    finally {
      if (w != null) w.Close();
    }

// ブラウザ起動
Process.Start("table.html");
  }
}
268デフォルトの名無しさん:02/05/18 15:30
短く書ければ偉いってものではないよ。
分かりやすさも大事。
C#には CSVを読み書きする CommaTextみたいなのは無いの?
>>268
ない。性器表現を使うのかな。
>string[] columns = record.Split( new char[] { ',' } );

これだと正常に読めないファイルが結構でそうだね。
272デフォルトの名無しさん:02/05/18 15:41
HTMLを1行に直書きしてる連中が「構造化の美学」ですか。(嘲笑激藁
>>272
一行にはならないよ。
274252:02/05/18 15:47
>>271
"〜" で囲まれたケースまでは対応してないです。 
HtmlTextWriterってウェブコントロールのレンダリングに使うやつでしょ?
やっぱソースが汚くなるねえ・・・。
C#側は一通り揃ったな。
あとはDelphi側の>>209を待つのみ。
277Del厨房no71:02/05/18 16:56
作ろうか?
でも >>224は撤回 Delではプロパティに使える名前に日本語が使えない

だから、TStringsで渡したのと一致するかを検索する方式にしようと思う

与えるのは文字列は
Person.Name
Person.Age
Person.Job.Title

で、XMLを再帰的に調べていって検索して一致する都度コールバックさせる
という仕様の関数でいい?
278デフォルトの名無しさん:02/05/18 16:59
>>277
そこまで小難しいお題じゃないと思うよ。
構造体を定義して、XMLを読み込んでインスタンス作るだけでいいんじゃないの?
279195:02/05/18 17:16
XML→dfmができたらTStream.ReadComponentで読めるな…とか思っちゃいました。

TJob = class(TPersisitent)
published
 property Title: string;
end;

TPerson = class(TComponent)
published
 property Name: string;
 property Age: Integer;
 property Job: TJob;
end;

"BizSnap"なるものが使えたらひょっとしてこれが自動で…とか思いますけど、Enterprise版持ってる人がいなさそうなのが惜しい…
280Delフサギコ ◆zE1iiRdQ :02/05/18 18:08
           _____________
   ∧,,∧    /D6が出たころ
  ミ,,゚Д゚彡 < どっかのスレで書きましたが
   U  つ   \
 @ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ およそ、1年前だっけ。

D6の案内状パンフからの飲尿
エンプラ版だけどね。

> たとえば、次のようなXMLデータがあると、
> <customer id=1>
>   <name>Borland</name>
>   <phone>03-5353-9380</phone>
> </customer>
> データバインディングウィザードは、次のような
> インターフェースを自動生成します
>
> ICustomer = interface(IXMLNode)
>  property id: Integer read Getid write Setid
>  property name: DOMString read Getname write Setname;
>  property phone: DOMString read Getphone write Setphone;
>  function Getid: Integer;
>  function Getname: DOMString;
>  function Getphone: DOMString;
>  procedure Setid(Value: Integer);
>  procedure Setname(Value: DOMString);
>  procedure Setphone(Value: DOMString);
> end;
> また、生成されたインターフェースは
> XMLDocumentコンポーネントとともにプログラムで用意に利用できます。
> データベースアプリケーションの中でXMLを使いたい場合は、
> XMLマッパーによって生成される変換ファイルを使う新しいコンポーネントを
> 利用できます。
>
281Del厨房no71:02/05/18 18:10
作りかけたけど、案外長くなりそうなので検索して見つけた
ttp://hpcgi2.nifty.com/KENCH/filer/dw.cgi?page=Main&dir=/Source/TMToken

これを uses して
var MToken:TMToken;
begin
MToken:=TMToken.Create('');
  try
  MToken.Text:=Memo1.Lines.Text;
 Person.Name:= MToken.GetToken('Person.Name');
 Person.Age :=StrToInt( MToken.GetToken('Person.Age') );
 Person..Job.Title:=MToken.GetToken('Person..Job.Title');
  finally MToken.Free;end;
end

MToken.ItemList で全トークンの一覧が出ますから
ギコBASICでやってるようなプロパティ検索処理を入れれば自動的にプロパティに入れるのは出来そうですね
282Del厨房no71:02/05/18 18:27
プロパティへの書き込み方法ですが

gikoBas.pas の

function Bunkatu(str:string):TStringList;
  |
  |
function SetPropVar(obj:TObject;str:string;numVar:Variant):boolean; 
  |
end; までをコピペして

with MToken.ItemList do try
 for i:=0 to Count-1 do begin
  Token:=MToken.GetToken( Strings[i] );
  SetPropVar( Form1 , Strings[i] , Token );
 end;
finally free;end;
とすれば、Form1のpublishedなプロパティに一致する名前があれば自動的にセットされます
283Del厨房no71:02/05/18 18:37
実験は

<Caption>フサギコ</Caption>
<Left>10</Left>

とやって  フォームのキャプションと 左位置が変更された事を確認しました
284Del厨房no71:02/05/18 19:05
さらに情報
gikoBas.pas の SetPropVarだと pulishedなプロパティのみにしか自動セット出来ません
ですから、フォームに貼り付けたボタンとかのCaptionには書き込めません
pulished なクラスに書き込むには
 FieldAddress でも検索する必要があるようです
285デフォルトの名無しさん:02/05/18 19:16
次のお題はウェブブラウザにでもします?
286Del厨房no71:02/05/18 19:28
ギコBASIC拡張計画
http://pc.2ch.net/test/read.cgi/prog/961558082/
の方に >>284 の改良情報を書き込んでおきました
エンプラ版って幾ら?
>>285
壮大すぎるので却下。
なんか料理の鉄人みたいになってきたな。
次スレはそれっぽいタイトルで頼む。
290デフォルトの名無しさん:02/05/18 22:13
とりあえずお題は1時間ぐらいで作れるレベルで。
使っていいコンポ、ライブラリの指定あり
292デフォルトの名無しさん:02/05/18 23:58
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html

ここにソース置き場専用スレ立てる?
確かに>>285は壮大だが、
2chブラウザならどうだ?しかもマ板用。
具体的にはソースの強調表示機能つきのな。
どの言語で書かれたか判別するのは無理だろうから、
ユーザーが指定したレスないし選択した部分を強調。
>>293
未完成ならC#用あるよ。
しかしBorlandの販売戦略は糞だ…
最近ではC Builder Personal版無料にしなかったこと
いかに学生を取り込むかが将来使ってもらえるかの鍵となるのに…
(せめて学術関係者には無料とかすればよかったのに・・・)
VSのアカデミック版のあの価格設定及び上位版との機能の違いは正直うまいと思う。
VSアカデミックはいろんな言語ついて3万円。上位版との違いは使いやすいツールがあるか否か
Delアカデミック(Professional版及びその他)は…
機能
http://www.borland.co.jp/delphi/del6/features.html

価格
ttp://216.239.35.100/search?q=cache:4Dfe5oMeRdcC:www.borland.co.jp/sales/delphi.html+delphi++%83A%83J%83f%83~%83b%83N%81%40%89%BF%8Ai&hl=ja&lr=lang_ja
>>295
VSにはWindowsXPも付いてくる。
>>295
なんだかんだ言って自分が欲しいだけでしょ?
ここはプログラミングの話題にしてほすぃ
つか、BCB Personalってめちゃくちゃ安いんだし。
それに BCC もあるんだし本気でやろうとするヤツには
十分すぎる環境だと思うけどね >>295
>>299
本気じゃない奴は学校からVS買わされます。

>>296
正直そのソース教えてください。VSまじでほすぃMEだから無理…?と思っていたので
>>300
MSDN付きならWin2KServerとXP Pro(開発用途での使用に限る)が付いてくるはず。
開発用途でマシンに負荷をかけるためにゲームを起動したり、
自前のクリップボードユーティリティのテストのためにワードやエクセル使っても良い。
\23kでOS+言語3(4)つ。お得過ぎ。
VC#, VB.NETの一番安い箱ではコンポーネント作れないって本当ですか?
使う側としては、他の人が作ったコンポーネントは貼り付けて使えます?

…もし作れない&使えないなら、入門者からOOPを覚える機会を奪っているMSの飼い殺し作戦と認定する
>>302
SDKレベルでは作れるのでは?と個人的には認識。
>>302
大丈夫です。VB5 CCE がフリーで落ちてます!
>>304
まだ落ちてるの?あの体験版w
あれって何かの拍子でスプラッシュが Professional 版になるんだよな、、>CCE
>>304 いや、.NETのコードじゃないと…ほら、継承とかできませんし…
>>307
ネタにマジレス、カコ悪い。
309302=307:02/05/19 01:21
DelphiならPersonal版でもコンポーネントを作れます&使えます。
入門者にとって、RADでクラスが扱えるのは、クラスの意義を目に見える形で学んでいるようなものです。
コンポーネントを作るという作業はOOPやその言語を強制的に覚えさせられることになりますし、
人の作ったコンポーネントを使うということは使いやすいクラス設計を体感することになります。
でそれらが制限されているとすれば…>>302の結論となります。

…で、結局のとこどうなの?SDKレベルで作ったとして、それは取り込んで使えるわけ?
コンポーネントを作るという作業はOOPやその言語を
強制的に覚えさせられることになりますし、

 ↓

プログラムを作るという作業はOOPやその言語を
強制的に覚えさせられることになりますし、
ム板専用ブラウザ。30分ちょっとで作成。

using System;
using System.Drawing;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using AxSHDocVw;

class BrowserForm : Form
{
  AxWebBrowser webBrowser;
  ToolBarButton back;
  ToolBarButton forward;
  ToolBarButton refresh;
  ToolBarButton home;
  ToolBar toolBar;

  public BrowserForm() {
    webBrowser = new AxWebBrowser();
    webBrowser.Dock = DockStyle.Fill;
    webBrowser.HandleCreated += new EventHandler(this.webBrowser_HandleCreated);
    webBrowser.NewWindow2 += new DWebBrowserEvents2_NewWindow2EventHandler(this.webBrowser_NewWindow2);
    webBrowser.TitleChange += new DWebBrowserEvents2_TitleChangeEventHandler(this.webBrowser_TitleChange);

    back = new ToolBarButton("←");
    forward = new ToolBarButton("→");
    refresh = new ToolBarButton("更新");
    home = new ToolBarButton("巣");

    toolBar = new ToolBar();
    toolBar.Appearance = ToolBarAppearance.Flat;
    toolBar.ButtonClick += new ToolBarButtonClickEventHandler(this.toolBar_ButtonClick);
    toolBar.Buttons.AddRange(new ToolBarButton[] { back, forward, refresh, home });

    this.Size = new Size(768, 530);
    this.Controls.AddRange(new Control[] { webBrowser, toolBar });
  }

  private void GoHome() {
    object o = Missing.Value;
    webBrowser.Navigate("http://pc.2ch.net/tech/", ref o, ref o, ref o, ref o);
  }

  private void webBrowser_HandleCreated(object sender, EventArgs e) {
    this.GoHome();
  }

  private void webBrowser_NewWindow2(object sender, DWebBrowserEvents2_NewWindow2Event e) {
    BrowserForm f = new BrowserForm();
    f.Visible = true;

    e.ppDisp = f.webBrowser.GetOcx();
  }

  private void webBrowser_TitleChange(object sender, DWebBrowserEvents2_TitleChangeEvent e) {
    this.Text = e.text;
  }

  private void toolBar_ButtonClick(object sender, ToolBarButtonClickEventArgs e) {
    ToolBarButton button = e.Button;

    try {
      if (button == back) {
        webBrowser.GoBack();
      }
      else if (button == forward) {
        webBrowser.GoForward();
      }
      else if (button == refresh) {
        object o = Missing.Value;
        webBrowser.Refresh2(ref o);
      }
      else if (button == home) {
        this.GoHome();
      }
    }
    catch (COMException) {
    }
  }

  [ STAThread ]
  public static void Main() {
    Application.Run(new BrowserForm());
  }
}
IEコンポーネント使ったこと無かったので、練習も兼ねて移植させていただきました。

unit UMain;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, OleCtrls, SHDocVw, ComCtrls, ToolWin;

type
 TForm1 = class(TForm)
  ToolBar1: TToolBar;
  BackButton: TToolButton;
  ForwardButton: TToolButton;
  RefreshButton: TToolButton;
  GoHomeButton: TToolButton;
  WebBrowser1: TWebBrowser;
  procedure WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
  procedure WebBrowser1TitleChange(Sender: TObject; const Text: WideString);
  procedure FormCreate(Sender: TObject);
  procedure RefreshButtonClick(Sender: TObject);
  procedure GoHomeButtonClick(Sender: TObject);
  procedure BackButtonClick(Sender: TObject);
  procedure ForwardButtonClick(Sender: TObject);
 private
  { Private 宣言 }
  procedure GoHome;
 public
  { Public 宣言 }
 end;

var
 Form1: TForm1;
implementation

{$R *.dfm}

procedure TForm1.GoHome;
begin
 WebBrowser1.Navigate('http://pc.2ch.net/tech/');
end;

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool);
begin
 with TForm1.Create(Application) do
 begin
  ppDisp := WebBrowser1.OleObject;
  Show;
 end;
end;

procedure TForm1.WebBrowser1TitleChange(Sender: TObject; const Text: WideString);
begin
 Caption := Text
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 GoHome
end;

procedure TForm1.RefreshButtonClick(Sender: TObject);
begin
 WebBrowser1.Refresh2
end;

procedure TForm1.GoHomeButtonClick(Sender: TObject);
begin
 GoHome
end;

procedure TForm1.BackButtonClick(Sender: TObject);
begin
 WebBrowser1.GoBack
end;

procedure TForm1.ForwardButtonClick(Sender: TObject);
begin
 WebBrowser1.GoForward
end;

end.
object Form1: TForm1
 Left = 192
 Top = 107
 Width = 696
 Height = 480
 Caption = 'Form1'
 Color = clBtnFace
 Font.Charset = SHIFTJIS_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'MS Pゴシック'
 Font.Style = []
 OldCreateOrder = False
 Position = poDefault
 OnCreate = FormCreate
 PixelsPerInch = 96
 TextHeight = 12
 object ToolBar1: TToolBar
  Left = 0
  Top = 0
  Width = 688
  Height = 29
  ButtonHeight = 20
  ButtonWidth = 31
  Caption = 'ToolBar1'
  Flat = True
  ShowCaptions = True
  TabOrder = 0
  object BackButton: TToolButton
   Left = 0
   Top = 0
   Caption = '←'
   ImageIndex = 0
   OnClick = BackButtonClick
  end
  object ForwardButton: TToolButton
   Left = 31
   Top = 0
   Caption = '→'
   ImageIndex = 1
   OnClick = ForwardButtonClick
  end
  object RefreshButton: TToolButton
   Left = 62
   Top = 0
   Caption = '更新'
   ImageIndex = 2
   OnClick = RefreshButtonClick
  end
  object GoHomeButton: TToolButton
   Left = 93
   Top = 0
   Caption = '巣'
   ImageIndex = 3
   OnClick = GoHomeButtonClick
  end
 end
 object WebBrowser1: TWebBrowser
  Left = 0
  Top = 29
  Width = 688
  Height = 424
  Align = alClient
  TabOrder = 1
  OnTitleChange = WebBrowser1TitleChange
  OnNewWindow2 = WebBrowser1NewWindow2
  ControlData = {
   4C0000001B470000D22B00000000000000000000000000000000000000000000
   000000004C000000000000000000000001000000E0D057007335CF11AE690800
   2B2E126208000000000000004C0000000114020000000000C000000000000046
   8000000000000000000000000000000000000000000000000000000000000000
   00000000000000000100000000000000000000000000000000000000}
 end
end
317デフォルトの名無しさん:02/05/19 02:29
ちょっと前にC#にコンパイルさせるコードが載っていましたが、
このとき、コンパイルルーチン(中間コード?)がリンクされて、
スタンドアロンコンパイラが作られるって事でしょうか?
COMが絡むと対決の意味があまりないな・・・。
対決も何も、C系(C#やC++、Javaも含む)は宣言順序が
開発向けじゃなく、既に出来あがったコードの清書に向いてるんじゃ?
プログラム考える時、変数名や関数名決めるより先に型決めるか?普通。
どちらも使ってるけど、明らかにPascal系のほうが、Cよりも
新しいプログラム書く時は生産効率良い。その代わり、CやC++で
清書しないとPascal系で書かれたコード、再利用するのは大変
コンポーネント化はともかく、再利用性(ライブラリ化)はC系のほ
うが遥かに優れてるようなきがする。
>>319
なに言っているのかわかりません。
321age:02/05/19 04:26
>>319
デムパな文章age!!!
>>319
何となくわかる。

String data

data :String
の差でしょ?

俺も久々にCファミリーの言語触って違和感感じた。

dataというString型変数。

String型のdataという変数。

頭の切り替えが必要だね。
では、C#のバイナリ処理能力を見たいので、原始的ながらバイナリダンプ。(色もちゃんと変えてね)

program Dump;

{$APPTYPE CONSOLE}
uses Windows, SysUtils;

function GetAttribute(var F: Text): Word;
var
 Info: CONSOLE_SCREEN_BUFFER_INFO;
begin
 GetConsoleScreenBufferInfo(TTextRec(F).Handle, Info);
 Result := Info.wAttributes
end;

procedure SetAttribute(var F: Text; Attr: Word);
begin
 Flush(F);
 SetConsoleTextAttribute(TTextRec(F).Handle, Attr)
end;

procedure WriteData(Data: array of Char; Next: Char);
var
 I: Integer;
 OrdAttr: Word;
begin
 for I := Low(Data) to High(Data) do
  Write(IntToHex(Ord(Data[I]), 2), ' ');

 Write('': (16 - Length(Data)) * 3);

 OrdAttr := GetAttribute(Output);
 SetAttribute(Output, FOREGROUND_GREEN);
 Write(': ');
 SetAttribute(Output, OrdAttr);

 for I := Low(Data) to High(Data) do
  if Data[I] in [#$20..#$7e, #$80..#$fe] then
  begin
   Write(Data[I]);
   if (I = High(Data)) and (Data[I] in LeadBytes) and (Next in [#$20..#$ff]) then
    Write(Next)
  end
  else
  begin
   OrdAttr := GetAttribute(Output);
   SetAttribute(Output, FOREGROUND_RED);
   Write('.');
   SetAttribute(Output, OrdAttr)
  end;

 WriteLn
end;
var
 F: File;
 Data: array[0..15] of Char;
 Count, NextCount: Integer;
 Next: Char;
begin
 Assign(F, ParamStr(1));
 FileMode := fmOpenRead or fmShareDenyNone;
 Reset(F, SizeOf(Char));
 BlockRead(F, Data, SizeOf(Data), Count);
 BlockRead(F, Next, SizeOf(Next), NextCount);
 while Count > 0 do
 begin
  WriteData(Slice(Data, Count), Next);
  Count := 0;
  if NextCount > 0 then
  begin
   Data[0] := Next;
   BlockRead(F, Data[1], SizeOf(Data) - SizeOf(Char), Count);
   Inc(Count);
   BlockRead(F, Next, SizeOf(Next), NextCount)
  end
 end;
 Close(F)
end.
バイナリダンプの部分だけ作ってみた。賢いロジックじゃないけど。
色の変え方はよく分からん。

using System;
using System.IO;
using System.Text;

class BinaryDump {

  public static void Main(string[] args) {
    if (args.Length == 0) {
      return;
    }

    using (Stream s = File.OpenRead(args[0])) {
      byte[] buf = new byte[16];
      int read = 0;
      int index = 0;

      while ((read = s.Read(buf, 0, buf.Length)) > 0) {
        // バイトのインデックス表示
        Console.Write("{0:X8}", index);
        index += 16;

        Console.Write(" ");

        // 16進表示
        for (int n = 0; n < read; n++) {
          Console.Write("{0:X2}", buf[n]);

          // 区切り文字の表示
          if (n == 7) {
            Console.Write('-');
          }
          else {
            Console.Write(' ');
          }
        }
        // 最終行の帳尻合わせ
        for (int n = 16; n > read; n--) {
          Console.Write("  ");
        }

        Console.Write(" ");

        // 内容表示
        string text = Encoding.GetEncoding("Shift_JIS").GetString(buf, 0, read);
        for (int n = 0; n < text.Length; n++) {
          // 制御文字の置き換え
          if (Char.IsControl(text[n])) {
            Console.Write('.');
          }
          else {
            Console.Write(text[n]);
          }
        }

        Console.WriteLine();
      }
    }
  }
}
>319
設計無しでコード書くんですか?
328デフォルトの名無しさん:02/05/19 14:57
文字色を変えるためのクラス

using System;
using System.Runtime.InteropServices;

sealed class Interop {

  // 標準出力のハンドル取得用
  [DllImport("kernel32.dll")]
  internal static extern IntPtr GetStdHandle(uint nStdHandle);

  internal const uint STD_OUTPUT_HANDLE = unchecked((uint)-11);

  // コンソールの情報取得用
  [DllImport("kernel32.dll")]
  internal static extern bool GetConsoleScreenBufferInfo(
    IntPtr hConsoleOutput, ref CONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);

  [StructLayout(LayoutKind.Sequential)]
  internal struct CONSOLE_SCREEN_BUFFER_INFO {
    public COORD dwSize;
    public COORD dwCursorPosition;
    public ushort wAttributes;
    public SMALL_RECT srWindow;
    public COORD dwMaximumWindowSize;
  }

  [StructLayout(LayoutKind.Sequential)]
  internal struct COORD {
    public short X;
    public short Y;
  }

  [StructLayout(LayoutKind.Sequential)]
  internal struct SMALL_RECT {
    public short Left;
    public short Top;
    public short Right;
    public short Bottom;
  }

  // 文字色設定用
  [DllImport("kernel32.dll")]
  internal static extern bool SetConsoleTextAttribute(IntPtr hConsoleOutput, ushort wAttributes);

  internal const int FOREGROUND_GREEN = 0x0002;
  internal const int FOREGROUND_RED = 0x0004;
}
うむ。ちゃんと変わってるね。

using System;
using A = Interop;

class Test {

  public static void Main() {
    IntPtr h = A.GetStdHandle(A.STD_OUTPUT_HANDLE);

    A.CONSOLE_SCREEN_BUFFER_INFO info = new A.CONSOLE_SCREEN_BUFFER_INFO();
    A.GetConsoleScreenBufferInfo(h, ref info);

    ushort orgAttr = info.wAttributes;

    A.SetConsoleTextAttribute(h, A.FOREGROUND_GREEN);
    Console.Write("緑");
    A.SetConsoleTextAttribute(h, A.FOREGROUND_RED);
    Console.Write("赤");
    A.SetConsoleTextAttribute(h, orgAttr);
    Console.WriteLine("白");
  }
}
330デフォルトの名無しさん:02/05/19 18:39
DelphiってライブラリでサポートしてないWin32API使うときってどうやるの?
>>330
↓こんな感じだす
interface
function FindExecutable(lpszFile, lpszDir, lpszResult: PAnsiChar): HINST; stdcall;
implementation
function FindExecutable; external shell32 name 'FindExecutableA';
332323:02/05/19 18:46
>>325 ShiftJISの文字が途中で切れた時の処置を>>323ではしてますよ〜♪
>>330 function WWW(XXX: YYY): ZZZ; external 'DLL名' name '内部名'; …要するに大差無し。
>>331-332
ほうほう。Declare Function〜みたいなものか。
334デフォルトの名無しさん:02/05/19 21:11
CSVファイルをExcel形式に変換するプログラムを作成せよ。
>>334
取りあえずお手本を見せてくれ。
336デフォルトの名無しさん:02/05/19 22:13
Excel形式って公開されてるの?
公開されてるならやってみたい。
337323:02/05/19 22:24
もしオートメーション使って、というのであれば、先のブラウザ同様どちらも同じ構造のコードになるのであまり面白く無いかと。
C#, Delphi共通で使えるものが無いお題がいいな。
XMLデータベースなんかどうでしょう。DelphiにはMyBaseがあるし、.NETにも同様の機能があった筈。
…Excelのファイルフォーマットが公開されているのであればごめんなさい。

ところでC#でSliceやbuf[1]からの読み込みをどうやるのか見たくて出した先のお題なのですけれど、
使ってくれなかったので、誰か方法だけでも教えてくれませんか?
338デフォルトの名無しさん:02/05/19 22:27
>>334
Excel2000使用。こういうのはブビの方がいいかもね。

using System;
using System.IO;
using System.Reflection;
using Excel;

class CSV2Excel {

  public static void Main(string[] args) {
    if (args.Length == 0) {
      return;
    }

    string csv_name = Path.GetFullPath(args[0]);
    string xls_name = Path.GetDirectoryName(csv_name) +
      @"\" + Path.GetFileNameWithoutExtension(csv_name) + ".xls";

    _Application app = null;
    _Workbook book = null;
    object o = Missing.Value;

    try {
      app = new ApplicationClass();
      book = app.Workbooks.Open(csv_name, o, o, o, o, o, o, o, o, o, o, o, o);
      book.SaveAs(xls_name, XlFileFormat.xlExcel7, o, o, o, o, 0, o, o, o, o);
    }
    catch (Exception x) {
      Console.WriteLine(x.Message);
    }
    finally {
      if (book != null) book.Close(o, o, o);
      if (app != null) app.Quit();
    }
  }
}
339デフォルトの名無しさん:02/05/19 22:31
SliceなんてC#で使えるのか?
>>337
XMLデータベースなら、ObjectSpaceという非公開のライブラリを使ったサンプルを前に作ってるよ。
とりあえずこんな感じ。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=38&fi=no
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=39&fi=no
>>339
splitならある。
>>337
buf[1]からの読み込みならこんな感じ。

  // 第2引数 : 読み込み開始位置
  s.Read(buf, 1, buf.Length - 1);
何だかんだいいながらコードが出てくると対抗して作ってしまうあたりがDel房。

program CSV2Excel;
{$APPTYPE CONSOLE}
uses ActiveX, SysUtils, Variants, ComObj;
var
 F: TFileName;
 Excel, Book: OleVariant;
begin
 F := ExpandFileName(ParamStr(1));
 CoInitialize(nil);
 try
  Excel := CreateOleObject('Excel.Application');
  try
   Book := Excel.Workbooks.Open(F);
   Book.SaveAs(ChangeFileExt(F, '.xls'), $00000027);
   Book.Close
  finally
   Excel.Quit
  end
 finally
  CoUninitialize
 end
end.
>>341 それは文字列ですよね。オープン配列の概念が無いみたいなのでやはり必要な部分だけコピーするしか無いのでしょうか。
>>342 成程。ってリファレンス見ればわかる内容ですね。すいません。
VB.NETでもやってみる。

Option Strict Off

Imports System
Imports System.IO
Imports Microsoft.VisualBasic

Class CSV2Excel

  Public Shared Sub Main(ByVal args As String())

    Dim csv As String = Path.GetFullPath(args(0))
    Dim xls As String = Path.GetDirectoryName(csv) + _
      "\" + Path.GetFileNameWithoutExtension(csv) + ".xls"

    Dim app As Object

    Try
      app = Interaction.CreateObject("Excel.Application")

      Dim book As Object = app.WorkBooks.Open(csv)
      book.SaveAs(xls, &H0027)
      book.Close()
    Catch x As Exception
      Console.WriteLine(x.Message)
    Finally
      If Not app Is Nothing Then
        app.Quit()
      End If
    End Try

  End Sub

End Class
JScript.NETでも。

import System;
import System.IO;

var args : String[] = Environment.GetCommandLineArgs();

var csv : String = Path.GetFullPath(args[1]);
var xls : String = Path.GetDirectoryName(csv) + "\\" + Path.GetFileNameWithoutExtension(csv) + ".xls";
var app : Object;

try {
  app = new ActiveXObject("Excel.Application");

  var book : Object = app.WorkBooks.Open(csv);
  book.SaveAs(xls, 0x0027);
  book.Close();
}
catch (x : Exception) {
  Console.WriteLine(x.Message);
}
finally {
  if (app != null) app.Quit();
}
347デフォルトの名無しさん:02/05/20 00:31
しつもーん。
ここに載ってるDelphiのコードってPersonalで全部動くの?
>>347
変なコンポーネント使っている場合を除いて動くだろう。
349デフォルトの名無しさん:02/05/20 01:41
このスレのためにDel Personal落として入れたぞ(゚Д゚)ゴルァ
お前らも代わりに.NETのランタイムぐらい入れろ(゚Д゚)ゴルァ
>>349
お前らって誰?
>>350
Del厨
Delphiのヘルプ使いづらい。今どき.hlpはないだろ。
俺は今のHTMLベースのヘルプよりWinヘルプの方が好きだが。
>>353
ページの移動とか面倒でない?
355デフォルトの名無しさん:02/05/20 03:18
Delphiは確かにコンパイルは速いんだが、あの奇妙な文法にはどうしてもなじめん・・・
356デフォルトの名無しさん:02/05/20 03:36
>>355
Delphi知らないんですが、どのへんが奇妙ですか?
>>337
.NETでのSliceの代わりはArray.Copy
358デフォルトの名無しさん:02/05/20 03:39
そういえばプロトタイプ宣言の仮引数の名前が違っただけで
エラーになるとか、それどころか片方だけ途中で改行すると
だめだとか、ちょっと作りが荒いところがあるな。
{コメント}

↑これにはすごい違和感がある。C系言語やってる人間には。
良スレの実感・・・
2chの低級自縛霊であるところの煽り専門の奴らは
コードが出てくると黙っちゃうからねえ。
>>359
//これ使えなかった?>Delphi
{これがコメントはたしかに違和感あり}
ANSI Pascalみたいな規格があって、
それに準拠するには{こんなコメントをサポートしないといけないのかも。}
既にむちゃくちゃ独自仕様だからこだわること無いと思うけど。
代入の :=
文字列の '〜'
end だったり end; だったり end. だったり迷う
365デフォルトの名無しさん:02/05/20 03:55
セミコロンはカンマと同様、区切りだから、
end elseのように
一本の文として繋がるとこには置かない。
:=は結構普通だと思う。
VBみたいに代入と比較の=が同じなのはなんかやだし。
分けてるって事は意味解析も必要なさそう。
'〜'←unix系のsh使いならそれほど違和感ないかも。
end←そもそもbegin〜endが気持ち悪いね。
最近Delphi始めましたが、Pascalの表記はなじめそうもありません。
とりあえずコンソールアプリを作ってみたものの、
readlnの仕様とかヘルプ見てもよくわかんなかった。
整数を期待する入力にアルファベット入力してみたら、あっさり死んで萎え〜。
Delphiのフリーカーソルも違和感あり
Delphi始めて真っ先にフリーカーソルを殺す方法をgoogleで検索した。
>>367
クラスに属さないグローバル関数というのもいやん。
371みの:02/05/20 04:09
じゃあ、Delphiはカス、ということでファイナルアンサー?
372出川:02/05/20 04:10
ファイナルアンサー!!!!!
373みの:02/05/20 04:10

・・・・・・・・・せいかい!
このスレの趣旨はバージョンを6つも重ねたDelphiがすでに初バージョンのC#に
追いつかれ追い越され状態なのを確認するスレです。
出川必死だな(w
C#陣営のコードはIDE使ってないような気がする。
SDK+エディタでゴリゴリ?
377デフォルトの名無しさん:02/05/20 04:44
フリーカーソルの方が便利だよ。

C#のIDEってフリーカーソルに出来るのでしょうか?
>>377
なんでそうやって無理するの?
い・い・か・げ・ん・直せ>Borland
>>368
で、どうやるの?
>>368
ごめん、>>369だった。
フリーカーソル無効化アドイン
ttp://homepage1.nifty.com/fuu/
フリーカーソル反対!
フリーカーソルってのがいまいち分からん。
なにがフリーカーソルで、なにがそうでなくて、
フリーカーソルの利点と欠点をだれか教えてくれ。
 フリーカーソル派 = トランクス派
反フリーカーソル派 = ブリーフ派
>>383
(・∀・)イイ!
>>358 引数の名前は、入力支援でも使われるし、同じに統一する事を強制する方がいいと思うけど?
>>367 例外が出るのを 死ぬと表現するのは違和感あるよ
コードが出るのがちっとでもとぎれると待ってましたと厨房があふれるという罠。
(*
そういえばプロトタイプ宣言の仮引数の名前が違っただけで
エラーになるとか、それどころか片方だけ途中で改行すると
だめだとか、ちょっと作りが荒いところがあるな。
*)

ワラタ、けなすならPascalの生まれた経緯と歴史くらい勉強してくれ。
寝て起きたら荒れてる…

Pascalは歴史的にキーボードへの配慮で (* = { で (. = [ となってます。
仮引数名は上下で合せないといけませんが(つーか変えたいなんて言ってる人初めて見ました)、改行は別におっけーだった筈…。

で、C#のIDE(VisualStudio.NET)はフリーカーソルにできますか?(←知りたい)
.NET SDKは英語版の正式版が出た段階で入れ、日本語版、SP 1とキッチリ追いかけてますよ〜。

次のお題は…Windows APIだけで作られた (DelphiならVCL/CLXを、C#ならWindows.Formsを使わずに)
保存と読み込みだけできる簡易メモ帳、とかどうでしょう?
(Delphiに有利過ぎ?でもXML周辺は明らかにC#有利でしたからこの位…w)
>>388
>で、C#のIDE(VisualStudio.NET)はフリーカーソルにできますか?(←知りたい)

フリーカーソルじゃないけどなかなかインテリジェント。
390Delフサギコ ◆zE1iiRdQ :02/05/20 13:01
  ,,,,,,,,,,,,,∧,,∧   /
〜′,,,,,,,ミ,,゚Д゚彡< ここで動いてるC#コードって
  UU""" U U   \Pascal.NETでも同じように記述できるん?
試したことは無いけど、出来ると思うよ
>>381
サンクスコ
大分使いやすくなった。

VBの場合予約語や宣言した変数は入力すると勝手に大文字小文字をうまく合わせてくれるじゃん?
Delphiにもその機能があったらいいなぁと思う。
小文字だけはソースが汚いし、Shift押してやるのも面倒。
393Delフサギコ ◆zE1iiRdQ :02/05/20 15:06
  ,,,,,,,,,,,,,∧,,∧   /
〜′,,,,,,,ミ,,゚Д゚彡< >>392 賛成でし。
  UU""" U U   \ 有名なG-エキスパってアドインで対応できんのかな?
  BorlandはIndyとかと同じように
  ユーザーサイドの周辺ソフト&ライブラをガシガシ標準環境に
  取り込んで欲しいです。
  そうしないと、マンパワーでどうしたってMSには勝てんだろうし。

フリカ無効化アドインとかも
標準でついてるべき機能だよなー
394デフォルトの名無しさん:02/05/20 15:11
>>392
VB.NETってそれ無くなってない?
動くとしたところで、フサギコは.NETランタイム入れてるのか?
C#で作ったアプリって重くない?
>>396
起動がワンテンポ遅れる感じ
ただし遅いPCだけかもしれないけど(漏れのはPV650だからはっきり分かる)
.NETのランタイムがOSに完全に融合して
常時ロードされるようになれば
アプリの起動が速くなったりして。

Sleepし続けるアプリでも常駐させとけば?
またOSのメモリ消費が増えるのか。
>>388
C#版これから作るけど、多分ここに載せきれない分量になるよ。
どこかアプできるとこない?
402デフォルトの名無しさん:02/05/20 18:58
じゃ その次の課題 
"0〜9 + - * / ( ) "を含む 文字列を引数にして 演算し
 整数又は浮動小数点数を返す関数を書け

なんか .NET ってそういうの得意そうじゃない?
>>402
>なんか .NET ってそういうの得意そうじゃない?
依怙贔屓と取ってよろしいか?
404デフォルトの名無しさん:02/05/20 19:38
>>402
jscript.netのevalのこと?
405デフォルトの名無しさん:02/05/20 19:50
JScript.NETだとこれだけ。

import System;
var args : String[] = Environment.GetCommandLineArgs();
Console.WriteLine(eval(args[1]));
>>403
つか、Delphiの力って大体把握してるから、
.NETで書くとどうなるかって方が興味深い・・・。
これだけ強力なクラスライブラリが完備されてると
そのうち配列の途中に要素を挿入するアルゴリズム(藁
を知らないドットネッターなんてのが出てきそうだな。
今でも腐るほどいるから気にするな。
>>402
Delphiのコード、やっぱりこの板のどこかに書いた筈・・・

転載されてた 
http://pc.2ch.net/tech/kako/1003/10035/1003559977.html

の 4
410デフォルトの名無しさん:02/05/20 21:53
Delphi版簡易メモ帳完成。
>>401のとこにソースを置きたいのですが、あっちはタブとか空白とかはどうなるのでしょう。
やっぱり全角空白に直さないと駄目?
0〜9 + - * / ( ) 以外の記号や演算はちゃんとエラーにしてエラーの種類も報告せよ、となるとevalを使うにしても難しい気が…
412400:02/05/20 22:33
途中版うpです。これだけですでに死にそう・・・。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1021888173&res=2&fi=no
413388=410:02/05/20 23:05
この時間帯混み合って回線切れまくりです。ようやくUPできた…。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1021888173&res=3&fi=no
無駄にUNICODEアプリケーション(w
*.exeサイズ、ランタイム不要独立実行で19kバイト。DelphiはSysUtilsを使わなければ最小です。(これだけはC++にも負けない)

C#メモ帳試してみます。機能で負けてたら追加するかも。
414デフォルトの名無しさん:02/05/20 23:13
海の向こうは盛り上がってるようだ。
http://www.zdnet.co.jp/enterprise/0205/20/02052001.html
C#のコード、Cで書くのとほとんど変わらないな。(w
しかもヘッダの部分も自前で用意しなきゃならないし。
uses
 Windows, CommDlg, Messages;

を禁止されてるようなものか。
417デフォルトの名無しさん:02/05/20 23:47
N88-BASICってフリーカーソルでしたっけ?
N88-BASIC→BorlandのIDEと使ってきたので、
VZエディタとか使い始めたとき、めちゃ違和感があった。

学者系が非フリーカーソル、
ホビー系はフリーカーソルなのかな?

MS-DOSのラインエディタやIBMのXエディタあたりが
非フリーカーソルの祖先なのでしょうかね。
>>417
>学者系が非フリーカーソル、
Pascalは教育用言語ですが何か?
混同し過ぎ。
420デフォルトの名無しさん:02/05/20 23:54
うーん、でもBorlandってFortranは出していないよね?
だから教育用途は目指していなかったのでは?
421デフォルトの名無しさん:02/05/20 23:56
非フリーカーソル派って、N88-BASICでのプログラミング経験が無いのかな?

>>421
あるけど、その前にWindows派だったからメモ帳がデフォルト。
確か一太郎のフリーカーソルはあんまり違和感なかったかな?
フリーカーソルってメリットあるの?
ただ十字キーを連打しなければいけなくなるだけじゃない?
今回は降参。(;´Д`)
気が遠くなってきた。

β1の頃ならまだ楽だったんだけど・・・。
Microsoft.Win32.Interop.dll があったから。
425400:02/05/21 00:47
424=400です。
426デフォルトの名無しさん:02/05/21 00:48
↑キーで真上にカーソルが移動する方が自然です。
私は、左端はエンターキーもしくはHOME CLRキー、右端はヘルプキー
ですな。
>>426 同じー
>>426
そういう考え方もあるね。
フリーカーソルの方が良いと思ってたけど、
どっちが良いのかはユーザ次第ってことか。
改行マークを表示できるエディタなら非フリーカーソルがいいです。
改行マークを表示できないエディタならフリーカーソルがいいです。

ですから、Delphiのエディタがフリーカーソルなのはまあ賛成。
VC++ or VBのエディタも、フリーカーソルにするか改行を表示するかどっちかして欲しい…
WZのフリーカーソル(もどき)が一番いい。
Borlandのは、おかしいよ・・・
VCはフリーカーソルにできるよ。
Delphiのオートインデントとスマートタブは変だと思うけどね。
だからOFFで使っています。
>>432
オートインデントはかなり便利だと思うが。
構造が入り組んでくると、わざわざ自分でインデントするの大変だよ。
434400:02/05/21 07:40
435デフォルトの名無しさん:02/05/21 20:23
API叩くだけっていうの面白くないな。
囚人のジレンマのアプリケーションフレームワークはどうよ?
437デフォルトの名無しさん:02/05/21 21:49
ていうかさ、C#でアンマネージドなプログラムは作れないのか?
無理。unsafeなものなら作れる。
やっぱり作れないのか。
その時点で買う気無くなったな。
VisualC++しかないんかなやっぱり。

スレ違いでスマソ。
>>439
禿同。やっぱりDelphiダヨネ!
>>439
Delphi、すごくいいと思うんだけど、高すぎる。
学割で数万とか有り得ない。こんな高いもん買えん。
Personal版は制限がきつくてやってられんし。
C++Builder6Proアカデミック版1万円にしれ。高すぎ。
VSは安かったよなぁ。
444デフォルトの名無しさん:02/05/21 23:41
BorCon 2002 Keynote:Turbo Pascal/Delphiの生みの親,ヘイルスバーグが
古巣の基調講演に登場
http://www.zdnet.co.jp/enterprise/0205/21/02052101.html

これ見て気になったんだけど、

>2003年にはコードネームで「Galileo」と呼ばれ,.Net Frameworkをフルサポート
>したDelphiも登場する。

ということは、今年出るDelphi.NETは。。。
>>444
情報サンクス
バージョンアップは1回見送るのが正解かな
延期!
447デフォルトの名無しさん:02/05/21 23:49
なんだ、やっぱり駄目じゃん、Delphi.NET。
思った通りだ。あのデモ画面を見ても.NETフルサポートしてないのは明らかじゃないか。
あのデモ画面ってなんですか?
えっらそうに。
>>449
悔しいのか?プププ
DelphiがC#と肩を並べられるのは2003年以降です。
>>441
>Personal版は制限がきつくてやってられんし。
具体的に。
学生がデータベースぐりぐりアクセスって考えられないんだけど。
453Delフサギコ ◆zE1iiRdQ :02/05/22 00:15
    ∧ ∧  ・・・・。
    ミ ゚Д゚彡
  〜ミ,,,,uuミ  正直、MSILコンパイラだけとは...チェッ

Personalが制限がキツイとか言う厨はほっとけ。
なーんだ。.NET対応しないのか。
当分Delphiは手を出す必要はないな。
>>452
機能的に、じゃなくて、ライセンス的に。
商用・業務アプリケーションの開発はできません。
とあるが、なんでこういうわけの分からない制限つけるかね。
>>454
というより.NETならDelphiは必要ないじゃん(C#があるさ)

漏れは.NETできない環境のためにDelphiを使うと思うよ
457デフォルトの名無しさん:02/05/22 00:36
DelphiはVB.NETの代わりにもならないことが判明しました
しばらくはVB.NETの天下だな
459デフォルトの名無しさん:02/05/22 01:47
Delphi.NETはハッタリでまだ実体のないものだということが判明しました
C#なのにVBの名前出すんじゃない。
>>436 とりあえずDelphi用。
というかよく知らずに作ってますけど囚人のジレンマフレームワークってこんなのでいいの?

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1021888173&res=6
言語機能やライブラリこそ似通ってるが、基本的には、DelphiはC/C++と同系統、C#/VB.NETはJavaと同系統。
ネイティブを対象としたコンパイラと、マネージド環境を対象としたコンパイラを比べ、
片方が片方の環境に対応しないから、駄目って、それは判断基準が違う。

DelphiでASP.NETのコードは書けないし、C#/VB.NETでWindowsフックDLLは書けない。何か問題が?

(マネージドコードではそれ専用に作られたC#が最適なのはわかりきっているので)
むしろDelphi.NETはManaged C++のようになって欲しいと思うのは僕だけ?
ネイティブとの仲介に使える言語がManaged C++だけというのは辛すぎる気がしてるのでObjectPascalで書けたら…
Delphi 7のMSILコンパイラって、詳細どうなんでしょ。
> C#/VB.NETでWindowsフックDLLは書けない

.NETではJNIほど難しくありませんよ
フックPROCは DLL になければならない この意味が判りますか? >>463
>>455
>商用・業務アプリケーションの開発はできません。
>とあるが、なんでこういうわけの分からない制限つけるかね。

もっとも低機能なpersonalですらまともな業務用アプリケーションが構築できてしまうからです。
>>464
LoadLibraryしてGetProcAddressできたらmanagedの意味がねーだろ!
何か勘違いしている模様
>>462
無知の知という言葉を送ろう。CLRでWindowsフックDLL書けますよん。

対象が違うという議論はMC++とC#にはあてはまるけど、C#とDelには
あてはまらんよね。もともとDelは打倒VBで作られたんだから、C#と
目標が同じであるのは明白であろう。
>>468
>CLRでWindowsフックDLL書けますよん
教えて!!

>Delは打倒VB
Delphiのいいところは、VBのような記述を、C++と同じ性能同じレベルで書ける、というところにあると思っていますので、
むしろずっとネイティブでいて欲しいと思う自分。
じゃあ、次のお題はキーボード入力のシステムフックだ!
471デフォルトの名無しさん:02/05/22 17:38
>>469
C#だけでシステムフックができるの?
472???:02/05/22 17:47
>>471
IL変更すればできるらしい。詳細は忘れた。(w

>>472
そりはローカルフックでは?
読めないや
く( ´∀`) テヘッ
475デフォルトの名無しさん:02/05/23 02:41
>>473
メソッドのエクスポートの仕方。
http://discuss.develop.com/archives/wa.exe?A2=ind0204b&L=dotnet&F=&S=&P=78832

フィールドのやり方はいまだにわからん。
>C# vs Delphi Round 1

Microsoft C# Microsoft Visual Studios Borland Delphi?
477デフォルトの名無しさん:02/05/23 03:54
Delphi.NETが出たらVCLって死滅しちゃうの???
>>477
VCLは非劣化情報なのでコピーとっとけば死滅しません。
ネイティブコードをはけるC#コンパイラキボンヌ
C#で作れるEXEファイルって
.NETをインストールしてないと動かないの?
それとも、何かDLLだけインストールすれば動くようになるの?
Del厨?
C#コンパイラってネイティブコードはかないの?
Javaと一緒?
C#とかDelphiなんかよりやっぱC++Builderが最強でしょ。
Delphiのクソ使いにくいこんなの業務に使えるのかって
言語仕様がC++になることで解消されてる。
>>483 もしかして STL が無いとコード書けない人?
>484
無くても書けるがあると楽だ。
VCLだけだと物足りない。
486485:02/05/23 11:13
漏れ!=483ね。一応。
487461:02/05/23 11:46
無視されてる…オープン配列やらvirtualなクラスメソッドやらC#に無さそうな機能を使って頑張ったのに…
488デフォルトの名無しさん:02/05/23 14:59
>>487
フレームワークの意味がわからなかったんだよ。
きっとVB上がりばっかリだからクラスなんて作ったことないだろうな。
というわけでDelphi=Object Pascalユーザーの圧勝。
>>488
フレームワークって何ですか?ぜひ教えてください。
>>461 さんのソースはどのへんがフレームワークなんですか?

STLはともかく、テンプレートは便利だよなぁ。
Delphiにも欲しいぞ。
>>489
本人がそう言ってるところ。
>>490
今時、クラスライブラリのないOOPLや
STLのないテンプレートなどには
全く存在価値がありませんが?
VCL,STL,OWL,MFC全部使えるBuilder最強。
>>493
それだけポリシーがない環境ということ。
へぇ、ポリシーねぇ。
( ´・∀・`) へー
497デフォルトの名無しさん:02/05/23 18:39
】“Aurora”“Galileo”“Charlotte”“Edison”──次世代製品の概要が明らかに
http://ascii24.com/news/i/topi/article/2002/05/23/635945-000.html
「100%Pure .NET開発環境」ということは現行のVCLはあぼーんということですな
499デフォルトの名無しさん:02/05/23 18:57
Borlandって節操ないよね。
でもさDelphi.NETついてもランタイム要るんだろ?
駄目じゃん(藁
でもさDelphi.NETついてもランタイム要るんだろ?
駄目じゃん(藁
ああ言えば上裕。
>>500
イタタタタ
504デフォルトの名無しさん:02/05/23 19:42
Delphi.NETで作ったアプリを動かすにはBorland.Vcl.〜.dllがないと動きません。
これはVBの悪夢の再来です。
>>504
.NETの基礎の基礎。アセンブリ管理機構すら勉強してないアフォの発言に見えるな。
>>505
でもさDelphi.NETついてもランタイム要るんだろ?
駄目じゃん(藁
アセンブリ管理機構てどんなの?
( ´・∀・`) ・・・
>>508
でもさお前ついてもランタイム要るんだろ?
駄目じゃん(藁
アセンブリ管理機構とやらを勉強してないとアフォらしいな。
>>508から飛んで勉強しとこう。
でもさ.NETついてもランタイム要るんだろ?
駄目じゃん(藁
514デフォルトの名無しさん:02/05/23 20:13
検索のヒント

 ・キーワードに誤字・脱字がないか確かめてください。
 ・違うキーワードを使ってみてください。
 ・より一般的な言葉を使ってみてください。

「アセンブリ管理機構」 は誤字・脱字があるか、一般的でないらしい

どうすればアフォから脱出できますか
515Delフサギコ ◆zE1iiRdQ :02/05/23 20:30
                    ________
                ∧,,∧   /まづは
                ミ,,゚Д゚彡<  2chの情報を
             _φ__⊂ミ_  \鵜呑みにしないことから
           /旦/三/ /|   はじめなさい。
        | ̄ ̄ ̄ ̄ ̄|  |
        | 愛媛ミ力ソ .|/
          ̄ ̄ ̄ ̄ ̄
>>515

   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< ・・・
  (    )  \_____
  | | |
  (__)_)
そーいや、アセンブリとマニフェストの関連を表す言葉ってないね。
>>515 隔離スレから出てこないでください

ミ,,゚Д゚彡フサギコのフサフサDelphi談話室B
http://pc.2ch.net/test/read.cgi/tech/1021554929/
520461:02/05/23 21:36
別にDelphiはネイティブ世界で最強だから別にいい。.NETみたいに囲われなくてもネイティブのまま
クロスプラットフォームもサーバーサイドもできるし、ランタイム要らないし軽々動くもん…と強がりを言ってみる。

フレームワークというのは、枠組みとなるライブラリって解釈でいいと思います。
Windows.Formsを一行も変更せずに楽々ウィンドウアプリケーション作れるでしょ?
同様、DilemmaFrame.pas/DilemmaConsole.pasを一行も変更せずに囚人を作って試せる
構造にしたので、これらをフレームワークと呼んでもいいかな?と手前勝手な解釈ながら。

Delphi.NETが屑でも、ネイティブはDelphi、.NETはC#と割り切って使うだけ(Delphi.NET最強ならそれが一番いいが)
と思っているので、ObjectPascalとC#で同じ処理を行うコードを見たいと思ってます。さあ出せ(w

トカカイテオイテバグガアッタラハズカシイノデワリビイテヨンデクダサイ
521デフォルトの名無しさん:02/05/23 23:29
特定のプラットフォーム(Windows?)用のランタイムライブラリをリンクして、
そのターゲット上で実行するときだけランタイム不要にする。

他の環境は要ランタイムってできないの?
>>521
って言うかJIT、PreJITがあるから。
523デフォルトの名無しさん:02/05/23 23:32
JITってアプリケーションのEXEに含まれるのですか?
>>523
その前にJITって何かわかってる?
525デフォルトの名無しさん:02/05/23 23:51
>>524
Del厨に分かるわけないだろ。(嘲笑激藁
526524:02/05/23 23:52
>>525
お前に構うのはIPパケットの無駄だがね。
俺がDel厨だとしたら?
また「嘲笑激藁」厨か・・・
Del厨は>>523
529デフォルトの名無しさん:02/05/24 00:17
タバコは・・・JT
Just Intel sysTem?
531523:02/05/24 00:45
Just In Time コンパイラの事でしょ?
だからね、必要なJITコンパイラを exe につけて、
実行時に中間コードをコンパイルして実行するの!

もぉ!
嘲笑激藁厨ってwin板にもいたな。
ほら、Del厨なんてこんなもんだ。(嘲笑禿藁
534デフォルトの名無しさん:02/05/24 00:58
ひょっとしてEXEは作れても完全なネイティブでないのか?
DelphiってWindowsでしか動かないんでしょ。
駄目じゃん(藁
Kylix は?
名前が違うじゃん(藁
実質、Delphi for Linux じゃないの?
使ったことないけど。
Delphi for Qtと言った方がいいかも
540デフォルトの名無しさん:02/05/24 05:27
KylixはすべてのLinux機で動かないからクソ
VCLが使えるわけじゃないからなぁ
でもさDelphi.NETついてもランタイム要るんだろ?
駄目じゃん(藁
>>542
.NET Framework に加えて、Delphi.NET 独自のランタイムがいる、ってこと?
.NETにランタイムがいるのは許せるけど、Delphiにランタイムがいるのは許せない。
>>544
>Delphiにランタイムがいるのは許せない。

頭冷やせ。
ストッキング冷やせ。
Delphi.NETはネイティブコードではありません。
Delphi.NETはランタイムに依存します。

どうよ?
お 前 ら 同 名 の 開 発 言 語 が あ る 場 合
.NET を 付 け や が れ
>>547
それは他の.NETでも同じこと。
どうせ他のソフトにだってdllの一つや二つ付いてくる。
ランタイム=遅い、DLL HELL
って従来のステレオタイプな考えは.NETでは恥ずかしい。
↑何が言いたいの?
>>550
DelphiはDLLに依存しないネイティブコードが売りだということ。
>>551
ひねくれ者だな。
でもさDelphi.NETついてもランタイム要るんだろ?
駄目じゃん(藁
>>553
どうダメか説明してくれ。
後、ランタイムとクラスライブラリdllの違いも説明してくれ。
(その文章書いてるってことはわかってないんだろうけど(激藁嘲笑。)
たった数個のクラスを使うためだけに、数百個クラスの詰まったDLLが必要になる。
.NETでデフォルトでついてくるならまだしも、Borland製じゃね。
このプログラムを動かすにはBorland.Vcl.dllが必要です。

そんなアプリ俺は使わない。
ネイティブでもない、単体exeでもない。
Delphi.NETの売りは何なのか?
>>556
じゃあ君はdll使うアプリはいっさい使わないんだね。ご苦労様。
Del厨必死だな。(藁

数ヶ月前は.NETをボロクソに言ってたくせに。(w
>>559
今では何か勘違いしているバカを矯正するので大変だよw
でもさDelphi.NETついてもランタイム要るんだろ?
駄目じゃん(藁
>>561
そんな何回も同じもの張るなよ。
Del厨も.NETに移行するまで時間がかかりそうだね。
ブビ厨に教わった方がいいかもね。(w
.NETの土俵に上がったら、できることはDelphiもVBもC#も変わらないじゃん。
Delphiを使う意味って何?
C# を使う意味って何?
VB.NET を使う意味って何?
Delphi を使う意味って何?
>C# を使う意味って何?

.NET Frameworkを築いた言語であること。

>VB.NET を使う意味って何?

世界で最も使われている言語あること。

>Delphi を使う意味って何?

知らん。
Delphi.NETが出たらライブラリも言語仕様も変わる

過去のDelphi資産がすべてあぼーん

だから今のうちに移行の準備しとけよ

VBと同じ手口じゃん(プッ
はじめてみたけど、すげえバカバカしいスレだな(w
569デフォルトの名無しさん:02/05/24 07:49
.NET系スレは粘着Del厨が出てきてすべてダメにしてしまう。
厨な質問で申し訳ないが、.Net Framework上でプログラムの実行速度は遅くなったりしゅる?
ものによるんじゃない?
CPU IntensiveなものはJITされるからあんまり変わらん気がする
ベンチマークとかあるとわかりやすいねんけど。
Java vs C# vs その他。みたいな。   
573デフォルトの名無しさん:02/05/24 08:27
前にどこかのスレでやったよ C# vs Delphiでベンチマーク
単純コードで C#が25%増し程度 再帰を使うコードでも倍程度しか時間がかからない
>>573
どこのスレか思い出せませんか?
見てみたい。

.NET 関連スレかな。
575転載:02/05/24 08:42
DelphiとC#の比較2
これだとだいたい倍近く差が出る。

procedure TForm1.Button2Click(Sender: TObject);
function func(a:Integer):Integer;
var i:integer;
begin
Result:=0; if a<1 then exit;
Result:=1; if a<2 then exit;
for i:=1 to a-1 do Result:=Result+func(a-i)+func(i);
end;
var StartTime:int64;
begin
StartTime:=GetTickCount;
func(19);
Memo1.Lines.Add(format('%10.2fsec',[(GetTickCount-StartTime)/1000]) );
end;


private int func(int a)
{
if (a<1)return 0;
if (a<2)return 1;
int r=1;
for(int i=1;i<a;i++)r += func(a-i)+func(i);
return r;
}
private void button2_Click(object sender, System.EventArgs e)
{
DateTime stim = DateTime.Now;
func(19);
textBox1.AppendText( "\x0d\x0a"+((DateTime.Now.Ticks-stim.Ticks)/10000000.0).ToString("f") );
}
元スレキボンヌ
>>569
根拠もなしにDel厨がどうこう言うやつが一番ダメ

>>570
起動する時がもっさりしている位かな、気になるのは
578デフォルトの名無しさん:02/05/24 08:53
やっぱりDelphi(not Delphi.NET)じゃなきゃダメだね。
579デフォルトの名無しさん:02/05/24 12:50
Delphi dot not
Delphi not yet
>>575
しつもん!
どうしてDelphi側はイベントプロシージャなんですか?
条件を同じにするならどちらもコンソールにするかC#側をWindows.Forms仕様に書き換えてもいいと思います。
>>580
よく見ろ
>>580 なんか判らんが好きなようにコード書いて比較して 結果を発表しなさい
583Delフサギコ ◆zE1iiRdQ :02/05/24 12:59
               _______
  ピッ!   ∩∧,,∧  /先生、>>580君のシツモソの
       ミ,,゚Д゚彡< 意味がチョットわからません
        ミ    ミ   \_____
  \ ̄ ̄ ̄ ̄ ̄U ̄ ̄\
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
不正をしてでもDelphiの方が速いと言いたいんだよ。(嘲笑激藁
>>580
ごめんなさい。
586デフォルトの名無しさん:02/05/24 13:03
>>575
やっぱりDelphiはどこからどこまでがブロックか分かりづらい。
begin〜endはダメだなこりゃ。
>>586
そのための強調表示です。
>>580
private void button2_Click(object sender, System.EventArgs e)
↑俺にはイベントハンドラにしか見えんのだが
実際、フォームにボタンを貼り付けてテストしたんだけど・・・
>>586
Oracleのストアドとか書いたこと無いでしょ
(あれ?どこかでも同じことを書いたような・・・)
>>587
強調表示しないと分からないということがクソなんだよ。
>>575ってC#の方が速いっていうことだよね?
コンパイル速度も実行速度もC#の圧勝だNE!
>>591
真に受ける厨房がたまにいるかも知れんから
わざと間違った情報を書き込むのは控えよう
>592
オマエガナー(w
Windows XP、PenV650での実行結果
Delphi 17.78秒
C#   30.83秒
595Delフサギコ ◆zE1iiRdQ :02/05/24 13:13

      ∧,,∧ サッ  /強調表示とか言う奴
     ミ,,゚Д゚ミ  < 逝ってよし
    ⊂   Om   \
     ミ、,, ミ,
      .しヾJ 

>>575のコードのインデントはこう
(インデントは全角スペでヨロシコ)
procedure TForm1.Button2Click(Sender: TObject);

  function func(a:Integer):Integer;
  var i:integer;
  begin
   Result:=0; if a<1 then exit;
   Result:=1; if a<2 then exit;
   for i:=1 to a-1 do Result:=Result+func(a-i)+func(i);
  end;

var StartTime:int64;
begin
 StartTime:=GetTickCount;
 func(19);
 Memo1.Lines.Add(format('%10.2fsec',[(GetTickCount-StartTime)/1000]) );
end;

関数内関数くらい、氏っとけ
Delphiって return 0; みたいなことできないんだ。
VB.NETですらサポートしたのに。(w
>>596
C#とDelphiを比較するなら両方ともあるていど知っている必要がある

このスレに君のような初心者は不要
関数内関数、まさにオブジェクト指向を無視した構造ですな(w
どこがObject Pascalなんだろう?D.NETどうなることやら。
>>598
アフォ?
600Delフサギコ ◆zE1iiRdQ :02/05/24 13:32
>>599
他を寄せ付けないくらいに....

   ∧,,∧  プハァ
  ミ,,゚Д゚彡 ∫
  と  ,,ミつ━
━┳━━┳━┓  
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
>>598
イタイからもう来るな。
つーか、こんなコードでベンチマーク比べちゃうんですか?
さすがDel厨
>>600 隔離スレから出てこないでください

ミ,,゚Д゚彡フサギコのフサフサDelphi談話室B
http://pc.2ch.net/test/read.cgi/tech/1021554929/
604デフォルトの名無しさん:02/05/24 14:12
*** 注意 ***

>>575のベンチマークはインチキです。
C#の方はDebugモード&最適化なしでコンパイルしています。
こういう偽の情報にはくれぐれも注意しましょう。

C#の方がコンパイルも実行も高速です!
C#とDelphiとは低レベルな争いだな。
>>604
>C#の方はDebugモード&最適化なしでコンパイルしています。

出てくるMSILはDebug Releaseとも同一だ

と日系BPパソコンベストムック、始めようC#のP20のコラムに書いてある。
取り合えず論拠もないのに騒ぐな。
607デフォルトの名無しさん:02/05/24 14:22
マルチスレッド環境とシングルスレッド環境を比較して、
「シングルスレッドの方が高速です」と言ってるとはレベルが低いですね。:)
>>607
そもそもそれらを比較しようとした奴がアフォなんだと思う。
>>608
じゃあ>>575の転載元書いたヤツはアフォということでファイナルアンサー?
>>609
>>1だろ。そもそも。
なんかアフォとしか言いようのない恥ずかしい事このスレに書くよりさあ
自分が好きなようにコード書いて比較したらいいじゃないか

C#で再帰が遅いのは仕方ない。
既にJITコンパイル済みかどうかチェックする為に間接コールになるからね。
それでも、2倍前後に収まってるのは頑張ってると俺は思うよ

それに、次のバージョンくらいで再帰対策用の仕様拡張くらいするんじゃないの?
612デフォルトの名無しさん:02/05/24 14:34
>>575の結果

C# : 8,192バイト
Del : 397,312バイト

驚くべきことに、C#の方が50倍近い差をつけて勝っています。
>>611
>再帰対策用の仕様拡張
コードレベルにまで及ばなければうれしいけどね。
>>612
Framework込みで計算するのが筋じゃないか?
後、ちょっと上のレス読めばわかるが君、馬鹿にされてるよ。
615デフォルトの名無しさん:02/05/24 14:37
>>614
やだねー、洒落の分からない奴は。(嘲笑激藁
>>615
「嘲笑激藁」厨は(・∀・)カエレ!
617デフォルトの名無しさん:02/05/24 15:07
Delphiでネイティブコード書いたって2003年にはあぼーんなのに。(w
>>617
1年持ったらいい方だろう。ソフトなんて。
>>618
あれ?VBの時は散々けなしてたくせに。(w
>>619
言われてみれば。。。炒ってきます。
VB→VB.NETのときと同じことがDelphiでも起きてるんだNE!
やぱーり同じ穴のムジナだNE!ヽ(´∇`)ノ
>>621
VB:言語仕様が変わって従来ユーザーが付いて行けなくなった。
Dl:クラスライブラリのしがらみで完全に.NETに追従できなかった。

問題点は違うけどね。
623デフォルトの名無しさん:02/05/24 15:26
どっちみち能無し年寄りは取り残されるだけ。(嘲笑激藁
>>623 というか、お前既にこのスレでさえ取り残されてるぞ

・・・・とレスしてやる俺は親切な人か?
>>624
目頭が熱くなった。
でもさDelphi.NETついてもランタイム要るんだろ?
駄目じゃん(藁
Delphi.NETがつくってどういう意味なんだろう。
>>627
なぜか誰も修正しない。
晒しageの一種か?
>>627
従来のDelのソースから.NETへ落とせるのなら
存在価値が無いわけでもないってところでは
>>628
あ、そうか・・・荒らしレス(626のこと)なんざまともに読まないからね
632デフォルトの名無しさん:02/05/24 19:01
Delphiってまた.NET対応で文法拡張するんでしょ?
どうしてこんな独自仕様言語に肩入れするのがいるの?
VBの方がよっぽどマシだよ。仲間も多いし。
>>632
 文法拡張しても、今迄ズッとしっかりした下位互換を見せてくれてたよ
さすがに今回は Object型は捨てられると思うけど、それはしょうがない
5年以上前から Object型は止めるってアナウンスしてたんだから

まあ仲間が多いのも良し悪し、
 廃れ始めると人数余って悲しい事にならないとも限らないさ

それと
  VB質問スレと Delphi質問スレみても VBの方に放置が多いぞ

もっとガンバレ
>さすがに今回は Object型は捨てられると思うけど
んなこたない。C#にもスタックに割り当てられるオブジェクトはある。
System.Object
おいおい、関数内関数のどこがObjectなのか誰か説明してくれよ。
都合悪いときにアフォ?で済ませんな。
>>636
>Objectなのか誰か説明してくれよ。
オブジェクト=OOPとか思ってる人にはダメです。
>>637
本当だね。636は分かってなさすぎ。
え?Object PascalってOOP Pascalって意味じゃなかったの?そりゃ
すまんかった。てっきりそうなのかと。

で、Objectって何を指してるんだい?
おいおい、forや{のどこがObjectなのか誰か説明してくれよ。
C#って本当にオブジェクト指向なのか?
>>639=598
Object Pascal はオブジェクト指向Pascalの意味。
でどうして君は、関数内関数はオブジェクト指向を無視した構造だと
考える訳?
642デフォルトの名無しさん:02/05/24 20:18
Del厨ってオブジェクト指向分かってないんだな。(嘲笑激藁
>>640がイタすぎて見てらんない。
>>642
プッ 答エラレナインダネ
>>642 そのレスつけるのって、仕事か何かですか
まあお前らはsmarttalkでも使ってなさいってこった。
>>643
揶揄だとわからん君の方がイタい
648デフォルトの名無しさん:02/05/24 20:27
Pascalなんかやってると構造化のまま頭が固まってしまうんだな。(嘲笑禿藁
>>634 既に BCB++では捨てられてるから
 (_  ̄ ( 0 0 ) ̄_) < 嘲笑禿藁
     ↑>>648
/* コメントがオブジェクトなOOPLってある? */.WriteLine();
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | <  >>649 BCB++って何
   \|   \_/ /  \_________________
     \____/
   ______.ノ       (⌒)
  //::::::::|-、 ,-/::::::ノ ~.レ-r┐
/ /:::::::::::|  /:::::ノ__ | .| ト、
| /:::::::::::::::| 〈 ̄   `-Lλ_レ′
レ::::::::::::::::::|/::: ̄`ー‐---‐′
Borland C++ Builder++
654デフォルトの名無しさん:02/05/24 20:31
あーあー。せっかくの議論をAAで潰してるよ。
Del厨って卑怯だね。(嘲笑激藁
>>648
オブジェクト指向と構造化は相反するものではありませんが?
え?え?Object PascalはやっぱりOO Pascalなのかい?どっちなんだよ、まったく。

関数内関数って局所化ができてない証拠でしょ?その内部関数はどうして
再利用できない場所に埋め込むの?再利用しないならどうして関数化するの?
>>655
相反するなんてどこにも書いてませんが?
>>649
C++のclass, structはデフォルトで
思いっきりスタックに割り当てられてるような・・・
>>656
俺はテクニック知ってるんだぞー、って。(嘲笑藁
>>656
インライン関数的な発想でしょ。
嘲笑激藁
藁激嘲笑
我愉快成
笑激嘲藁
>>656
 それでは private な関数はどうして privateにするのですか?

 片方はブロックを作ればいつでも変数を宣言出来たり、ブロックを
 作らなくてもどこでも変数を宣言出来ます。

 逆にpascalは関数の内部でも関数が作れます。

 それはそれぞれのスタイルであり、OOとは関係ありません
マジレスすんなー
してもきっと理解できないぞー
要はDelphiではこんなことができます、すごいでしょーっていう自己満足なんでしょ?
ただ煽りたいだけなのさー
>>668
建前

>>669
本音
今頭にきてる奴はこのスレ覗くなー
相手が相手だから議論しても得るものないぞー
>>665
すまん、Object Pascalはまったくわからないんだが、Object Pascalには
public関数(メソッド?)とprivate関数という区別はないんだね?しかも、
関数内関数は定義している関数とは別の関数からでも呼び出せるんだね?

うっそー、ちがうっしょ。privateメソッドと関数内関数はまったく
ちがうじゃん。クラス内で再利用できるからprivateめそっどにするんだぜ。
その関数でしか使わないんじゃあprivateメソッドとは並べらんないよ。
視野が狭い上に偏っとるな
>>672
>すまん、Object Pascalはまったくわからないんだが
出てこないように。相手のこと知らないのに相手のこととやかく言うのって失礼だと思うが。
>>672
関数内で再利用できるから、関数内関数にするんだぜ?

関数内で再利用、クラス内で再利用、ユニット内で再利用、
アプリケーション内で再利用。どれも再利用という観点から見れば
同じ。

 関数内関数は
C++でいえば、関数でクラス定義をしたメソッドのようなものです

上手に使う人もいますし、逆に使わない人も居ます。それだけでしょう
677デフォルトの名無しさん:02/05/24 20:51
>>674
初心者にきちんと説明できない人が上級者気取りですか?(嘲笑激藁
再帰を含む処理は、関数内関数を使うと特にスマートにかけますよ。
だから >>595は 再帰処理を書く時のクセでそう書いたのでしょう
>>675
ローカル変数も関数内で再利用できるNE!
メソッド内メソッドの最大にして唯一のメリットはスコープを最小にして、
クラスのprivateすら汚さないようにできることだな。
Cの
{
 ...
 {
  int i;
 }
}
みたいなもんだ。
>>679
それは再利用とは言わん。ただのズボラだーよ
関数内関数って関数の中でだけ使える変数じゃなくて関数ってだけでしょ。
長い関数を細かく分けるときにスコープを広げずに分けられるから便利なんだよなぁ。
俺pascalやってないけど関数内関数は他の言語でもほしい。
683デフォルトの名無しさん:02/05/24 20:58
関数化という発想しか先に来ないのが構造化Del厨の哀れな頭脳構造。(嘲笑激藁
うーん、どうでもよくなった。関数内関数かー。。。うーん、
やっぱどうでもいいや。じゃましたね。
まあC系でも

int func(void){
int a=0;
void privateFunc(int n){ a+=n;};
・・・

}
みたいな感じで書ければ便利とは思うけどねブロックに名前が付けられのもあるんだから
ついでに呼び出し出来るようにしても良いように思うけど
ちょっと欲しい
687デフォルトの名無しさん:02/05/24 21:05
今日もDelphiの完全勝利だな。
では家元は帰るぞ。
>>682
長い関数を分けるという考え方はOOP的じゃないけどな。
VB vs Delphiくらいがちょうどいいんじゃないか?
>>688
OOPだったら長い関数はどうするんだ?
>>677 あなた初心者? 初心者なら聞く時にすべき態度があるとは思いませんか?
>688
分割統治はOOに限らず普遍的な考え方だね。
693関数内関数の例:02/05/24 21:09
function FourNum(s:string):double ;
var num:double;
var sym:char;
 procedure addsub;forward;
 procedure next;
 var i,j:integer;
 const sep='^+-/*()<>';
 begin
  if s='' then begin sym:=#0;exit;end;
  for j:=1 to length(sep) do
  if s[1]=sep[j] then begin sym:=s[1]; delete(s,1,1);s:=trim(s); exit;end ;
  sym:=#1;
  for i:=2 to length(s) do
  for j:=1 to length(sep) do
  if s[i]=sep[j] then begin
    num:=StrToFloat(copy(s,1,i-1)); delete(s,1,i-1); exit;end;
  num:=StrToFloat(s);s:='';
 end;
  procedure factor;
  begin
  if(sym = #1) then next
  else if(sym = '(') then
   begin next; addsub;
     if(sym <> ')') then raise Exception.Create(' )がない');
     next;
   end
   else raise Exception.Create('数があるべき');
  end;
  procedure muldiv;
  var savenum:double;  var oldsym:char;
  begin
  factor;
  while (sym in ['*','/','^'] ) do begin
   savenum:=num;oldsym:=sym; next;
  factor;
   case oldsym of
      '*': num:=savenum*num;
      '/': num:=savenum/num;
      '^': num:=power(savenum,num);
   end;
  end;
  end;
 procedure addsub;
 var savenum:double; var oldsym:char;
 begin
   case sym of
    '+': begin next; muldiv;  end;
    '-': begin next; muldiv; num:=-num; end;
     else    muldiv;
   end;
  while (sym in [ '+','-'] ) do
   begin savenum:=num;oldsym:=sym; next; muldiv;
    case oldsym of
    '+': num:=savenum+num;
    '-': num:=savenum-num;
    end;
   end;
 end;
begin  next;  addsub;  Result:=num;
end;
要は何も考えてない設計のやっつけ処置でしょ? > 関数内関数
それはやりすぎ。
俺ならクラス&メソッドに分割して
必要なら関数でラップするよ。
>>693
わざと悪例を出したの?
>694 どうやら正解のようだ
いつからここはこんな雰囲気悪くなったの?
699693:02/05/24 21:18
コレは前に書いたコードだけど、もちろん自分で使うコードはクラス&メソッドで書いてるよ

ただ、ちょっとした文字列処理を手軽に書くにはこれは結構便利だという例ね
素早く、そして短く書ける。

そして大事な事は、このコードはクラスに変更するのも簡単だという事
700693:02/05/24 21:25
>>694
確かに、関数内関数を使うと、
再帰的な処理を、何も考えずに、素直に書く事が出来る。

これはやっつけ仕事の典型かもしれないけど、コードを見てくれれば判ると思うけど、
たとえ何も考えずに素直に書いても、後でクラス化するのが、逆に簡単になってるでしょ?
メソッドの抽出のリファクタリングをするときなんか関数内関数があると便利だよね。
やってることがブビ厨と変わらないね。 > やっつけコーディング
>>702
努力は認める。でも、今は出てくるな。
704松原潤:02/05/24 21:38
Delフサギコをやってきます
>>704
マ板でも嘘書いてたので、よろしく。
706デフォルトの名無しさん:02/05/24 21:52
Del厨って構造化プログラミングしかできないのか。
これじゃあVB.NET使いの方がはるかにレベルが高いよ。
707デフォルトの名無しさん:02/05/24 21:53
VB.NET使いなんているの?
708おいおい:02/05/24 21:55
>>707 >706はアフォだから放置しろ(ゲラ
>>707
この板の中では聞いたこと無い。
710デフォルトの名無しさん:02/05/24 21:58
Del厨って言い返せなくなるとワンパターンでアフォってしか言えなくなるんだね。
711デフォルトの名無しさん:02/05/24 21:58
>>706
Del厨って構造化プログラミングしかできないのか。
これじゃあVB.NET使い(俺)の方がはるかにレベルが高いよ。
他の環境で十分な互換性を持って動かないと windows上でも使われないでしょ
Windowsと同等にWinCE上でも動くとか

XBOX上と共用のエロゲが作れるとか、
>>712
既に割り切った。
Windows64(w)で再コンパイルなしで動けばいいや。
Windows64上でも 常識的にはWin32もWin16もDOS窓も動くんではないの?
>>714
コンソールはともかく16bitのDOSはどうよ?
>>715 Win16が動くなら 当然DOSアプリも動くでしょう

俺、Delphi1で16bitアプリ作る事あるよ それをW2000で走らせたって快適に動くし
>>714
Intelって64ビットで現在のx86捨てるんじゃなかったっけ?
だとしたらエミュレーション以外では動かない。
じゃあ、過去のしがらみでウニウニしない.NETアプリの方が良いかと。
Win16が動くなら 当然DOSアプリも動くでしょう
DOSアプリやWin16アプリを エミュレーションで動かしても快適に動くでしょう
逆にWin16/DOSは動かなくても Win32アプリが動かない Win64を作っても売れないでしょ?

そして Win32アプリを動かすなら ついでにWin16/DOSアプリを動かすのも大した手間ではないだろし
Del厨のせいでクソスレになってしまった
722デフォルトの名無しさん:02/05/24 22:28
>>720
それはハードの問題でIA64は286以前とは互換性ないとか
そういうハナシだったはず。
余計なトランジスタ使うと性能上がらないと思われ。
初めからクソスレだろ。C#厨は逝けよ。
>>723
Delphi.NETがVB.NETにも及ばない中途半端なものだと分かったからって
そうカリカリするなよ。
「.NETなんて流行らねー」とか言ってたDel厨が何事もなかったかのように.NETの片棒を担ぐのか。
負け犬の典型だな。(プッ
だから 既に Ntdos.sys エミュレータで DOSだってエミュレートしてるんだし
86命令のエミュレートが増えたくらいで死ぬほど遅くはならないでしょう
>>724
VB.NETのすごさが知りたい。
サンプルを交えてVB.NETのすごさについて教えてくれ。
>>726
だからさ、そうやって「一部動かないプログラムがあります」とするより
今の内に.NETと言うプログラミングスタイルと完全マルチWindowsバイナリを浸透させたいと。
Delphi、安くすればもっと普及するだろうに。
新バージョンがでたら、旧バージョンを大幅に安くするとか。
でもさ.NETついてもランタイム要るんだろ?
駄目じゃん(藁
Delphiは消えゆく運命なのに今更安くしても意味無いだろ。
>>729
世の中には無料にしても全然普及しないものもあるんだよ。(嘲笑激藁
C#厨、Del厨以外の普通の人は放置願います。
よろしくお願いします。
>>728

逆に、M$には .NET だけしか移行出来ませんみたいなWin64出して欲しいな

それなら、Linux64 で Win32エミュレートすれば勝てそう
>>731
VisualC#でネイティブコンパイルできたら、
俺もDelphiに未練を感じたりしないんだがな。残念。
ていうか、どうしよう。
>>734
いっそIntelに.NETコンピュータを。
C#に対抗する前にまずVB.NETに勝とうよ。 > Delphi
VB.NETにも勝てないことを認めたからDelphi.NETを出すんでしょ?
で、過去のDelphiとの互換性は一切捨てると。
>>737
取りあえず敵を攻撃するなら敵を知ってからにしてくれ。
ちゃんちゃらおかしい。
>>737 なんかキミの妄想らしい書き込み、残念だけど理解してあげられない。ゴメンな
Delphi.NETって普及するの?
でもさDelphi.NETついてもランタイム要るんだろ?
駄目じゃん(藁
>>740
.NETが普及すればC#が普及する。
.NETが普及しなければDelphi.NETは無駄になる。
>>740
取りあえず今のところVCL->.NETコンバータ以上の使い方は見えない。
まぁ、VB.NETもコンバータだが。
DelphiのコードをC#にコンバートした方が賢明じゃない?
>>743
VB.NETはコンバータじゃないよ。
>>743
VBにはマクロ言語としての使い道「も」ある。
Delphiには何の使い道もない。
>>746
> VBにはマクロ言語としての使い道「も」ある。
必要性は疑問視されているが。
マクロ言語って何?
>>748
VS.NETのオートメーション。
将来のOfficeもVB.NETベースになる。
750デフォルトの名無しさん:02/05/24 23:03
Delphi.NETってまともな使い道がないからBorConでもほとんど話題にならなかったんだろ?
ハッタリ発表には笑ったよ。これが倒産前の会社の断末魔の叫びかって。
>>749
純粋に疑問。
C#でダメな理由とかあったの?
コンパイルすればどれだって・・・。
もうちょいまともな話が出ないかなぁ。
Del厨が流れ込んでくるとイヤなので、もうしばらく某にはがんばってほしいです。
>>80
zは 1,2,4,8,16,...2^64迄の65個しかない
x+y=2^64/z だからこれは沢山あるね
>>751
C#だとレイトバインドがめどいから。
>>755
めんどいの間違い
>>756
そんな間違いどうでも良いからレイトバインドについて少し書いて欲しかった。
>>757
実行時にリフレクション経由で実行すること。
コンパイル時に型の情報がいらない。
>>758
>コンパイル時に型の情報がいらない。
C言語の時みたく渡す引数の型渡すとアボーンとか?
>>759
そりはparamsのことを言ってない?
>>758
すべて逆。
/*
 2.8 リフレクション (Reflection) とは ?

 .NET のコンパイラはすべて、作成したモジュールの中に定義される
 タイプに関するメタデータを作成します。このメタデータは、モジュールの
 中に同梱されます。また、モジュールはさらに、アセンブリにまとめられます。
 メタデータは、リフレクション(Reflection) という方法でアクセスされます。
 System.Reflection ネームスペースの中には、モジュールやアセンブリに
 入っているタイプにアクセスするためのクラスがあります。
 Reflection をつかって、.NET のメタベースにアクセスするのは、
 ITypeLib/ITypeInfo をつかって、COM のタイプライブラリのデータにアクセス
 するのと同じです。目的もよく似ています。
 たとえば、コンテキスト、プロセス、マシン間でマーシャリングするデータの
 サイズを決定する場合に利用されます。
 普通のアプリケーションの開発者が、Reflection を直接利用することは
 あまりありません。
*/

[dotNET:00054] .NET FAQ : 2.  基本技術 より

これってそのモジュールで使われている型のデータをクラスとして持っていて、
アクセスすることが出来るってこと??
まだまだ理解が甘いですな。俺。
>>761
具体的に
これを VB.NET で書いてみて

uses Windows, SysUtils, Graphics,forms;
var x,y,xs,ys,c,i:Integer;
begin
 with TCanvas.Create do try
  Handle:=GetDC(0);
  xs:=(GetSystemMetrics(0));
  ys:=(GetSystemMetrics(1));
  while GetKeyState(1)>= 0 do
  for i:=0 to 10000 do begin
   x:=random(xs);
   y:=random(ys);
   Pixels[x,y]:= Pixels[x+1,y+1];
  end;
 finally free;InvalidateRect(0,nil,True); end;
end.
>>764
GDIなんて原始的なもの使わないよ。
>>765 使わないで書けるなら書いてみて
>>766
で、君は何厨だ?
Delphi厨でないことは確かだが。
>>765
単に何をやっているのか理解できないだけでしょ(藁
>>766
System.Drawing
>>768
何のクラスかも書いてないし。
>>770
API使いまくりのソースじゃん。
>>764を temp.pas とかで保存して

コンパイルは コンソールから dcc32 temp.pas とかして 出来た temp.exeを実行
>>773
いや、だからお前は何がしたいわけ?
って言うかコンパイルできるPascalソースとしては不完全だろう、それ。
>>774
そのままでコンパイルは出来るけど、標準パスカル互換にしたいなら
program 保存した時のソース名(input, output);
を1行目に追加してくれ
>>775
一行目に答えてくれ。
単にこのスレの VB.NET厨とやらの実力が見たいだけ >>776
>>764
これがObject Pascalのソースか。(@_@)
(´-`).。oO(どこがオブジェクト指向なんだろ?)
感想はいいからコード書いてみて たった15行だ
動作が判らなかったら実行してみればいい
>>778
#include <stdio>

namespase std;

int main()
{
printf("%d",5);
return 1;
}

>>778
話をすり替えるなよ。
>>781
俺もDel厨だけどさ、わざわざGDIで勝負挑んでいるのは痛い。
.NETで面倒なところを突かないと勝てないのかと思われる。
別にクイックソートとかでも言い訳だし。
C#厨だけど、GDIってわけじゃないような。
>>783
ごみん、ソース読んでなかった。
あれみてGDIって叫んだ奴も相当だな・・・。
785デフォルトの名無しさん:02/05/25 00:15
GUIでしか勝負してこないのがDel厨らしくていいですね。(嘲笑激藁
>>785
いや、お前もソース読もう。
誰か GUI で勝負した?
788デフォルトの名無しさん:02/05/25 00:20
何の説明もなしにソースだけ見せてくるのが末端PGらしくていいですね。(嘲笑禿藁
>>788
悪いが同意。
 嘲 笑 激 藁
説明いらんじゃ・・・。
Del厨の常識は正当な言語ユーザにとっては非常識です。
たとえば?
お題は文章のほうがいいぞってことだね。
>>793
ブロックを囲むのにbegin〜endなんて使わない。
ああ、そんな程度のことか。
ちょっくら聞きたいんだけど、VS.NETのMSDNのHELPって実行形式なんだけど、
あれって、.NET Framework入れれば、VS.NETいれてない他のパソコンでも見られる?
ネットワーク上の他のパソコンから見たいんだけど、コンポーネントがないとか言われて
見られなかったよ。
試したことないけど、見れると思う。
VS.NET入れてないマシンでも最新のMSDN入れるとあれだから。
>>795
http://pc.2ch.net/test/read.cgi/prog/1022150734/19-27
↑ここでも同じ話が・・・
800デフォルトの名無しさん:02/05/25 02:04
>>795
由緒正しいAlgol直系の言語だから。
>>792
元々、Cの方が異端という感じだからね
「正当な言語」なんて言われるとくすぐったいんじゃないかな
802デフォルトの名無しさん:02/05/25 02:15
なんでC言語は普及したの?
MSX-Cのせい?
>>802
とにかくUNIXの影響が大きいし(CはUNIXのために作られた言語)
M$がWindowsに採用したことも大きかった

実はM$もPASCALを出してたんだけど
某のTurbo Pascalにこてんぱんにやられて姿を消した
804デフォルトの名無しさん:02/05/25 02:21
Pascalはコンパイラ言語なので、ベーシックより高速
って宣伝されていたら歴史は違ったものになっていたでしょう。
>M$がWindowsに採用したことも大きかった
逆でしょ。十分普及してたから採用した。
>>805
他の選択肢も有り得た
例えばMacはPascalの世界だった
807デフォルトの名無しさん:02/05/25 03:09
APIがPASCAL呼び出し規約だったのはPascalで開発されていたからでしょ?
808デフォルトの名無しさん:02/05/25 03:28
>>807
どのみちPascalのスタックフレームにはならないよ。
あのブロックスコープを実現する構造は
API呼び出しに持って来れないから、Pascal側でも
規約が必要。
809デフォルトの名無しさん:02/05/25 03:37
MS の Pascal は例によって買収したものだったから、
保守もバージョンアップもする技術がなくて、おまけに
Turbo Pascal の安さにもかなわなくて、静かに去った。
810デフォルトの名無しさん:02/05/25 03:46
C#もヘイルスバーグを買収して作ったんでしょ。
まぁ、QuickCはMSの作った開発環境の中では良く出来てたソフトだったしな。
BorConでもDelphiの話題はあまりぱっとしなかったね。
Delphi7はそれだけ中途半端ということなのかな。
昔はちゃんとプログラミングを勉強した人間なら Pascal は
知ってて当然の言語だったんだけどな。
俺的にはDelphiなんかを無理やり.NET対応させるより、
むしろC#のRADをスクラッチで開発して欲しかった。
JBuilderのC#版みたいな感じでね。
それで非MS環境(ApacheとかCORBAとか)でも開発できるようにすれば
間違いなくキラーアプリになったはず。
それにしてもVCL、CLX、.NET版VCLそれぞれで整合性を取れるんだろうか。
分化だけは勘弁して欲しい。
>>814
良い事言うね。Delphiにこだわり過ぎてるのが敗因だと俺も思う。
Delphi.NETがC#で書かれてたら本末転倒だよな。(w
http://ascii24.com/news/i/topi/article/2002/05/23/imageview/images685279.jpg.html

この画面見てて思ったんだけど、T〜クラスって.NETのクラスをラッピングしてるだけっぽいよね。
なんでこんな中途半端なことするんだろ。J#の二の舞だよ。
J#は既に終わったことにされてるのですね。
不憫だな。
821デフォルトの名無しさん:02/05/25 05:45
http://ascii24.com/news/i/topi/article/2002/05/23/635945-000.html

ますます分からん。

Delphi7(Aurora)≠Delphi for .NET (ただしPreview版を同梱)
Delphi for .NET(Galileo)≠Delphi8
J#はソースの互換性はものすごく高い。
(J++のソースも変更なしでほとんどコンパイルが通ってしまう。)
ただ、JDKやWFCのクラスを無理やりラップしまくってるのでまともなパフォーマンスが出ない。
(はっきり言ってJScript.NETより遅いこともある。)
VCL for .NETが互換性確保のためにこうならないことを祈る。
823デフォルトの名無しさん:02/05/25 05:51
Charlotteなんて言語を作ってたのか
虹色ドリーム?
>>823
言語ってほどのものじゃないでしょ。
ソースを見ればどういうILを出しそうか容易に想像がつく。
BorConはJava vs .NETという下衆な煽りをしなかったのは非常に好感が持てる。
こういうのって初めてじゃないのかな?
>>826
そりゃあ、どっちかについてしまったら商品が成り立たなくなる。(w
>>827
いや、煽るだけ煽って結論は一切出さずってのがよくあるでしょ。
あるね。
むかつく!
>>828
このスレとかね
>>830
勝負はついてるでしょ。
>>831 どっち側から知らないけど、ついてないと思えばいつでも参戦してみるがよし

でも、しょうもない事いうより、どんどんコード出して挑戦するのが勝利の近道
どっちかがどっちかに勝つと本気で思ってるの?
得意分野が判明するだけで十分です
835デフォルトの名無しさん:02/05/25 13:35
今月号の雑誌をいろいろ読んできたけど、.NET一色という感じ。
日経ソフトウェアなんかはWindowsプログラミング = .NETと言わんばかりだ。
Win2000 WorldのCD-ROMにも.NETがついてるし、来月号のCマガでもついてくる。
もはや非.NETの開発環境なんて見向きもされないね。
Delphiの連載記事もますます立場がなくなるんじゃないの?
>>835
「Windows上では」の話ね。一応。
>>835
正直、これからプログラミングを始める人は.NETに対応してないwin開発環境は選ばないと思う。
DirectXや画像処理の本までVB.NETベースで出てるのには驚いた。
>>835
日経SW は MS よりなんですぅ・・・
  営業が MS 製品関連記事なら売れると思ってる。
  後、編集に知識がない。VB房ばっか。

Cマガ は 某国 よりなんですぅ・・・
  営業も編集もコアなオタクが揃ってる。
初心者はブビマガと日経ドキュソウェアで.NETに洗脳されてると思われ。
>>839
そういやこの2冊は「VB.NETでも十分。C#に移行する必要なし。」という
共通した結論だったな。
ヘジのインタビュー翻訳したやつ氏んでくれ。
あれじゃただのDGNだ。
ま、今年の終わり位にはDelphi.NET一色になっているでしょう。
ドグン?
>>842
雑誌の広告が?、それとも某駅の看板かな?
あ、Del厨が2chのあちこちに蔓延るってことか・・・鬱だ死のう
こうしてDelphiはオブジェクト指向教育言語となったとさ。
めでたし、めでたし。
ありえん・・・
SmalltalkかJavaの方が教育用としてはいいだろ。
そういやヘジのインタビュー、某を辞めた理由にも触れてたね。
引き抜かれたとかそういうことじゃなくて某がダメダメだっただけじゃん。(w
>>847
実務的にはGCのある言語を入門用とするのは危険な気がする。
TurboBasic復活キボンヌ
>>849
じゃあJavaもC#もVB.NETもDelphi.NETも駄目じゃん
>>851
アセンブラ->C/C++をやってから、GC言語に移行するべし。
>>851
そうだと思う。
C#書いててこのオブジェクトたちは無事に解放されるのだろうかと不安になった。
理想的なキャリアはJavaScript→HSP→VBかな?
>>854
うん、使い捨てるのに何の躊躇もない。w
>>854
VBのまま留まってしまったか・・・
>>848
どこ?
858正直な感想:02/05/25 23:42

Delphi,VC++歴7年目のユーザです。
8:2で Delphi を使ってきたアマチュアです。

ネイティブコンパイラでのアプリ作成用の環境として
VC++ より Delphi を勧める理由をたくさん挙げることが
できます。.NETが出て、その上の C# と比較すべきなのは
現行の Delphi ではなく、まだ発売されていない Delphi for
.NET のほうでしょう。.NET frameworks の上のプログラミング
言語は、それが提供するクラスオブジェクトをラッピングした
ライブラリを持つことにより、ライブラリの差はあまりなくな
るでしょう。その意味では、開発環境としての性能には
どれを選んでも大差なくなるでしょう。では、C# と Delphi.NET
ではどうでしょうか?

明らかに半年以上遅れて発売されたものより、OSをつくった
メーカがほぼその環境にネイティブであるべき C# が優勢である
ことは確実です。Pascal はふるい言語なので、これまでいろ
いろな事情を引きずってきています。言語としても、たぶん、
C# の方が後発である分だけ有利です。わたしは、現行の Delphi
の熱心な支持者であることは間違いありませんが、Delphi.NET が
出たとしても、C# より優先してそちらを使う、ということは考え
られません。

現行の Delphi ユーザのみなさんのお考えを伺いたいと思います。
やはり Object Pascal がいいですか? わたしは大好きですが。

>>858
過去ログ読んでね。
>>858
自己満足の美しいプログラム・・・Delphi.NET
とりあえずお仕事で使うよな→自習中・・・C#.NET
VS6出荷終了?、しかたないな→VB.NET
861858:02/05/26 00:06
>>859

過去ログって、このスレ全部読みましたが?
でも、誰が Delphi ユーザだか分からないので。
862858:02/05/26 00:10
>>860
レス、サンクス

各言語(環境)に対するスタンスは分かりましたが、
あなたがひとつ選ぶとすると、どれでしょうか?


>>854
JavaScriptも一応OOPLだからHSPの時点でレベルダウンしてるな。
>>861
Delphiユーザは.NETではC#という人が多いと思われます(漏れも〜)

Delphi.NETにはコンバータとしてのみ期待します
>>863
俺もそう思たヨ。
866858:02/05/26 00:27
>>864
レス、ありがと

そうですか、そういう意味ではほぼ「結論」がでているのですね。
わかりました。

うーむ、Delphi かわいそう、の気もしますね。
>>864
全面的に同意。
868860:02/05/26 00:43
>>862
周りに合わせるのも仕事の内だからVB.NETだな。。。
869858:02/05/26 00:50
>>868

回答ありがとう

「仕事」についてはアマには分かりませんが、VB.NET ですか。
.NET 上での仕事も VB が多いんですかねぇ。過去の資産ですか。
VB.NET についてはよく知りませんが、旧VB とは別物なのでしょ
うね。

みなさん、ありがとうございました。
C# に行きます!

>>869
おいでませ♪
871860:02/05/26 01:22
>>869
いや、862が一つ選べというので、VB.NETって書いただけだよ
当然C#もやってます
872858:02/05/26 01:31
>>871

はい、>>860 で、そのことを承知していました。
アマにはプロの「仕事」についての厳しさみたいなものが
分かりませんので、869 みたいに書いたんです。
「ひとつ選べ」というのは、もしわたしに勧めるとしたら
という意味でした。860 の内容から、VB.NET を勧めたい
わけではないことは分かっていました。

ありがとうございました。
873858:02/05/26 02:00
>>870

諸般の事情から1ヶ月後くらいになりますが、よろしく。

でも、ネイティブコンパイラとしての Delphi は使い続ける
つもりです。まぁ、もうバージョンアップはしませんが。
ネイティブコンパイラのDelphiもバージョンアップするだろ。
>>874
マジですか?
ネジです。
>>875
D7はネイティブ(.NETじゃない)
その次が.NETらしいが、ネイティブと分化するのかどうかまで知らない
分かれてもたいした機能は持てそうにないよね。
CLXを強化していくのかな。
>>874

858 はしないという意味だろ
>>878
あちこちでDelphi.NETが叩かれまくってているが、
.NET Frameworkを使うとDelphiって簡単に移植できそうに思うやついないか?
というか .NET って クライアントサイドじゃ使われ始めるのに3年はかかるだろ
小さな企業じゃ、まだまだWin95  RAM32M HD740Mなんてマシンも現役だ。
10年リースが切れる迄は捨てる訳にはゆかない。
この不況だから、金使うなら従業員の雇用守る方に使わなけりゃね


ただ、業者は3年先の為に準備は必要だろう。
 VB6で業務アプリやってた所はこの3年の間が準備期間だ

Delphi.NETが VCLで素直に書いてそのまま動くなら、この3年の間に
 VB->Delphi->Delphi.NETなんて流れもあるかもしれないね。
M$は VB6 と VB.NET の間に VB7を入れるべきだった
でなければ ネイテブアプリを書けるC#を用意すべきだったと思う
883デフォルトの名無しさん:02/05/26 08:57
>>881
> VB->Delphi->Delphi.NETなんて流れ

あるわけねー。
でもボウランドはそれを狙ってかもね。M$のみせてる唯一の隙だし
VB6 -> VB.NET の壁は結構高い これが越えられるならVB6->C#でも同じだろう

VB使いの勉強はいつでもOJTなのに、VB.NET はまだ仕事に使えないとなると
Delphiに移動という事かな
>>885
だってVBってHSPと似たようなポジションでしょう。
.NETでやっと他言語に追いつけたかな?って感じ。
歴史から見れば 逆だと思うけどね >>886
>>886
どういう意味?>似たようなポジション
#業務にHSP使うっていうのは聞いたことないが・・・導入事例キボンヌ(あったら面白いな)
Office.NETのマクロにVB.NETが使われるだろうから、
.NETはVB.NETで一本でという人は多いと思うよ。
>>889 ? .NET なんだからどの言語でもマクロに出来る訳でしょ? 
マルチリンガルをする余裕のない人が多いんだろうね・・・楽しいのに
>>890
VSAに対応してるのは現時点ではVBのみ。
>>890
過去ログ読もうか。
>>891
同じ用途で同機能の言語2つ覚えても楽しくないし。
>891
その楽しさを奪うのが.NETです。
>>894
それは良く分かるね

でもマクロでVBを強要されるなら、尚更C#を使いたくなるけどね
http://www.microsoft.com/japan/msdn/columns/scripting/scripting06112001.asp


Visual Studio for Applications deha

1 Visual Basic .NET
2 Script .NET
3 およびコンパイル済みのコードをコンパイルしないで実行できるスクリプト エンジン

の3つがサポートされているらしい
>>897
>3 およびコンパイル済みのコードをコンパイルしないで実行できるスクリプト エンジン
MSILインタプリタ?
899Delフサギコ ◆zE1iiRdQ :02/05/27 09:36
   _____________
 /
 | 既存のVB、VC++使いは
 | 今までの蓄積したものがなくなってしまった,,,
 | という感覚はあるんでしょうか?
 | 特にMFC使いとかは…VC++.NETがあるからいいのかな?
 \_ ____________
    |/
   ∧,,∧
  ミ,,゚Д゚ミy━~~
   U   ミ  ヤスカッタので
 〜ミ   ミ  VC#コウタ
   U''U   VSじゃないと
        クラスが自分で作れないみたいだ…
        なんでかしら。
         
>>899
(゚Д゚)ハァ?
SDKでもクラスライブラリは作れるだろうが。
901@IT掲示板より:02/05/27 11:38
Personalですか…。
会社にEnterpriseがあるのなら、マニュアル等を見る事は出来るんですよね。
それなら、まだ良いですよ。
最近Personalを使う人が少し増えてる様ですが、ボーランドはドキュメントが弱いですから、かなり混乱してる人もいるみたいです。
私はPersonalはボーランド自身にとって良くないなという印象を持ってます。

最近ボーランドの製品高いですよね!
開発レベルと製造レベルを区別してないというか、あらゆる仕様を満たすツールとなると、定価36万のEnterpriseですからね!
それで、顧客の要望に応えるべくC++Builderも揃えるとなると、両方で72万です。
バージョンアップ料金も他のスイートに比較すると、無茶苦茶高いですから!
顧客にボーランドツールの良さを納得させるには、具体的に作って見せるのが一番良いんですが、それをボーランド自身が妨害しているという印象を私は持ちますね!
@ITの「Java Solution」でも、内容の割にJBuilderが高過ぎるという話が出てますよ。

その点、MSは全てのサーバー、それにあらゆる開発ツールが付いて来るMSDNユニバーサルでも、トータル実質で30万円弱あれば、購入できます。
これがあれば、あらゆる状況での開発が出来ますからね!
それに、サポート・サービスもセットで付いて来ます!
ボーランドは全くないですよ!

だから、Delphiの製品版を店頭で見ないのは、無理ないですよ。
今のEnterpriseがProfessional価格になれば、自然に売れて来ると思ってましたが、もう時期的に遅いですね!
一番大切なのは、クラスライブラリですから!
本当は、ボーランドは今までに自社のクラスライブラリである、VCL(CLX)を普及させておく必要があったのですが。
(だから、期待が持てるとすれば、Delphi.Netですね。ボーランドの対応を私は見たいと思います!)

だから、VisualStudio.NET 私は売れると思いますよ。
かなりの人がMSDNを買ってるんじゃないですか?
私は、そう感じます。
>>899
なくなってしまっていないので、当然そういう感覚はありません。

>>901
こいつはアフォです。相手にするのはやめましょう。ビツクリマーク使いすぎじゃボケェ
>>902
この意見に限ってはアフォじゃないと思う。正論。
個々の問題はさておき、基本的にアフォなのは、あらゆる仕様を満たすツールなんて視点を持ち出して、
しかもそれで比較してるつもりの点だろ
価格・機能・サービス・品質どれをとってもBorlandが劣ってると指摘してるだけ。
そして、それは事実。
>>905
そうか、ついでに、
価格・機能・サービス・品質のどれをとっても日本人が劣っているとも指摘しといてくれ
907Delフサギコ ◆zE1iiRdQ :02/05/27 13:02
ミ ゚Д゚彡製品を選ぶ目も日本人は劣っているとかも、追加しとくか。
>>907
そうだね。日本ではVB人口が少ないもんね。
そもそも客が道具指定してくるような仕事してて
その道具の値段が高い安いはないだろみたいな?
Del厨必死だな。(藁
市場が冷静な評価を下してることに気付けよ。(ワラ
VS.NETの方がよく売れてるだろ?
>>910 Amazonとかでは VB.NET が一番売れてるみたいだね
912デフォルトの名無しさん:02/05/27 14:05
>>910
無料のもの相手にどっちが売れてるかなんて争っても・・・
>>912
Delphiに金払ってるヤシはいないと?
MS製品に限って言えば、市場が冷静な評価を下したところなんて
見たこと無いな(w
いくらなんでもトータルの人数をM$謹製ツールとDelphiを比べるなんて乱暴です
 プログラマ人口の正規の派遣業者が1割、残りも派遣出向や受託による下僕状態です
 企業内プロも、設計とコーデングが分かれていると、どうしても人数の揃え易い
 M$謹製ツールになってしまうでしょう

Delphiは、設計もコーデングも一人こなさなければならないようなワンマンアーミー的な
スタイルを取っているプロジェクトにしか受け入れられないでしょう。
>>915
つまり趣味プログラミングにのみ適してると(w
>>916
趣味というのがプログラミングの勉強の事なら、pascalだけでなくlispとcはやっておくべきでしょう

ひとりで設計製作するスタイルを取る企業内なら、Delphiは十分に戦えると言っています。
なんか NHKスペシャルでやってたスーパー職人みたいなもんかな?

「物件を一人で受注から引渡し迄会社の代表として完了させる」とか言ってた
VC++ や VB では、ひとりでは開発できないくらい効率が
わるいのですか?

どぉりで。

>>919
VBは一人で開発しないと効率が悪い。
VC++はどれだけ充実したクラスライブラリを所持しているか次第。
>>919
どぅりで。が正解だろ。
C++Builder6 Standardはいつ無料になりますか?
>>922
せめて Delphi Professional 版には旧バージョンでもいいから
ついて欲しかった。
Delphi で作ったものを C# で作り直しているんですが、
C#で Windows.pas や WinUser.h に相当するようなものってどこかで
手に入りますか?

パラメータを素直に渡してくれないので Win32 API 呼び出しの定義を
作るのは少し面倒ですね。これに一番時間を取られてしまう。
旧来のWIN32APIそのまま叩くようなベタな移植して意味あるの?
さて、そろそろ WindowsDNA について語ろうか。
>>924
お兄さん悲しくなった。
928924:02/05/29 16:01
まだ勉強不足なもので Win32 API を使わなくても実現できるか
どうかわからない機能があるので使いたいのです。

例えばクリップボードを監視して、テキストがコピーされたら
処理するような場合です。

C# のコードを書く時に使うユーティリティ類もできれば C# で作れば勉強
になるだろうと思って作り始めたのですが、今までは気にする必要が無かった
ところで詰まったりして意外とはかどりません。

アンマネージな機能が必要な場合はこれからも Delphi (または C++ )で
やった方がいいんでしょうか。
>>928
>例えばクリップボードを監視して、テキストがコピーされたら
>処理するような場合です。

名前忘れたけどあるよ。クリップボードクラス。
930デフォルトの名無しさん:02/05/29 16:40
よっぽど古いものを除いて機能的には
.NET Framework ⊇ WIN32API
なのかな?
>>930 それは違うだろ .NET Frameworkで全ての APIがカバー出る筈がない

むしろ上手にラップしてると見るべき
>アンマネージな機能が必要な場合
  というか、VCLを使わないDelphiに、それほど魅力が無いのと同じじゃないのかい?
>>931
.NETでカバーしてない機能って例えばどんなの?
いやいやDelphiの魅力はAPIっすよ
おいらもC移植して勉強中なんだけど、API使わずにってこんなにつらいと思わなかったよ
APIなしよりはVCLなしのほうがまだいけるような気がする
不毛な仮定だな。WIN32APIだけなら
GUIアプリの開発なんてやらないよ。
936名無しさん@Emacs:02/05/29 17:31
>>933 マルチメディア回りとか
そういえばGetAsyncKeystateのなるようなものもないよね?
あったらおせーて
937Delフサギコ ◆zE1iiRdQ :02/05/29 17:32

  ∧,,∧  クリップボード更新処理はDelphiなら
 ミ,,゚Д゚彡 こんなんだけど...
  ミつ[|lllll]) 
〜ミ  ミ   APIなしでVCLとかCLXだけで何でもできたら
  U U.   Delphi製アプリはほとんどが
        Linuxでも動くけど実際は
      そうは問屋が卸してくれないみたい。

type
 TForm1 = class(TForm)
  procedure FormCreate(Sender: TObject);
  procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
  FClipNextHandle: HWND;

  procedure WMDrawClipboard(var Msg: TWMDrawClipboard);
    message WM_DRAWCLIPBOARD;
  procedure WMChangeCBChain(var Msg: TWMChangeCBChain);
    message WM_CHANGECBCHAIN;
 public
 end;

procedure TForm1.WMDrawClipboard(var Msg: TWMDrawClipboard);
begin
 inherited;

 ShowMessage('クリップボード更新');

 if FClipNextHandle<>0 then
  SendMessage(FClipNextHandle,WM_DRAWCLIPBOARD, 0, 0);
end;

procedure TForm1.WMChangeCBChain(var Msg: TWMChangeCBChain);
begin
 if Msg.Remove = FClipNextHandle then
  FClipNextHandle := Msg.Next;
 if FClipNextHandle <> 0 then
  SendMessage(FClipNextHandle, WM_CHANGECBCHAIN, Msg.Remove,Msg.Next);
end;

procedure TForm1.FormCreate(Sender: TObject);

  procedure ClipboardSetHandle;
  begin
   FClipNextHandle := SetClipboardViewer(Form1.Handle);
   if FClipNextHandle = 0 then
    if GetLastError <> 0 then
     ShowMessage('クリップボードフック失敗');
  end;

begin
 ClipboardSetHandle;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 ChangeClipboardChain(Handle, FClipNextHandle);
end;
938Delフサギコ ◆zE1iiRdQ :02/05/29 17:43
肝心なのは
SetClipboardViewer(Form1.Handle);
のAPIでFormのハンドルをクリップボードViewerに登録

WMDrawClipboardとWMChangeCBChainを
Formで受け取って

WMDrawClipboardでは
更新されたときの処理を記述するのと
次のクリップボードハンドル(FClipNextHandleで保持)
にメッセージ送る処理

WMChangeCBChainでは
クリップボードフックをはずした時の処理とかを
書いておく
って感じかしら。

C#でもAPI使うのも
メッセージ受け取りもかけるからできると思われ。
           _____________
   ∧,,∧    /
  ミ,,゚Д゚彡 < C#の練習がてらにどうでしょう。
   U  つ   \
 @ミ  ミ       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   ∪''∪ 

これを、(GUIを隠すんじゃなくて)
GUI無しのExeで
やってくれって言われると、
Delphiではちょっと難しいかも。
939Delフサギコ ◆zE1iiRdQ :02/05/29 17:56
    ∧,,∧  次スレたてますた。
   ミ,,゚Д゚彡
    ミ つ旦)~~  
  〜と,,,~),,~) 

C# 仲良し Delphi Round 2
http://pc.2ch.net/test/read.cgi/tech/1022662451/l50

戦わないようにスレ名を工夫しますた。

1000逝ったらDat落ちするのでご注意どぞ
>>928-929
C#でもAPI使わないとできないみたいだね。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=166&forum=7
942デフォルトの名無しさん:02/05/29 21:11











943デフォルトの名無しさん:02/07/08 04:24
1000トリガッセン ハジメマスカ
イヤ
945デフォルトの名無しさん:02/07/17 00:38
でどうなった?
何が?
1000
1000?
1000!!!!!!
950!
951デフォルトの名無しさん:02/10/04 04:57
最近Personalを使う人が少し増えてる様ですが、ボーランドはドキュメントが弱いですから、かなり混乱してる人もいるみたいです。
ume
953デフォルトの名無しさん:02/10/14 10:57
age
954デフォルトの名無しさん:02/11/01 02:21
1000!
つーかCodeDomでしょ?
C#使いたかったけど、ハードディスク食いすぎで挫折
960名無しさん:03/01/05 02:28
                                     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\
Λ_Λ  | 君さぁ こんなスレッド立てるから          |
( ´∀`)< 厨房って言われちゃうんだよ             |
( ΛΛ つ >―――――――――――――――――――‐<
 ( ゚Д゚) < おまえのことを必要としてる奴なんて         |
 /つつ  | いないんだからさっさと回線切って首吊れ     |
       \____________________/

(-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ…
(∩∩) (∩∩) (∩∩)

(-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ…
(∩∩) (∩∩) (∩∩)

(-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ… (-_-) ハヤクシンデネ…
(∩∩) (∩∩) (∩∩)
埋め
>>638
そのキャップだけはいろんな意味で許せん。僕によこせ
>>50
タイプミス
スマソ
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
別にいいじゃん。個人のサイトだって掲示板書けば取られるし
IP表示せんと書けない掲示板なんていっぱいあるし
アクセス解析で取られまくりだし。むしろ今更何があかんの?て感じ
ヤフーの投票文、「2ちゃんねるがアクセスログ記録を始めましたが何か?」にしてホスイ。
あと

壊れたファイルは勘弁して下さい。

時期的な事もありますし。
只、今更 「最高の自分的に日程で」小説書きたいとか
もういいです。

電磁波盗聴対策するまでパソコン使用したくないし。
つか、貴方方の絡みで極右も絡んで偉い事になっているし。この板も今各国の機関ROMってるし。

「危機的な」私の私情の件をお願いします。シャレにならないです。(実際に)

・・ 本当は その後の執筆の為の「現段階での障害」(精神性が大事だし。環境も)である事の除去、や
「ファイルの復旧」が必要ですが。

 結構繊細なんですよ
 私は。
>>226
けんすうは公人だから歌広で童貞捨てたとか火星人だとかは名誉毀損にならないと思いますよ
俺2ちゃんねる見損なったよ
ひろゆきのどこが「安全地帯から楽しんでた」なんだか。
ひろゆきが楽観的な外ヅラしてるからってそのまま受け取る人はどかと思う。
誹謗中傷は昔からお断りだろ。
内部告発はともかく。
まあ、そうやって削除人を一人また一人と遠ざけるのは、
その板の依頼厨の自業自得ってことで。

そうかな?大体2ch型の掲示板ってのはログ取ってないと思ったんだけど、、、
173 :名無しさん@3周年 :03/01/09 22:20 ID:FDWl1Tso
ひろゆきは自宅に押しかけた暴走族に土下座した人だよ。
暴力団に脅されたら山奥に連れ出されるまでもなく玄関先で二つ返事で請け負うんじゃない?

権力には抵抗するけど、暴力には滅法弱い、それがわれらのひろゆき
ますます、ファンタスティックでスリリングでドラマティックなスレッドですわね、
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

            ,   ― '
          γ∞γ~  \
          |  / 从从) )  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ | | >  < |〃 < うぐぐ、かあああああああ!!
          `wハ~ Oノ)   \_________________
         /)) ー -- ー( \ 
        / /(      )ヽ \      
       . ( ξ. ) ミ  彡 ( /ξ.. )    
        ./ |  |ヽ、______,/  |  |    
      .  |  |  |   ,     .|  .|    
        \| ̄ |  ((゚))   /|. ̄ |
         |  |_)*(_/. |  .|     メチメチ
         ( ⌒) ‖    ( ⌒)      メチ ブシャアアアアア
 ̄ ̄ ̄ ̄ ̄ ̄    。゜J       ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
             U。lU
            。 │|。゜J_     
           l 。 │|。゜ ヽ  
         ,川 。 ll。゜ l。ヽ  
     ⊂_~ し、_ ゜ ー=ー_=ー,。゜ヽつ
半角でもう遊べねー。ダウソも終わったし、大好きな煽りあいも、もうできねー。。。
ますます、ファンタスティックでスリリングでドラマティックなスレッドですわね、
qbサーバってどこの板がはいってるの?
【予告】小学生の登校を狙って・・・
http://live2.2ch.net/test/read.cgi/news/1042035002/

674 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 23:36 ID:1BXnvYvY
通報する人は、IPはあるので管理者に連絡してくれれば、
「捜査関係事項照会書で照会しますよー」って言ってたて伝えてくださいー。

902 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 23:41 ID:1BXnvYvY
>警視庁の情報提供っていうフォームで通報していいですか?

フォームでもよいかと。
通報者の電話番号とかもきちんとかいといたほうが
取り上げられる可能性高いです。
ホントは110のほうがいいんですが、、
半角系板では、業者が書き込むとリモホが表示させられてるみたい
ちょっとお聞きしたいことがあるんですが、Jチャンネルで言われていた、掲示板はどのコーナーのどんな題名ですか?
知ってる人がいたら教えて下さい!!
「自分」がヤバイと思ったら、使わなええんちゃいますのんw
最後は、4桁だったみたいだね
やすゆきも小心者だからね
逮捕?
>高みの安全地帯

全然安全じゃなくて、一番危険な立場だったという・・・お話だったとさ=完=
埋め
埋め
いや、最近のニュー速は本当に良くなってきたと思うよ。
ニュース速報板だからね。
・・・横槍。

削除依頼を内容証明以外の方法で行っても有効ですが、条理が根拠ではありません。
意思表示の一般原則であり自明のことです。
免責の対象にはならないから安心してください。
やっとhtml化だ、過去ログが読める
がんばってください
埋め
埋め
埋め
埋めポ
998
999
1000!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。