Stringからcharへ – プログラミング – Home

通知
すべてクリア

Stringからcharへ

固定ページ 1 / 2

ゆう
 ゆう
(@ゆう)
ゲスト
結合: 23年前
投稿: 114
Topic starter  

VC++.NET2003にて開発を行っております。

String *a = abc;
となっているStringの中のabcと言う文字列を
charの配列に取り出したいのですがやり方がわかりません。

どなたかご教授くださいませ。
よろしくお願いします。


引用解決済
トピックタグ
まきじ
 まきじ
(@まきじ)
ゲスト
結合: 20年前
投稿: 35
 

マルチポストは駄目ですよ。

http://www.vcppclub.com/bbs1/wforum.cgi?page=0&mode=


返信引用
ゆう
 ゆう
(@ゆう)
ゲスト
結合: 23年前
投稿: 114
Topic starter  

すいません。以後気をつけます。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

こちらを参考に
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=13908&forum=7&7


返信引用
ゆう
 ゆう
(@ゆう)
ゲスト
結合: 23年前
投稿: 114
Topic starter  

ありがとうございます。

System.Text.Encoding.Default.GetChars()

の使い方がいまいちわかりません。
色々やってみているのですがうまくコンパイルが通りません。

もうすこし具体的にどうしたらよいか教えていただけませんでしょうか?


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

ちょっとそのまえに、

char*型の変数をどう扱いたいのですか?


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

MSDNのGetCharsメソッドのC++のサンプルは参考になりませんかねぇ。
http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/cpref/html/frlrfsystemtextencodingclassgetcharstopic
.asp
(↑おそらく複数行になるのでうまくつなげてください)


返信引用
ゆう
 ゆう
(@ゆう)
ゲスト
結合: 23年前
投稿: 114
Topic starter  

現在VC++.net 2003 にて開発を行っています。

アプリのなかで指定されたEXCELファイルに対して
データを追加して保存させようとしています。

下記のOpen()のファイル名を画面のテキストエリアから取得して、
一旦System.Stringに格納しています。

String *aaa ;

WorkbooksPtr pBooks = pXL->Workbooks;
_WorkbooksPtr pBook = pBooks->Open( aaa );

Open(aaa)で System::String __gc *から_bstr_tに変換できませんとエラーになってし
まいます。

_WorkbooksPtr pBook = pBooks->Open( c:\\aaa.xls );
と行うと実行可能であることから

String 内の文字列をchar*へ入れることが出来れば解決するのでは?と考えたためで
す。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>Open(aaa)で System::String __gc *から_bstr_tに変換できませんと
ならば char型配列 じゃないやん。

普通に _bstr_t(unicode文字列) にしてあげればいいのでは?


返信引用
ゆう
 ゆう
(@ゆう)
ゲスト
結合: 23年前
投稿: 114
Topic starter  

Stringから_bstr_tへ変換できるのでしょうか?

String *a = abc;

pBook = pBooks->Open( _bstr_t(a) );

とすると System::String __gc*から_bstr_tに変換できません。とエラーが出てしまい
ます。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

pBook = pBooks->Open( System.Convert.ToChar( str ) );
はどう?
pBook = pBooks->Open( ( _bstr_t )System.Convert.ToChar( str ) );
は?

実行環境がないのでなんともいえないです。。。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

>pBook = pBooks->Open( System.Convert.ToChar( str ) );
>はどう?
>pBook = pBooks->Open( ( _bstr_t )System.Convert.ToChar( str ) );
ごめん。ぜんぜんちがったっぽい。

StringクラスのメソッドやEncodingクラスなどいろいろしらべてみては。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

pBook = pBooks->Open( str->ToCharArray() );
でよさそう。

というか、COMとの連携はStringクラスはいいのかなぁ。。。
(MFCとかのほうが楽そう)


返信引用
ゆう
 ゆう
(@ゆう)
ゲスト
結合: 23年前
投稿: 114
Topic starter  

pBook = pBooks->Open( pathName->ToCharArray() );
としてみたのですが、
Excel::Workbooks::Open 1番目の引数を'_wchar_t __gc[]'から
'_bstr_t'に変換できません。
という警告が相変わらず出てしまいます。


返信引用
各無し
 各無し
(@各無し)
ゲスト
結合: 20年前
投稿: 11
 

Marshal.StringToBSTR ?


返信引用
固定ページ 1 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました