CSV形式のデータを展開する方法 – プログラミング – Home

CSV形式のデータを展開する方法
 
通知
すべてクリア

[解決済] CSV形式のデータを展開する方法


kozee
 kozee
(@kozee)
ゲスト
結合: 24年前
投稿: 3
Topic starter  

値1-1,値2-1,内容3-1,コード4-1
値1-2,値2-2,内容3-2,コード4-2
値1-3,・・・・・
と続くCSV形式のデータを

for (ループ数はデータ数により変動) {
変数1 = 値1-○;
変数2 = 値2-○;
変数3 = 内容3-○;
変数4 = コード4-○;

というようなFor文で回して代入していきたいのですが、
「C」か「C++」を使って展開代入していくには、どうのような
処理をすればよいのでしょうか????
どなたでも良いので教えてください。

C言語を始めて3日そこらの私では到底わかりません。
また、CSV形式というものすらよくわかってない状態です。
馬鹿ですみません。


引用未解決
トピックタグ
重
 重
(@重)
ゲスト
結合: 24年前
投稿: 84
 

> また、CSV形式というものすらよくわかってない状態です。
主に「カンマ区切りのテキスト」形式のことです。

> 「C」か「C++」を使って展開代入していくには、どうのような
> 処理をすればよいのでしょうか????
まず、変数の型によって変わります。

あと、開発環境はなんでしょうか?
MFC? SDK? DOS かな?
書き込みからでは、判断できません。


返信引用
kozee
 kozee
(@kozee)
ゲスト
結合: 24年前
投稿: 5
 

CSVの内容は全て文字列で来ると言っていました。
ですから変数の型は全て文字列型になると思われます。

開発環境は、
Microsoft Visual C++ 6.0
を使っています。


返信引用
重
 重
(@重)
ゲスト
結合: 24年前
投稿: 84
 

> 開発環境は、
> Microsoft Visual C++ 6.0
と言うことは、CStringで良いのかな?

CStringだとした場合、

szCSV←CString、データが入ってると思って下さい。

> for (ループ数はデータ数により変動) {
データ数により変動と言うことなので、最大がszCSV.GetLength()以下にすればOK。
for(Loop = 0; Loop < szCSV.GetLength(); Loop++) {
こんな感じでしょうか

1.データを順に見ていって、カンマを見つける
2.カンマを見つけたら、1つ前のカンマ~現在のカンマの間が項目。
3.1つ前のカンマ位置を現在のカンマ位置に更新。

これをデータ最後まで繰り返すことでデータを取り出すことが出来ますよ。

・・・へたくそな文章ですけど、解ってもらえました?


返信引用
kozee
 kozee
(@kozee)
ゲスト
結合: 24年前
投稿: 5
 

わかんないなりに教えていただいた事に
チャレンジしてみます。


返信引用
重
 重
(@重)
ゲスト
結合: 24年前
投稿: 84
 

> わかんないなりに教えていただいた事に
> チャレンジしてみます。

がんばってみて下さい。
以下に小汚いソースですが、サンプルを記載しておきます。
多少は参考になるかと思います。どうでしょう?

CString szCSV, szItem[5];
int Loop, OldComma = 0, ItemNo = 0;
CString szTest;

szCSV = ABC,DEF,GHI;

for(Loop = 0; Loop < szCSV.GetLength(); Loop++) {
if(szCSV.GetAt(Loop) == ',') {
szItem[ItemNo] = szCSV.Mid(OldComma, (Loop -OldComma));
MessageBox(szItem[ItemNo]);
OldComma = Loop +1;
ItemNo++;
}
}
if(szCSV.GetAt(szCSV.GetLength() -1) != ',') {
szItem[ItemNo] = szCSV.Mid(OldComma, szCSV.GetLength());
MessageBox(szItem[ItemNo]);
}


返信引用
kozee
 kozee
(@kozee)
ゲスト
結合: 24年前
投稿: 5
 

ありがとうございました。
だいぶ参考になりました。

後は予定の位置に書き込んでいくだけです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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