
環境 WIN98 VC++6.0 MFC にて
ネット上でちょうど私が知りたいことが載っているサイトを見つけました。
それは付箋ソフトの作り方を解説しているサイトです。
http://www.zdnet.co.jp/developer/0307/18/dvn06.h …
しかしながら、そのサイトではC++Builderを使っています。
C++BuilderのコードをVC++用に変更したいのですが、
お分かりでしたお教えください。
知りたいのは、以下のコードです。
C++Builder専用のコードかと思いましたが、調べるとSubStringはAPIだったのでVC++でも使えると思います。
Pos()は調べても分からなかったのですが、変わりになる関数は有るのでしょうか?
**********************
// 「,」で区切られた文字列から要素を切り出す。
// メモデータのロードに使う
static AnsiString GetToken(AnsiString &s) {
AnsiString ret;
// ,が文字列に含まれる場合、
// ,より前の文字列を戻り値とし、
// 引数の文字列の,以前を削除する。
// 例えば引数の文字列が"1,2,3"の場合、
// 戻り値は"1"、引数の文字列は"2,3"となる。
int pos=s.Pos(",");
if (pos>=1) {
ret=s.SubString(1,pos-1);
s=s.SubString(pos+1,s.Length()-pos);
return ret;
}
No.3ベストアンサー
- 回答日時:
MFCを使うといっても
書かれているC++Builderを
CStringとその関数を用いて書き直しただけですが、
CStringGetToken( CString* s ){
CStringret;
int pos;
pos = s->Find(",", 0);
if(pos>=1){
ret = s->Left(pos);
*s = s->Right(s->GetLength() - pos - 1);
}
return ret;
}
で同様の動作になります。
回答ありがとうございます。
昼間は仕事中のため考えることが出来ず、夜家で考えようと思っていましたが、その前に回答を頂いてしまいました。
とても参考になります。
No.2
- 回答日時:
strtok() ではダメなのですか?
>strtok() ではダメなのですか?
全然だめではありません。
一つの方法としてまったく問題ありません。
只、その他の方法を知らないのでベストかどうかは分かりません。
MFC特有の書き方だとどうやるのか興味があり、新規に質問しました。
No.1
- 回答日時:
SubStringはAPIではなく
AnsiStringのメソッドです。(Posも同じく)
AnsiStringはC++Builderのクラスです。
VC++やBCB、gccに依存しないSTLを使う事をお勧めします。
#include <string>
using namespase std;
static string GetToken(string* s){
string ret;
int pos = s->find(",");
if (pos>=0) {
ret=s->substr(0,pos);
if (s->length() > pos)
*s = s->substr(pos + 1,s->length() - pos);
}
return ret;
}
MFCだとCStringというものがありますが
それは詳しくないので他の人にお任せします。
回答有難うございます。
>SubStringはAPIではなく
API関数一覧というところに載っていたのですが、見たサイトが間違ってたのかな。
>STLを使う事をお勧めします。
良く聞く言葉ですが、分かってないので勉強します。
>MFCだとCStringというものがありますが
確かにそうですね。
メンバ関数を調べれば良いだけかも。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- その他(プログラミング・Web制作) test([)コマンドによる条件判定 2 2022/08/10 12:28
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Visual Basic(VBA) VBA B列にある前から10文字のみ表示 3 2023/08/07 11:24
- 電気工事士 【電気】PAS(気中負荷開閉器)とPOS (柱上油入開閉器、Pole mounted 3 2023/07/18 23:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
エクセルで文字列の最大値を抽...
-
Excel COUNTIF の仕様について
-
fgets()の仕組みについてくわし...
-
SQL の Update文(?) と ...
-
エクセル 数値データを桁をそ...
-
textboxユーザーコントロールの...
-
VBA2005 16進を2桁で表示したい。
-
文字列チェック!ある文字から...
-
like演算子の使い方
-
Excelで指数表現しないようにす...
-
Msgboxの×が押されたとき
-
Excelで3E8を3.00E+8にしない方...
-
aaa.bbb.ccc という、「ドット...
-
VBの「As String * 128」とは?
-
ACCESSのSQLでのカンマ’認識に...
-
OnTime 使用時のプロシージャへ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
エクセルで文字列をtxtファイル...
-
【Excel VBA】複数ある特定の文...
-
エクセル 数値データを桁をそ...
-
Excelで3E8を3.00E+8にしない方...
-
VBA2005 16進を2桁で表示したい。
-
エクセルで文字列の最大値を抽...
-
同一セル内に関数と文字列を同...
-
Left関数とRight関数を合わせた...
-
Excelで指数表現しないようにす...
-
MS SQLServer のSQLで文字列の...
-
VBの「As String * 128」とは?
-
エクセルでセル内の文字列の最...
-
ORCLEでの小数の表示方法の変更...
-
bashスクリプトでの文字列から...
-
LEFT関数で文字数を指定しない...
-
アクセスで特定の数字以外(複...
おすすめ情報