トップページ⇒tech
990コメント312KB

C++Builder相談室 Part19

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/08/01(金) 16:30:32
C++Builderに関する質問・回答や議論等を行う相談室スレッド。
※2008/07よりCodeGear(Borland IDE/DB部門)はBorlandからEmbarcaderoに移動しました

【前スレ】
C++Builder相談室 Part18
http://pc11.2ch.net/test/read.cgi/tech/1188607282/

過去スレ・関連サイトは>>2-7あたり。

※Borland C++ Compiler 5.5.1についての質問は以下のスレへ
タダで使えるBorland C++ Part5
http://pc11.2ch.net/test/read.cgi/tech/1135127048/
※BDS(Borland Developer Studio)の総合スレはこちら
Borland Developer Studio 2006 No.13
http://pc11.2ch.net/test/read.cgi/tech/1175861395/
※CodeGear(Borland/Embarcadero)関連はこちら
【CodeGear】Embarcaderoオッチャ その10
http://pc11.2ch.net/test/read.cgi/tech/1216250111/

<関連スレ>
くだすれC++Builder(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1171219191/
[Tips]Borland C++Builder ちょいテク No.01
http://pc11.2ch.net/test/read.cgi/tech/1154580209/
【Delphi】 Indyコンポーネント 【C++Builder】
http://pc8.2ch.net/test/read.cgi/tech/1093654251/
01591552008/10/23(木) 16:30:30
あぁ,スマソ。そっちの話か。
0160デフォルトの名無しさん2008/10/23(木) 16:34:11
>>157
ああ、それだ。滅多に使わないから忘れかけてた。
Delphiならスマートに書けるのだがC++Builderならムリヤリ感が。

>>158
まあそういう事だ。
0161デフォルトの名無しさん2008/10/23(木) 16:44:00
>>160
普段はオブジェクトインスペクタからいじっちゃうからね
コードでいじる場合はどうしてもヘルプ頼りに
0162デフォルトの名無しさん2008/10/23(木) 16:52:42
そういやオープン配列もだいぶ無茶してたよなあ
TVarRecとか
カッコを二重に書かなければならないのを時々忘れる
0163デフォルトの名無しさん2008/10/23(木) 16:54:48
オープン配列は大抵Formatに使うことが多いから、Format使わずにAnsiString::sprintf()でやってるな
0164デフォルトの名無しさん2008/10/29(水) 11:22:19
すみません教えてください。。。
C++BuilderでVBスクリプト?を使ってSNMPで値の送受信を行いたいのですが
VBのソースは以下の通りです

Dim objSNMP
Set objSNMP = CreateObject("OlePrn.OleSNMP")
objSNMP.Open "192.168.0.40", "public", 2, 1000
Dim myObjectValue
ObjectValue = objSNMP.Get(".1.3.6.1.2.1.1.4.0")
WScript.Echo ObjectValue
objSNMP.Set ".1.3.6.1.2.1.1.4.0", CStr("e-mail:[email protected] tel:xxx-xxxx-xxxx")
Dim myChangedObjectValue
myChangedObjectValue = objSNMP.Get(".1.3.6.1.2.1.1.4.0")
objSNMP.Close()


これをC++Builderではどのような記述になるのでしょうか?
CreateObjectはたぶんこんな感じになると思うのですが
この続きの記述を教えてください。。

Variant cn = Variant::CreateObject("OlePrn.OleSNMP");
0165デフォルトの名無しさん2008/10/30(木) 16:49:46
ブタ共さっさと教えてください
0166デフォルトの名無しさん2008/10/30(木) 16:53:58
Indyでやるだろ、jk。
0167デフォルトの名無しさん2008/10/30(木) 16:58:20
最近の子はマニュアル読んでとりあえずできるかテストしてみようって事しないんだな
0168デフォルトの名無しさん2008/10/30(木) 17:02:53
Indyならフォームにペタっと貼るだけ。
0169デフォルトの名無しさん2008/10/30(木) 18:41:08
知らないならレスしないで下さいよ。ウザくてかなわん
0170デフォルトの名無しさん2008/10/30(木) 19:02:18
その程度ができないのになんでプログラムなんて書いてるの?バカなの?
0171デフォルトの名無しさん2008/10/31(金) 15:32:06
アイコン化されたフォームを元に戻す方法を教えてブタ共よ
0172デフォルトの名無しさん2008/10/31(金) 15:37:40
Application->Restoreでできたわ
ほんとお前らって何の役にも立たないブタだよな・・・
0173デフォルトの名無しさん2008/10/31(金) 16:27:08
役に立たないブタはageます
0174デフォルトの名無しさん2008/11/01(土) 00:31:47
自力でできたということは、自力でやらせようとした人間達の狙いは大成功したということで、
役に立たないどころかすべてが計算通りに進んだということですw
0175デフォルトの名無しさん2008/11/03(月) 20:06:59
csv方式で

656,000,1123,5454
756,000,5454,3455
545,001,6565,4554       6565
545,002,5455,7775   → 5455
223,006,5656,9898 5656
054,004,5554,5554 5554
    ・ ・
    ・           ・
    ・           ・
843,022,6643,4443       6643
565,011,3434,4455 3434
656,000,3343,2432
789,000,5545,6665

こんな感じで配列が並んでいるのですが各数列の2番目数字が000以外のときに
3番目の数字だけを配列として順にMemo1にだしたいのですがどのようにすればよいでしょうか
0176デフォルトの名無しさん2008/11/03(月) 20:10:04
ずれていたので再投稿します
csv方式で

656,000,1123,5454
756,000,5454,3455
545,001,6565,4554       6565
545,002,5455,7775   →   5455
223,006,5656,9898        5656
054,004,5554,5554       5554
    ・              ・
    ・              ・
    ・              ・
843,022,6643,4443       6643
565,011,3434,4455       3434
656,000,3343,2432
789,000,5545,6665

こんな感じで配列が並んでいるのですが各数列の2番目数字が000以外のときに
3番目の数字だけを配列として順にMemo1にだしたいのですがどのようにすればよいでしょうか
0177デフォルトの名無しさん2008/11/03(月) 20:28:15
void __fastcall TForm1::Button1Click(TObject *Sender)
{
std::ifstream ifs("File1.txt");
std::string str;
AnsiString as;

if (ifs) {
TStringList* Data = new TStringList;
Data->Delimiter = ',';

while (std::getline(ifs, str)) {
Data->DelimitedText = str.c_str();
if (Data->Strings[2] != "000")
Memo1->Lines->Add(Data->Strings[3]);
}

delete Data;
}
0178デフォルトの名無しさん2008/11/03(月) 20:30:24
ごめんこっちで

void __fastcall TForm1::Button1Click(TObject *Sender)
{
std::ifstream ifs("File1.txt");
std::string str;
AnsiString as;

if (ifs) {
TStringList* Data = new TStringList;
Data->Delimiter = ',';

while (std::getline(ifs, str)) {
Data->DelimitedText = str.c_str();
if (Data->Strings[1] != "000")
Memo1->Lines->Add(Data->Strings[2]);
}

delete Data;
}
}
0179デフォルトの名無しさん2008/11/03(月) 20:44:28
AnsiString as;使ってなくね
いらないけどさ
0180デフォルトの名無しさん2008/11/03(月) 20:46:46
>>179
ごめんそうです
削ってくらはい
0181デフォルトの名無しさん2008/11/03(月) 20:56:09
>>177>>178
ありがとうございます!
csv形式のテキストはオープンダイアログから読み込みその中から抽出することはできるのでしょうか

また先ほどの文で
DelimiterとDelimitedTextはTStringListのメンバーではないと言われるのですが
何か宣言文などが必要なのでしょうか。

まだまだ初心者でして;いろいろご迷惑かけてすいません。
0182デフォルトの名無しさん2008/11/03(月) 21:17:26
>>181
>csv形式のテキストはオープンダイアログから読み込みその中から抽出することはできるのでしょうか

できます。
TOpenDialog->Filesに入ります。

>DelimiterとDelimitedTextはTStringListのメンバーではないと言われるのですが
>何か宣言文などが必要なのでしょうか。

えっもしかしてC++Builderのバージョンは5以前ですか?
0183デフォルトの名無しさん2008/11/03(月) 23:14:27
しばらく待ってみましたが返事がないのでDelimiterを使わないバージョンを
書いてみました。
コンマの数や桁数などは決め打ちになってますので必要ならば適宜変更して
ください。

void __fastcall TForm1::Button2Click(TObject *Sender)
{
OpenDialog1->Execute();
std::ifstream ifs(OpenDialog1->FileName.c_str());
std::string str;

if (ifs)
while (std::getline(ifs, str)) {
std::string::size_type pos = str.find(',') + 1;
if (str.substr(pos, 3) != "000") {
pos = str.find(',', pos) + 1;
Memo1->Lines->Add(str.substr(pos, 4).c_str());
}
}
}
0184デフォルトの名無しさん2008/11/04(火) 19:29:47
>>183
返事が遅れてすいません。ありがとうございました!大変感謝しています
こちらのやり方で動きました。c++builderはver5を使っています
あと桁数をコンマの数をかえるとのことなのですが、
桁数を変える場合は5桁表示するならpos 5 にすればよいことはいじっていてわかったのですが
コンマの位置を変える場合どの部分を変えていけばよいのでしょうか・・・
よろしければアドバイスお願いします><

実際の応用テキストではさらに数字が多く6番目数字(コンマ5つ目)が00:00:00(桁数は変化しない)以外の時に
11番目(コンマ10個目)の数字を表示するようにしたいのです。実際に表示したい数字も小数点を含む5.55(桁数は変化しない)などです。
0185デフォルトの名無しさん2008/11/04(火) 20:07:38
>>184
かなり汚いですが一応動くので載せておきます。

コンマの位置を変えるにはfor文の数字をいじればいいですが、
できればコンマn番目から次のコンマもしくは行末までの文字列を
取り出す関数を別に作ってそれを呼び出した方が綺麗に書けると
思います。

void __fastcall TForm1::Button4Click(TObject *Sender)
{
OpenDialog1->Execute();
std::ifstream ifs(OpenDialog1->FileName.c_str());
std::string str;

if (ifs)
while (std::getline(ifs, str)) {
std::string::size_type pos = 0;
for (int i = 0; i < 5; i++) {
if((pos = str.find(',', pos)) == std::string::npos)
goto next;
pos++;
}

次に続く
0186デフォルトの名無しさん2008/11/04(火) 20:08:38
std::string::size_type pos2 = str.find(',', pos) + 1;
if (str.substr(pos, pos2 - pos - 1) != "00:00:00") {
pos = pos2;
for (int i = 0; i < 3; i++) {
if((pos = str.find(',', pos)) == std::string::npos)
goto next;
pos++;
}
pos2 = str.find(',', pos);
if (pos2 == std::string::npos)
pos2 = pos;
else
pos2++;
Memo1->Lines->Add(str.substr(pos2, 4).c_str());
}
next:;
}
}

要するにTStrings::operator[] の機能を自前で書けばすっきりするはずです。
0187デフォルトの名無しさん2008/11/04(火) 20:21:50
public:
__property AnsiString Cells [int rows] [int cols]= {read=GetCell, write=SetCell};

こんなメンバ持たせたCSVクラス作って使ってるなぁ
0188デフォルトの名無しさん2008/11/04(火) 20:29:44
>>187
BCBはDelphiとのインターフェースが割合簡単に取れるから、
Delphiで書かれたcsvパッケージでも入れたら楽でしょうね。
0189デフォルトの名無しさん2008/11/04(火) 20:31:03
>>185>>186
ありがとうございます。重ね重ねすいません;;
if (str.substr(pos, pos2 - pos - 1) != "00:00:00") の部分がよくわからなくて
6番目の数字が00:00:00場合読み込まないようにするのではなく一つ増えて00:00:00:00の場合に読み込まないようにするには
どのように変更したらいいのでしょうか・・
実際11番目の数字(6.44や9.88など桁数は変らず)を表示させるときは6番目の数字が00:00:00:00以外のとき(00:00:00:45や00:00:05:35など)でこちらも桁数については変りません。

0190デフォルトの名無しさん2008/11/04(火) 20:33:23
>>189
今回のプログラムは00:00:00の桁数については決め打ちしていませんので
"00:00:00"を"00:00:00:00"に変更すればいいです。
0191デフォルトの名無しさん2008/11/04(火) 20:56:52
>>190
わざわざありがとうございます;;どうやら勘違いしていたようでした。
実際の00:00:00:00のテキストのほうではコンマごとにわかりやすいように半角スペースがついており
半角スペース5列数字、半角スペース1列数字、半角スペース1列数字、半角スペース3列数字・・・
などのように書かれており上記のプログラムで半角スペースも認識されるため正しい数字が出せていないようでした。
(半角スペースを全部埋めていった場合正しい数字がでました。)
半角スペースを含んだ上で数値を出したいのですがこういう場合どのようにすればいいのでしょうか。
0192デフォルトの名無しさん2008/11/04(火) 21:03:36
>>191
これ以上後出し条件はやめてください。
どこかのロダにそのテキストをうpしていただけませんか。
0193デフォルトの名無しさん2008/11/04(火) 21:06:59
つーかもうC++Builderの話題じゃなくなってるし
TStringsListのバージョンは古くて使えないしだから
C++相談室にでも書いてみたら?
0194デフォルトの名無しさん2008/11/04(火) 21:08:06
まぁ・・・ね
あなた専用のサポートスレではないんですよって感じですかね
0195デフォルトの名無しさん2008/11/04(火) 21:13:55
例えサポートスレだとしてもこんな感じで次々に条件を変えられたら
イラッと来ると思うけどね
0196デフォルトの名無しさん2008/11/04(火) 21:18:54
おれは、CSV文字列1行を
TStringListに分解する関数を作って使ってる。
この関数1個あれば、CSVを全然意識せずに文字列として扱える。
0197デフォルトの名無しさん2008/11/04(火) 21:25:44
全然関係ない話だけど俺はBCB3から2009まで買ってきたなあ
最初の頃は全然使い方が分からなくて、その頃に丁度Delphi6
のフリー版が出たので、Delphi本をBCBに翻訳しながら打ち込んで
動かす事で覚えたっけ。

お陰様でBCB6からは自由自在に使えるようになった。参考書も
BCB用が皆無の頃でDelphi本を買って参考にしたっけ。
0198デフォルトの名無しさん2008/11/04(火) 21:31:37
せっかく教えて頂いたのに重ね重ね申し訳ありませんでした・・・;;
次からはもう少し慎重に確認していくように注意します。
ここから先は自己解決していきたいと思います。
何度も教えていただきありがとうございました!!
0199デフォルトの名無しさん2008/11/04(火) 21:32:21
VCLがObject Pascalで書かれているのでそれをC++で動かすために
少しの言語拡張とC++のクラスの柔軟性とマクロの多用で対応して
いるが、今見ても頭がおかしい人が設計したんじゃないかと思う事がある
0200デフォルトの名無しさん2008/11/05(水) 09:16:56
>>196
CommaTextというプロパティがあってね・・・
1例だけ特殊対応しなければいけないけど大抵はこのプロパティだけで大丈夫だな
0201デフォルトの名無しさん2008/11/05(水) 12:43:08
CommaTextでは正しく解釈できない場合があるし
CSVの記述が正確ではない場合
悲惨な結果をもたらすことになる。
趣味なら笑って済ますことも出来るだろうが
業務用プログラムでは、
とてもじゃないが、CommaTextは使えない。
0202デフォルトの名無しさん2008/11/05(水) 13:39:21
>>200
それスペースまで区切りとみなしちゃうだろ?
""で囲ってあればいいけどそうでないのってどうしてる?
0203デフォルトの名無しさん2008/11/05(水) 13:41:32
CSVのラインを解釈してバラして保持するクラスを自作すれば無問題。
その後、TStringList系は使いまくってるけど。
02042032008/11/05(水) 13:42:27
さらにそのCSVの1ラインを解釈して保持するクラスに、TStringListとの入出力を持たせればおk。
0205デフォルトの名無しさん2008/11/05(水) 13:49:10
正しく解釈出来ないのが"で括られてない項目のスペースだな
>>201CSVの記述が正確では無かったら何やっても悲惨になるんだがw
俺はStringListに分解したあとにチェック入れてる
0206デフォルトの名無しさん2008/11/05(水) 13:57:34
TStringListのDelimiterとDelimitedTextってC++Builder5にないけど
これって6から?
0207デフォルトの名無しさん2008/11/05(水) 13:59:24
>>206
そう
俺はBCB6から本格的にBCBを使い出したからBCB5以前の
奴とは話が時々合わず苦労する
0208デフォルトの名無しさん2008/11/05(水) 14:01:56
5から6へのバージョンうpは安定してるし、
Indy増えるし、やっぱそれに関しては無条件バージョンうpじゃね?


6から200Xへはやったことないガクブル
0209デフォルトの名無しさん2008/11/05(水) 14:24:24
2009使ってるけどこれどう見ても2006や2007と大差ないんだけど
Delphi + BCB で3万円が妥当な価格だと思う
エンバカは高く設定し過ぎ
0210デフォルトの名無しさん2008/11/05(水) 16:24:57
バカだから仕方ない
0211デフォルトの名無しさん2008/11/09(日) 20:51:23
2009出たけど配布用の仕組みって入ってる?JavaWebStartみたいな。
業務アプリはネイティブで作ると楽だけど配布がウザすぎてWebにしたくなる。
0212デフォルトの名無しさん2008/11/11(火) 17:24:47
VCLのラジオボタンをCLXのラジオボタンと同じ動きにする方法ってありませんか?

CLXアプリをVCLアプリに書き換えてるんですが、CLXのラジオボタンがスペーキーを押すまでチェックされないみたいなので…

環境はCLX→6.0 VCL→2007です
0213デフォルトの名無しさん2008/11/11(火) 19:38:51
>>210
バカに貢俺らって、バカ馬鹿だな
0214デフォルトの名無しさん2008/11/11(火) 20:12:42
だがそれがいい
0215デフォルトの名無しさん2008/11/16(日) 15:27:45
A1とA2にはTStringlistで500行の数字の配列が格納されています。
そのA1とA2の配列の計算をしたいのですが

AnsiString k1;

for(int j=0;j<500;j++){
k1 = A1->Strings[j] + A2->Strings[j];
Memo1->Lines->Add(k1);
}
こんな形でやってみたところA1とA2の同じ行が足し算されず
メモにはA1とA2の同じ行の数字が並んで表示されているだけなの
ですがこれでは配列の足し算はできていないのでしょうか?

どなたかよければアドバイスお願いします。
0216デフォルトの名無しさん2008/11/16(日) 15:34:11
足し算できてる。文字列の足し算が。
C++のデータには「型」があるんよ。数値とか文字とか。
StrToIntとかで数値に変換してから足せ。
0217デフォルトの名無しさん2008/11/16(日) 16:13:42
返信ありがとうございます。
型で変換してみたのですが少数を含んだ数値の配列で
strtodで

AnsiString k1;

for(int j=0;j<500;j++){
k1 = strtod(A1->Strings[j]) + strtod(A2->Strings[j]);
Memo1->Lines->Add(k1);
}

と書いたときTStringlistに格納しているものなので、AnsiStringに一致するものが見つからないと出て
しまいます。どのような変換で書いていけばよいのでしょうか

各配列の数値は 197.543545 や54.47673423のような数値の500個の配列です。
0218デフォルトの名無しさん2008/11/16(日) 16:46:25
A1->Strings[i].ToStrInt()
0219デフォルトの名無しさん2008/11/16(日) 16:48:05
ちごた

A1->Strings[j].ToDouble()
0220デフォルトの名無しさん2008/11/16(日) 16:59:45
AnsiStringで受け取る必要ないのぜ。
0221デフォルトの名無しさん2008/11/16(日) 17:04:48
>>219
ありがとうございます。
うまく変換して計算することができました。
0222デフォルトの名無しさん2008/11/16(日) 17:24:36
2007/2009はAnsiStringTでヘルプ探さないと見つからないな
0223デフォルトの名無しさん2008/11/17(月) 15:37:38
WINDOWS95で動くのはどのバージョンまでですか?
0224デフォルトの名無しさん2008/11/17(月) 16:26:55
とりあえず、BCB6は動く。
0225デフォルトの名無しさん2008/11/17(月) 16:45:24
BCB6はとりあえず動くね。
0226デフォルトの名無しさん2008/11/17(月) 16:57:01
ただ、ヘルプ周りはWindows2000以降じゃないと‥‥
0227デフォルトの名無しさん2008/11/17(月) 17:07:16
逆に、ヘルプ周りはWindows2000以降じゃないとアレ
0228デフォルトの名無しさん2008/11/18(火) 02:53:53
VistaにTurbo C++ Explorerをインストールしましたが、起動時に以下のエラーが表示されて起動できません。
どのようにすれば良いのでしょうか。

モジュール 'rtl100.bpl' のアドレス 51F515BE でアドレス 00000008 に対する読み込み違反がおきました。

EPackageRegistrationException がモジュール coreide100.bpl の 000DCB21 で発生しました。
登録プロシージャ Cppproject.IDERegister (パッケージ c:\program files\borland\bds\4.0\Bin\bcdide100.pbl) が例外クラス EOleSysError を生成しました: クラスが登録されていません, ClassID: {F8FEDD39-E3CE-4B8D-A657-9CA24686881F}.

モジュール 'coreide100.bpl' のアドレス 20BA0DAF でアドレス 00000004 に対する読み込み違反がおきました。

モジュール 'designide100.bpl' のアドレス 20EE71DE でアドレス 00000000 に対する読み込み違反がおきました。

Borland® Developer Studio for Windows は動作を停止しました
問題が発生したため、プログラムが正しく動作しなくなりました。このプログラムを閉じてください。
0229デフォルトの名無しさん2008/11/18(火) 14:04:08
Resolving the EPackageRegistrationException error in BDS 2006 on Windows Vista
ttp://support.codegear.com/article/36202
0230デフォルトの名無しさん2008/11/18(火) 22:52:25
レスありがとうございます。
教えて頂いたリンク先にあった内容や、
ttp://support.codegear.com/article/37345にあった内容を試したのですが、全く状況に変化が見られませんでした…
どうも無理そうなので、とりあえずVista正式対応を待つことにします。
0231デフォルトの名無しさん2008/11/18(火) 23:08:46
素直に2007か2009を買うしかないね。Turbo Explorer?正式対応?残念ながら無理でしょ…。
0232デフォルトの名無しさん2008/11/25(火) 13:49:41
TBitmapからTIconのハンドルを取得する方法を教えてください
0233何をしたいのかを具体的に書けば有効な回答が得られるのでは?2008/11/25(火) 22:38:53
できますん。
0234デフォルトの名無しさん2008/12/03(水) 11:42:25
ShowHint=trueにするとコントロールにカーソルがくると自動でヒントが表示されますが
指定コントロールのヒントを手動で表示される方法を教えてください
0235デフォルトの名無しさん2008/12/03(水) 22:57:47
そのコントロールにCM_HINTSHOWをPerformすればいいみたいだけど、パラメータが問題かな?
0236デフォルトの名無しさん2008/12/04(木) 10:40:48
>>235
なるほど。
まずはちょっと試してみますありがとう
0237デフォルトの名無しさん2008/12/04(木) 22:47:38
Turbo C++ ExploerのdbExpressって、リモートでFirebird2.x接続は無理?
ローカルはOK、リモートでもコネクションは繋がってテーブル名は見える。
が、テーブルを開こうとするとエラー65535がでて繋がらない。
0238デフォルトの名無しさん2008/12/08(月) 17:23:25
メモ1に
0
0
0
0
1
1
0
0
1
1
・
・
・
1
1
0
0
0

とこのような感じで0と1が何千行と出されているのですがメモの上から順番にforで回して
1が出た場合その行数とそこから1がどれだけ続いたかカウントしていくプログラムを作成したいのですが
どういったようにつくっていけばよいのでしょうか?
0239デフォルトの名無しさん2008/12/08(月) 17:26:46
普通に作れば良いと思うのだが、
先ず何が問題?

・C++文法
・ファイル操作
・ロジックの書き方
0240デフォルトの名無しさん2008/12/08(月) 17:34:38
>>238
それってMemoでなくても配列の中に1がいくつ続いているかを
数えるのと同じ問題だよね
0241デフォルトの名無しさん2008/12/08(月) 18:05:48
>>239-240
お前等が馬鹿すぎてワロタ
知らないならレスするなよクズ共

>>238は普通にTMemoでどうやって書くかを聞いてんだろw

Memo->Lines->Count
Memo->Lines->Strings[i]
0242デフォルトの名無しさん2008/12/08(月) 18:10:12
>>241
??
0243デフォルトの名無しさん2008/12/08(月) 18:12:35
ここはクズのすくつでつねw
0244デフォルトの名無しさん2008/12/08(月) 18:18:49
クズって言う奴はクズじゃないんだよ
0245デフォルトの名無しさん2008/12/08(月) 22:00:28
>>238 は
何がわからないのかを書いていない。
基本的に質問の仕方を知らない。
きっと何がわからないのかさえわからないのだろう。
そんな人は、たぶん論理的に組み上げていく
プログラミングということはムリなのではないかと思う。
丸投げで全部教えてもらいたかったら
C/C++の宿題を片付けます 119代目
http://pc11.2ch.net/test/read.cgi/tech/1228313292/
こっちで聞くべき
0246デフォルトの名無しさん2008/12/09(火) 10:29:15
>>245
答え方がわからないならレスしないで下さい。ウザイだけです。
0247デフォルトの名無しさん2008/12/09(火) 11:07:58
>>246
おいばかやめろ
Win32APIスレから出てこないでください
0248デフォルトの名無しさん2008/12/09(火) 15:57:06
ここにまで屑が侵食してきたか・・・
0249デフォルトの名無しさん2008/12/09(火) 23:48:23
>>238
今C++Builder動く環境にないので疑似コードで。

変数start_posに-1を代入。(-1は「カウントしてない」というマーキング)
変数iを使って、メモ1の最初から最後までループを回す。{
 start_posの値が-1で、{
  メモ1の行iの内容が"1"なら、{
   start_posにiの値を代入。
  }
 }
 そうじゃなくて、{
  メモ1の行iの内容が"0"なら、{
   start_posの値が"1"の開始位置を指しているので、これを表示。
   そして(i-start_pos)の計算結果が"1"の続いた個数なので、これも表示。
   次のカウントのために、start_posに-1を代入する。
  }
 }
}

連続したデータを処理するときはいろんなやり方があるけど、
・データの変わり目に注目する。("1"の始まりと、"1"の終わり="0"の始まり)
・変わり目でプログラムで行う処理を切り替える。(カウント中と、結果表示&カウント終了)
とするのが一つの方法。
0250デフォルトの名無しさん2008/12/14(日) 08:53:26
日本語プログラミングですねわかります
0251デフォルトの名無しさん2008/12/15(月) 00:47:49
アカデミック版ってインストール時になんか問題ある?
0252デフォルトの名無しさん2008/12/15(月) 00:51:00
インスコ時はないんじゃない?
ちゃんとした店なら買う時に学生証見せてなんか書かなきゃいけないと思うけど
0253デフォルトの名無しさん2008/12/15(月) 14:15:38
昔の学割版には、作ったプログラムは有償無償関係なく公開禁止っていうキツいルールがあったけど
あれ今もあるのかな
0254デフォルトの名無しさん2008/12/15(月) 17:20:08
Delphi.Personalityってなんですか?

dclusr.dpkを読み込もうとすると、これがないって
えらーになるんですが、

Delphiをインストールしないとダメですか?
0255デフォルトの名無しさん2008/12/15(月) 17:22:20
どれ?
0256デフォルトの名無しさん2008/12/18(木) 14:45:24
Panelとかコントロールの標準カーソルを指定カーソルファイル(*.cur)に変更する方法を教えてください
0257デフォルトの名無しさん2008/12/18(木) 14:51:33
>>256
TScreen::Cursors
0258デフォルトの名無しさん2008/12/18(木) 15:01:00
>>257
そこにLoadCursorでぶち込むんですよね?
それってリソースに予めないとダメですよね?
■ このスレッドは過去ログ倉庫に格納されています