\を\\に変換できるの?

[戻る]
アップル紅茶 2002/09/10(火) 07:07:50
はじめまして、質問があります。(開発=VC++6.0,Win2000,SDK使用)

パス名
C:\aaaa\bbbb\cccc\dddd
を
C:\\aaaa\\bbbb\\cccc\\dddd
に変換したいのですが、こういうのって出来るの?
色々と調べたのですけど(該当する関数など)わからないので・・・。よろしくです。

アイススケーター 2002/09/10(火) 09:07:32
変換する理由がわからないのですが、

例えば

ディレクトリ(フォルダ)をdir > Text.txt 等で取得したものを
ソースに流用するとか

上記の場合は、プログラムを作成するしかないと思いますが。
単純に\を検出したら\\を出力するプログラムを作ってしまえばいいのでは?
(その他のデータは単純に同じデータを出力する)

ファィルに書かれているデータをそのまま使う場合は、変換の必要はないと思いますが・・・

アップル紅茶 2002/09/10(火) 11:00:58
どうもありがとうございます。

検出したディレクトリ(フォルダ)を用いて、
PathAppend()?などとCreateDirectory()で任意の箇所に新規フォルダーの作成を試
みようとしたのですが・・・。他の関数で新規フォルダー作れなかったので。

やっぱり自動的に変換してくれる関数などはないみたいですね。

>単純に\を検出したら\\を出力するプログラムを作ってしまえばいいのでは?

うっ、、こういうのって作ったことがない・・・。挑戦してみたいのですが、参考にで
きそうなものってありますぅ(サイトなど)?
とくに\の検出部分がわからないので・・・。

wood 2002/09/10(火) 11:28:36
>C:\aaaa\bbbb\cccc\dddd
をCStringで取得すると
値は
>C:\\aaaa\\bbbb\\cccc\\dddd
に成っていませんか

joan 2002/09/10(火) 12:23:46
C言語では \ を表記したい場合は、エスケープ シーケンス
が邪魔になるため \\ と入力しなければなりません。

逆に言うと \ を表示する場合は必ず配列の中では \\ に
する必要があります。

なので

void foo()
{
  char* lpcszFilename = "C:\aaaa\bbbb\cccc\dddd";
}

と、ソースコード中に書くのは間違いやすくなるので
こういう書き方はおすすめしません。

char* lpcszFilename = "C:\\aaaa\\bbbb\\cccc\\dddd";

と書く方をおすすめします。

あとキーボード入力なんかで\を入力すると \\ を返します。
なのでソースコード中に "c:\file"という入力をしない限り
あなたが欲している変換関数は必要ないはずです。

もう少し具体的になぜ必要なのか書いてもらえると
レスしやすいのですが・・。

アイススケーター 2002/09/10(火) 13:38:46
>検出したディレクトリ(フォルダ)を用いて、
>PathAppend()?などとCreateDirectory()で任意の箇所に新規フォルダーの作成を試
>みようとしたのですが・・・。他の関数で新規フォルダー作れなかったので。

現在、作成中のソースを掲載してみてはいかがですか。
(この場合、仕様を明確にして下さい。ソースは必要な部分)

時間があれば調べてみます。

アップル紅茶 2002/09/10(火) 18:33:58
[[解決]]
すいません、解決しちゃいました。みなさん、ありがとうございました。m(..)m

古いスレッドには追加発言できません。