データ型変換 – プログラミング – Home

通知
すべてクリア

データ型変換


夏男
 夏男
(@夏男)
ゲスト
結合: 19年前
投稿: 7
Topic starter  

visual studio2005 VC++を使用して開発しています。
現在、困っているのはデータ型の変換です。

初歩的な質問かもしれませんが、
CStringからWORDに変換ができません。
もしくはWORDからcharへの変換方法がありましたら教えて下さい。

ネット等で調べてみたのですが、載ってませんでした。
宜しくお願いします。


引用解決済
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> CStringからWORDに変換ができません。
> もしくはWORDからcharへの変換方法がありましたら教えて下さい。

CString は文字列
WORD は2byteバイナリ
char は8bit文字

互いに異なるので、あなたが変換規則を明らかに
しない限り答えようがありません。


返信引用
夏男
 夏男
(@夏男)
ゲスト
結合: 19年前
投稿: 7
Topic starter  

早いスレ有難うございます。

やはりCStringからWORDへの変換の方が都合がよいのでそちらの変換をご教授下さい。
やりたいことは

WORD sample[200];
CString filename;
filename = *.txt;  //はファイル名

setparam(sample); //setparam(WORD *list)はファイルを読み込む為の関数

以上のようにfilenameにファイル名を入れてその選択したファイルをsetparam関数に
セットしたいんです。
そこで
sample = filenameのようにしてファイル名を受け渡したいのですが・・・
なにかよい方法はありますでしょうか?


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

ちんぷんかんぷんです。
「変換規則を示してくれ」が理解できませんか?


返信引用
夏男
 夏男
(@夏男)
ゲスト
結合: 19年前
投稿: 7
Topic starter  

>ちんぷんかんぷんです。
>「変換規則を示してくれ」が理解できませんか?

申し訳ないですがどういうことですか?


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

setparam が要求する WORD 配列は、中身がどういう状態になっていることを要求してい
るのか? ということです。
引数に filename が欲しいのなら、その WORD 配列に filename が「どういう形で」入っ
ていればいいのか? ということです。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

あるいは変換後に、WORD sample[200]をどのように使いたいのか
書いてくれれば、変換規則が分かるかもしれません。

# 「sampleは、ファイル名として使いたいです」とか書かれたら
# 絶対分かりません。それは理解できますか?


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

ソース上の記述だけを見る限りでは、
WORD *listはファイルか読み込んだ結果を受け取る為の変数では
無いかと思うのですけれど、違うのでしょうか?
受け取る為の変数にどうしてファイル名を入れるのですか?
本来ならsetparamにファイル名を引き渡す為の引数と
結果を受け取る為の引数の両方が必要になると思いますけれど。

やりたい事をちゃんと整理してその作業を行なうには
何が必要なのかと言う部分を考えてみる事をお勧めします。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

蛇足。

単純に引数を減らしたいと言う話ならやめといた方がいいです。
ソースの可読性が落ちますし、関数の使い方としても素直で無いので
お勧めしません。

とにかく書き込み内容からわかる事が少ないのでどうしても
想像で書いてしまいますね。


返信引用
かもねぎ
 かもねぎ
(@かもねぎ)
ゲスト
結合: 17年前
投稿: 61
 

/*
setparam.cpp

Windows XP pro sp3 VC++2005 Standerd

/Od /D WIN32 /D _DEBUG /D _CONSOLE /D _UNICODE
/D UNICODE /Gm /EHsc /RTC1 /MDd /FoDebug\\
/FdDebug\vc80.pdb /W4 /nologo /c /Wp64 /ZI /TP
/errorReport:prompt
*/

#include <windows.h>

void setparam ( WORD *list )
{
TCHAR * disp = ( TCHAR * ) list ;
MessageBox ( NULL, disp, TEXT ( FileName ), MB_OK ) ;
return ;
}

int main ()
{
TCHAR * FileName = TEXT( FILENAME.TXT ) ;
WORD * list = ( WORD * ) FileName ;
setparam ( list ) ;

return 0 ;
}
// setparam の仕様がわからないので、適当です


返信引用
かもねぎ
 かもねぎ
(@かもねぎ)
ゲスト
結合: 17年前
投稿: 61
 

Standerd まちがえ^^
Standard です


返信引用
通行人
 通行人
(@通行人)
ゲスト
結合: 23年前
投稿: 11
 

WORDぢゃなくWCHARの間違いだったりして。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

憶測巡らせても解決には至らんのでスレ主の反応を待ちましょうよぅ...


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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