ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Visual Studio 2005研究室コミュの質問トピ

  • mixiチェック
  • このエントリーをはてなブックマークに追加

コメント(278)

はじめまして。色々とサイトを見て回ったのですがわからなかったので質問させていただきます。
ちなみにレベル的には、初めて一週間にも満たない超初心者です。vb中学校というサイトの初級講座の真ん中くらいです。

comboboxで"A"を選択した状態でbottonをclickしたら、テキストファイルを読み込んでtextboxにテキストファイル内の文字列の一部を表示をさせるように作りたいのですが、テキストファイル内の文字列の指定の仕方がわかりません。
どのような解決方法がありますでしょうか?

説明が上手くできないので、補足を追加しておきます。

保存は、
    Dim FileName1 As String = "C:\Documents and Settings\xxxxxxx\デスクトップ\AAA.txt"
Dim FileName2 As String = "C:\Documents and Settings\xxxxxxx\デスクトップ\BBB.txt"

Dim Writer As IO.StreamWriter
Dim Encode As System.Text.Encoding

Encode = System.Text.Encoding.GetEncoding("Shift-JIS")

If ComboBox1.SelectedItem = "AAA" Then
Writer = New IO.StreamWriter(FileName1, True, Encode)
Writer.Write(TextBox2.Text)
Writer.Close()
End If
If ComboBox1.SelectedItem = "BBB" Then
Writer = New IO.StreamWriter(FileName2, True, Encode)
Writer.Write(TextBox2.Text)
Writer.Close()

としています。
この場合、テキストファイルに追加される文字列も、aaaaaという文章を保存。bbbbbという文章を保存。cccccという文章を保存。と保存していったときに、"aaaaabbbbbccccc"のように、区切りなくくっついてしまいます。

このような場合に例えばbbbbbだけをtextboxに表示させたい場合、どのようにすればいいでしょうか?

まだ本当に超初心者なので、根本的な勘違いなどあるかもしれませんが、解決方法があればどうか教えてください。
> 240
文字列 aaaabbbbcccc の中から、aaaa と bbbb を切り分ける条件は、なんでしょう?

文字数?
特定の文字と一致したものがあるか確認したい?
直前の文字と違う文字が出てきたところで切る?
その他?
早速のお返事ありがとうございます。
説明が下手ですみません。

具体的にいうと金額なのですが、文字数指定だと桁数が変わってきちゃうのでダメなんです。追加するたびに改行とかされて、行数で指定とかできたらな…みたいに思ったんですけど…。

理想では、

先々月
\aaaa
先月
\bbbbb
今月
\cccccc

みたいな感じで保存できて、comboboxの先月を選んだら\bbbbbが表示できる…みたいにしたいです。
このようなことは可能でしょうか?
> 243

答になっていません。

「"切り分け規則"をきっちり説明してください」
επιστημηさん>
"切り分け規則"というのが具体的にどういうことなのかちょっとわかりません…すみません。初心者すぎて、どう質問をしていいのかもわからない状態です…。

書き込みからさらに、自分で調べていたところ、Split関数を使って、文字列を特定の文字で区切れば問題が解決できそうです。(おそらく…)

vbもパソコン自体もかなりの初心者なのでもう少し勉強して、最低限"質問"くらいはちゃんとできるようになってから出直そうと思います。すみませんでした。
いや、出直さないで続けて大丈夫ですよ
ただたんに質問に答えたいけど、何がわからなくてつまづいてるのかが質問から読み取れないんです。

今携帯からなんであまり長い文章うつの辛いのでフォローは出来ないですが、頑張って下さい。
現状実行すると、aaaabbbbcccc とくっついてしまう結果を

先々月
\aaaa
先月
\bbbbb
今月
\cccccc
の様に改行したいのではないでしょうか。
 
出直すなら、新しいトピック立てて欲しいです。

「こんな風に出来たらいいなぁ」という希望ではなく、「このようにする」と決めてください。「できたらいいなぁ」に対しては、「そう作ったら出来るよ」としか返答出来ないのです。

わかります?プログラミングの初心者が嫌なのではなく、優柔不断な人が嫌なんです。


んで、ファイルに「先々月\n\\1000\n」と書き込み、取り出す、、、でいいです?
VB2005でグラフを描画するためのコントロールはないのでしょうか?

VB6のときにはグレープシティ製のOlectra Chartを使用していました。
MS Chartコントロールもないようなのでどうしたものかと思っています。

PictureBoxに地道に描くしかないのでしょうか。
良い方法がありましたらお願いします。
> 249

http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&displaylang=ja

こんなの見つけました。
ナカミ開けて覗いてはいないけど。
>επιστημη
ありがとうございます
さっそく試してみます

>ゼット
いいものが見つからなかったら買うしかないかもしれないです
先程教えていただいたグラフコントロールがVB2008で使えそうです。
Microsoft Chart Controls for Microsoft .NET Framework 3.5の言語パックをインストールしました。
(.NET Framework 3.5 SP1が必要のようなので開発環境をVB2008にします)

ここにサンプルコードもありました。
英文ですが、グラフ絵とコードがセットになっているので分かりやすいです。
http://code.msdn.microsoft.com/mschart

ありがとうございました
お役に立ててなにより。
てかググって3秒でしたょ? > 調査所要時間
> 254
そのキーワードが出てこない時があるんですよ。よければ、今回の検索キーワードを教えてください。
(σ(^_^;)自分で描いた人)
MS製のグラフコントロールがあるの知らなかった!
今までオープンソースのやつ使ってた。。。
□ 質問「Visual Studio 2005でWindows SDK 6.1」 □

「Windows SDK for Windows Server 2008 and .NET Framework 3.5」をダウンロードしたところ、サンプルのプロジェクトは、VS8向けになっていました。

しかし「Project : error PRJ0019: ツールはエラー コードを返しました : "カスタム ビルド ステップを実行しています。"」というエラーが出てビルドできません。

やはりVisual Studio 2008が必要でしょうか?
Express版ではATLが使えないようです。

ManagedでなくWin32やMFCをビルドしたいです。
>259:たけし さん
 まずは下記を参照してみてください。
http://www.microsoft.com/japan/msdn/vstudio/express/2005/visualc/usingpsdk/

 ちなみに Visual Studio 2008 Express の C++ であれば、普通にインストールしただけで Windows SDK も使えるようになっており、即座に Win32 開発が出来ます。ATL、MFC については使用経験が無く回答出来ません、すみません(汗)。
[261]khurataさん、ありがとうございます。

アドバイスいただきましたが、Windows SDK 6.1を使いたいので、結局VS2008Professionalアップグレードを注文しました。
VB2005のFileOpenDialogについて質問です。
選択したファイル名のみを表示するようにしたいのですが、FileNameプロパティでは、フォルダ名+ファイル名が取得されてしまうため、ファイル名のみになりません。
ファイル名のみを取得する方法、またはフォルダ名を取得する方法はないのでしょうか?
よろしくお願いします。
http://msdn.microsoft.com/ja-jp/library/system.io.path_members(VS.80).aspx
System.IO.Path.GetFileName(FilePath)

とかで。
seraphさん
ファイル名の取得できました。
ありがとうございました。
初めまして。2005の研究室ですが、質問させて頂いてもよろしいでしょうか。
2005でも、同様の現象が出ている方がみえないかとわらにもすがい思いです。

OSはXPのSP2、NetFramework2.0 SP1、C#(VS2008 PRO)にて開発しております。
クライアントマシンのOSもXPのSP2、.net2.0です。
どなたか、ClickOnceを使用して、サーバー上にセットアッププログラムを置いて
アプリ配布されている方いらっしゃいますでしょうか。
アプリを配置しているサーバーは、WEBではなく、ファイル共有です。
クライアント(権限:PowerUser)にセットアップする際に、問題なくインストールの画面まで行く場合と、
アプリケーションを起動できませんでした。というエラーで、インストールできない
事があります。(原因がクライアントだったり、アカウントだったりします)
もちろん、アドミニ権限でログインした場合は問題ないのですが、通常はPoweruserで
動かしているため、アカウント毎にインストールされるClickOnceでは無理。
ググってみても、それらしいトピもなく、MSに問い合わせても、そのような環境に依存する
ような問題は、VS_PROに最初ついているインシデントのサポート範囲では無い。と
断られてしまい、途方にくれている次第です。
諦めて、WindowsInstallerを使用するしかないかなと思っておりますが、clickOnceの自動更新は
開発者にとっては魅力です。
プログラムの内容はフォーム(1つ)を表示するだけの簡単なものです。(テスト用)
なにとぞ、良きアドバイスを。






試してみましたが普通に動きましたけど…。
XPの場合、.NET Frameworkが入っていませんので、管理者があらかじめ入れておく必要はあります。
それが完了していればPowerUsersどころかUsersでも
・インストール
・スタートメニューに登録
・起動
・更新
はできましたよ。

逆に、どんなエラーメッセージなのでしょうか?(推測でなく具体的に)
はじめまして
WinXPSP2でVS2005のVC++をつかってプロジェクトを作成しているのですが
一定の条件でデザイナが表示できなくなって立ち上げなおすと直ることがあるエラーのようなものがでるのですが

このような症状にあったことある方いらっしゃいませんか?

プロジェクトの内容ですが 複数のフォームを作成してボタンなどの作成のみで
独自のクラスなどは作成してません

C#でAPIリファレンスを作成しようと考え「コード コメントWebレポート」を使って
作成を試みたのですが、自分の環境がVisual Studio2005で使えないことが分かりました。
そこで、http://www.atmarkit.co.jp/fdotnet/dotnettips/185ndoc/ndoc.html にあるように
NDocを用いて作成しようとしましたが、xmlファイルを作成する部分の「構成プロパティ」の中の
「ビルド」項目が表示されません。どうすれば「ビルド」項目を表示することが出来るのでしょうか?
はじめまして。
DVDプレーヤーを作っているのですが、PlayerコントロールにDVDボタンを
出したいのですが、方法がわかりません。
どなたか教えていただけませんか?
こんにちは、VB初心者です。
さっそくですが、VBで、msecのデータを扱うのに”GetTickCount”を使っていますが、精度はともかくまれにありえない大きな数値が帰ってきます。プログラムと実行結果は下記の通りですが、何が原因でしょうか?
OSは、WindowsXPです。
アドバイスよろしくお願いします。


<プログラム>
Dim BeforeTime As Long
Dim NowTime As Long
Dim n As Integer
'システムを立ち上げてからの経過時間(単位:ミリ秒)を取得
Private Declare Function GetTickCount Lib "Kernel32" () As Long
'実行処理
Private Sub buttonRun_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles buttonRun.Click
For n = 1 To 20
TimeCheck()
Next
End Sub
'データ取得&表示
Private Sub TimeCheck()
BeforeTime = GetTickCount
TextBox1.Text = TextBox1.Text & n & " : " & BeforeTime & " " & BeforeTime - NowTime & ControlChars.CrLf
NowTime = BeforeTime
End Sub


<実行結果>
No 現在の取得値  → 前回との差
------------------------------------
0 : 225661890149886 → 初回取得値
1 : 225661890149886 → 0
2 : 225661890149886 → 0
3 : 225661890149886 → 0
4 : 225661890149886 → 0
5 : 225661890149886 → 0
6 : 225661890149886 → 0
7 : 225661890149886 → 0
8 : 225661890149886 → 0
9 : 225661890149886 → 0
10 : 225661890149886 → 0
11 : 225666185117197 → 4294967311
12 : 225666185117197 → 0
13 : 225666185117197 → 0
14 : 225666185117197 → 0
15 : 225666185117197 → 0
16 : 225666185117197 → 0
17 : 225666185117197 → 0
18 : 225666185117197 → 0
19 : 225666185117197 → 0
20 : 225666185117213 → 16

以上

質問番号:6845021

> 271
VB2005 以降を使用しているのであれば
Dim BeforeTime As Long
Dim NowTime As Long
を
Dim BeforeTime As UInteger
Dim NowTime As UInteger
へしてみてください。
GetTickCount は unsigned な 32bit 値を返しますよ。
Sahmaro様
アドバイス、ありがとうございます。

 Dim BeforeTime As UInteger
 Dim NowTime As UInteger
に変更したら、オーバーフローが出ました。この2行だけの変更ではだめなんでしたか?

ちなみに、
Private Declare Function GetTickCount Lib "Kernel32" () As Long
 ↓
Private Declare Function GetTickCount Lib "Kernel32" () As Integer
にしたら、問題解決しました。

何か問題あるでしょうか?
> おとぼけポン太さん

GetTickCount です?これ、ミリ秒を返しますか?不確かな事を言って申し訳ないですが、名前から判断して、ミリ秒より遥かに大きな値(数ナノ秒か、数マイクロ秒単位の値)を返すと思います。

2005って、DataTime とか TimeSpan は使えないんだっけ?
> 270 sazanboさん

それだけじゃ、誰も何がしたいのかわかりません。
AV 系のコントロールには疎いのですが、標準で Player コントロールというのがあるんですか?
DVD ボタンとは、なんでしょう?

標準の Player コントロールなら、それが seal されているかどうか、調べてください。されてなければ、継承して拡張出来るでしょう。
> 273
どうやら VB 2005 以降を使用しているらしい...
しかし、なぜか質問者は環境を知らせたくないようですね。

失礼、肝心な点が漏れていました。
Private Declare Function GetTickCount Lib "Kernel32" () As Long
 ↓
Private Declare Function GetTickCount Lib "Kernel32" () As UInteger
へ
VB 2005 から Long は 64bit になっています。
そのため Long では半分はゴミを引っ張ってきていることになります。
また、Integer では符号付ですのでPCを25日以上電源を入れたまま使い続ければ誤動作するでしょう。
Sahmaroさん、そうですね。ありがとうございました。
今回源を入れたまま使い続けるつもりはありませんでしたが、UIntegerの方がよりいいですね。

ログインすると、残り243件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

Visual Studio 2005研究室 更新情報

Visual Studio 2005研究室のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。